@flyteorg/flyteidl 1.16.0-b3 → 2.0.0-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -9
- package/LICENSE +0 -202
- package/NOTICE +0 -4
- package/README.md +0 -14
- package/gen/pb-js/flyteidl.d.ts +0 -28307
- package/gen/pb-js/flyteidl.js +0 -66636
- package/protos/buf.lock +0 -18
- package/protos/buf.yaml +0 -12
- package/protos/docs/admin/admin.rst +0 -4623
- package/protos/docs/admin/index.rst +0 -13
- package/protos/docs/contributing.md +0 -68
- package/protos/docs/core/core.rst +0 -3952
- package/protos/docs/core/index.rst +0 -15
- package/protos/docs/datacatalog/datacatalog.rst +0 -1313
- package/protos/docs/datacatalog/index.rst +0 -16
- package/protos/docs/event/event.rst +0 -726
- package/protos/docs/event/index.rst +0 -27
- package/protos/docs/plugins/index.rst +0 -14
- package/protos/docs/plugins/plugins.rst +0 -780
- package/protos/docs/restructuredtext.tmpl +0 -129
- package/protos/docs/service/index.rst +0 -13
- package/protos/docs/service/service.rst +0 -543
- package/protos/docs/withoutscalar_restructuredtext.tmpl +0 -105
- package/protos/docs_index.rst +0 -19
- package/protos/flyteidl/admin/agent.proto +0 -309
- package/protos/flyteidl/admin/cluster_assignment.proto +0 -11
- package/protos/flyteidl/admin/common.proto +0 -337
- package/protos/flyteidl/admin/description_entity.proto +0 -95
- package/protos/flyteidl/admin/event.proto +0 -70
- package/protos/flyteidl/admin/execution.proto +0 -436
- package/protos/flyteidl/admin/launch_plan.proto +0 -231
- package/protos/flyteidl/admin/matchable_resource.proto +0 -194
- package/protos/flyteidl/admin/node_execution.proto +0 -248
- package/protos/flyteidl/admin/notification.proto +0 -27
- package/protos/flyteidl/admin/project.proto +0 -132
- package/protos/flyteidl/admin/project_attributes.proto +0 -69
- package/protos/flyteidl/admin/project_domain_attributes.proto +0 -80
- package/protos/flyteidl/admin/schedule.proto +0 -43
- package/protos/flyteidl/admin/signal.proto +0 -86
- package/protos/flyteidl/admin/task.proto +0 -71
- package/protos/flyteidl/admin/task_execution.proto +0 -171
- package/protos/flyteidl/admin/version.proto +0 -27
- package/protos/flyteidl/admin/workflow.proto +0 -92
- package/protos/flyteidl/admin/workflow_attributes.proto +0 -89
- package/protos/flyteidl/cacheservice/cacheservice.proto +0 -143
- package/protos/flyteidl/core/artifact_id.proto +0 -112
- package/protos/flyteidl/core/catalog.proto +0 -63
- package/protos/flyteidl/core/compiler.proto +0 -64
- package/protos/flyteidl/core/condition.proto +0 -63
- package/protos/flyteidl/core/dynamic_job.proto +0 -32
- package/protos/flyteidl/core/errors.proto +0 -42
- package/protos/flyteidl/core/execution.proto +0 -156
- package/protos/flyteidl/core/execution_envs.proto +0 -45
- package/protos/flyteidl/core/identifier.proto +0 -80
- package/protos/flyteidl/core/interface.proto +0 -64
- package/protos/flyteidl/core/literals.proto +0 -205
- package/protos/flyteidl/core/metrics.proto +0 -50
- package/protos/flyteidl/core/security.proto +0 -135
- package/protos/flyteidl/core/tasks.proto +0 -392
- package/protos/flyteidl/core/types.proto +0 -208
- package/protos/flyteidl/core/workflow.proto +0 -361
- package/protos/flyteidl/core/workflow_closure.proto +0 -18
- package/protos/flyteidl/datacatalog/datacatalog.proto +0 -420
- package/protos/flyteidl/event/cloudevents.proto +0 -81
- package/protos/flyteidl/event/event.proto +0 -347
- package/protos/flyteidl/plugins/array_job.proto +0 -30
- package/protos/flyteidl/plugins/common.proto +0 -27
- package/protos/flyteidl/plugins/dask.proto +0 -41
- package/protos/flyteidl/plugins/kubeflow/common.proto +0 -28
- package/protos/flyteidl/plugins/kubeflow/mpi.proto +0 -47
- package/protos/flyteidl/plugins/kubeflow/pytorch.proto +0 -53
- package/protos/flyteidl/plugins/kubeflow/tensorflow.proto +0 -46
- package/protos/flyteidl/plugins/mpi.proto +0 -20
- package/protos/flyteidl/plugins/presto.proto +0 -14
- package/protos/flyteidl/plugins/pytorch.proto +0 -25
- package/protos/flyteidl/plugins/qubole.proto +0 -26
- package/protos/flyteidl/plugins/ray.proto +0 -59
- package/protos/flyteidl/plugins/spark.proto +0 -42
- package/protos/flyteidl/plugins/tensorflow.proto +0 -18
- package/protos/flyteidl/plugins/waitable.proto +0 -15
- package/protos/flyteidl/service/admin.proto +0 -668
- package/protos/flyteidl/service/agent.proto +0 -79
- package/protos/flyteidl/service/auth.proto +0 -94
- package/protos/flyteidl/service/dataproxy.proto +0 -205
- package/protos/flyteidl/service/external_plugin_service.proto +0 -79
- package/protos/flyteidl/service/identity.proto +0 -51
- package/protos/flyteidl/service/signal.proto +0 -55
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package flyteidl.core;
|
|
4
|
-
|
|
5
|
-
option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core";
|
|
6
|
-
|
|
7
|
-
import "google/protobuf/struct.proto";
|
|
8
|
-
|
|
9
|
-
// Define a set of simple types.
|
|
10
|
-
enum SimpleType {
|
|
11
|
-
NONE = 0;
|
|
12
|
-
INTEGER = 1;
|
|
13
|
-
FLOAT = 2;
|
|
14
|
-
STRING = 3;
|
|
15
|
-
BOOLEAN = 4;
|
|
16
|
-
DATETIME = 5;
|
|
17
|
-
DURATION = 6;
|
|
18
|
-
BINARY = 7;
|
|
19
|
-
ERROR = 8;
|
|
20
|
-
STRUCT = 9;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Defines schema columns and types to strongly type-validate schemas interoperability.
|
|
24
|
-
message SchemaType {
|
|
25
|
-
message SchemaColumn {
|
|
26
|
-
// A unique name -within the schema type- for the column
|
|
27
|
-
string name = 1;
|
|
28
|
-
|
|
29
|
-
enum SchemaColumnType {
|
|
30
|
-
INTEGER = 0;
|
|
31
|
-
FLOAT = 1;
|
|
32
|
-
STRING = 2;
|
|
33
|
-
BOOLEAN = 3;
|
|
34
|
-
DATETIME = 4;
|
|
35
|
-
DURATION = 5;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// The column type. This allows a limited set of types currently.
|
|
39
|
-
SchemaColumnType type = 2;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// A list of ordered columns this schema comprises of.
|
|
43
|
-
repeated SchemaColumn columns = 3;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
message StructuredDatasetType {
|
|
47
|
-
message DatasetColumn {
|
|
48
|
-
// A unique name within the schema type for the column.
|
|
49
|
-
string name = 1;
|
|
50
|
-
|
|
51
|
-
// The column type.
|
|
52
|
-
LiteralType literal_type = 2;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// A list of ordered columns this schema comprises of.
|
|
56
|
-
repeated DatasetColumn columns = 1;
|
|
57
|
-
|
|
58
|
-
// This is the storage format, the format of the bits at rest
|
|
59
|
-
// parquet, feather, csv, etc.
|
|
60
|
-
// For two types to be compatible, the format will need to be an exact match.
|
|
61
|
-
string format = 2;
|
|
62
|
-
|
|
63
|
-
// This is a string representing the type that the bytes in external_schema_bytes are formatted in.
|
|
64
|
-
// This is an optional field that will not be used for type checking.
|
|
65
|
-
string external_schema_type = 3;
|
|
66
|
-
|
|
67
|
-
// The serialized bytes of a third-party schema library like Arrow.
|
|
68
|
-
// This is an optional field that will not be used for type checking.
|
|
69
|
-
bytes external_schema_bytes = 4;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Defines type behavior for blob objects
|
|
73
|
-
message BlobType {
|
|
74
|
-
enum BlobDimensionality {
|
|
75
|
-
SINGLE = 0;
|
|
76
|
-
MULTIPART = 1;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Format can be a free form string understood by SDK/UI etc like
|
|
80
|
-
// csv, parquet etc
|
|
81
|
-
string format = 1;
|
|
82
|
-
BlobDimensionality dimensionality = 2;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Enables declaring enum types, with predefined string values
|
|
86
|
-
// For len(values) > 0, the first value in the ordered list is regarded as the default value. If you wish
|
|
87
|
-
// To provide no defaults, make the first value as undefined.
|
|
88
|
-
message EnumType {
|
|
89
|
-
// Predefined set of enum values.
|
|
90
|
-
repeated string values = 1;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Defines a tagged union type, also known as a variant (and formally as the sum type).
|
|
94
|
-
//
|
|
95
|
-
// A sum type S is defined by a sequence of types (A, B, C, ...), each tagged by a string tag
|
|
96
|
-
// A value of type S is constructed from a value of any of the variant types. The specific choice of type is recorded by
|
|
97
|
-
// storing the varaint's tag with the literal value and can be examined in runtime.
|
|
98
|
-
//
|
|
99
|
-
// Type S is typically written as
|
|
100
|
-
// S := Apple A | Banana B | Cantaloupe C | ...
|
|
101
|
-
//
|
|
102
|
-
// Notably, a nullable (optional) type is a sum type between some type X and the singleton type representing a null-value:
|
|
103
|
-
// Optional X := X | Null
|
|
104
|
-
//
|
|
105
|
-
// See also: https://en.wikipedia.org/wiki/Tagged_union
|
|
106
|
-
message UnionType {
|
|
107
|
-
// Predefined set of variants in union.
|
|
108
|
-
repeated LiteralType variants = 1;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Hints to improve type matching
|
|
112
|
-
// e.g. allows distinguishing output from custom type transformers
|
|
113
|
-
// even if the underlying IDL serialization matches.
|
|
114
|
-
message TypeStructure {
|
|
115
|
-
// Must exactly match for types to be castable
|
|
116
|
-
string tag = 1;
|
|
117
|
-
// dataclass_type only exists for dataclasses.
|
|
118
|
-
// This is used to resolve the type of the fields of dataclass
|
|
119
|
-
// The key is the field name, and the value is the literal type of the field
|
|
120
|
-
// e.g. For dataclass Foo, with fields a, and a is a string
|
|
121
|
-
// Foo.a will be resolved as a literal type of string from dataclass_type
|
|
122
|
-
map<string, LiteralType> dataclass_type = 2;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
// TypeAnnotation encapsulates registration time information about a type. This can be used for various control-plane operations. TypeAnnotation will not be available at runtime when a task runs.
|
|
126
|
-
message TypeAnnotation {
|
|
127
|
-
// A arbitrary JSON payload to describe a type.
|
|
128
|
-
google.protobuf.Struct annotations = 1;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Defines a strong type to allow type checking between interfaces.
|
|
132
|
-
message LiteralType {
|
|
133
|
-
oneof type {
|
|
134
|
-
// A simple type that can be compared one-to-one with another.
|
|
135
|
-
SimpleType simple = 1;
|
|
136
|
-
|
|
137
|
-
// A complex type that requires matching of inner fields.
|
|
138
|
-
SchemaType schema = 2;
|
|
139
|
-
|
|
140
|
-
// Defines the type of the value of a collection. Only homogeneous collections are allowed.
|
|
141
|
-
LiteralType collection_type = 3;
|
|
142
|
-
|
|
143
|
-
// Defines the type of the value of a map type. The type of the key is always a string.
|
|
144
|
-
LiteralType map_value_type = 4;
|
|
145
|
-
|
|
146
|
-
// A blob might have specialized implementation details depending on associated metadata.
|
|
147
|
-
BlobType blob = 5;
|
|
148
|
-
|
|
149
|
-
// Defines an enum with pre-defined string values.
|
|
150
|
-
EnumType enum_type = 7;
|
|
151
|
-
|
|
152
|
-
// Generalized schema support
|
|
153
|
-
StructuredDatasetType structured_dataset_type = 8;
|
|
154
|
-
|
|
155
|
-
// Defines an union type with pre-defined LiteralTypes.
|
|
156
|
-
UnionType union_type = 10;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// This field contains type metadata that is descriptive of the type, but is NOT considered in type-checking. This might be used by
|
|
160
|
-
// consumers to identify special behavior or display extended information for the type.
|
|
161
|
-
google.protobuf.Struct metadata = 6;
|
|
162
|
-
|
|
163
|
-
// This field contains arbitrary data that might have special semantic
|
|
164
|
-
// meaning for the client but does not effect internal flyte behavior.
|
|
165
|
-
TypeAnnotation annotation = 9;
|
|
166
|
-
|
|
167
|
-
// Hints to improve type matching.
|
|
168
|
-
TypeStructure structure = 11;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// A reference to an output produced by a node. The type can be retrieved -and validated- from
|
|
172
|
-
// the underlying interface of the node.
|
|
173
|
-
message OutputReference {
|
|
174
|
-
// Node id must exist at the graph layer.
|
|
175
|
-
string node_id = 1;
|
|
176
|
-
|
|
177
|
-
// Variable name must refer to an output variable for the node.
|
|
178
|
-
string var = 2;
|
|
179
|
-
|
|
180
|
-
repeated PromiseAttribute attr_path = 3;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// PromiseAttribute stores the attribute path of a promise, which will be resolved at runtime.
|
|
184
|
-
// The attribute path is a list of strings and integers.
|
|
185
|
-
// In the following example,
|
|
186
|
-
// ```
|
|
187
|
-
// @workflow
|
|
188
|
-
// def wf():
|
|
189
|
-
// o = t1()
|
|
190
|
-
// t2(o.a["b"][0])
|
|
191
|
-
// ```
|
|
192
|
-
// the output reference t2 binds to has a list of PromiseAttribute ["a", "b", 0]
|
|
193
|
-
|
|
194
|
-
message PromiseAttribute {
|
|
195
|
-
oneof value {
|
|
196
|
-
string string_value = 1;
|
|
197
|
-
int32 int_value = 2;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Represents an error thrown from a node.
|
|
202
|
-
message Error {
|
|
203
|
-
// The node id that threw the error.
|
|
204
|
-
string failed_node_id = 1;
|
|
205
|
-
|
|
206
|
-
// Error message thrown.
|
|
207
|
-
string message = 2;
|
|
208
|
-
}
|
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package flyteidl.core;
|
|
4
|
-
|
|
5
|
-
option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core";
|
|
6
|
-
|
|
7
|
-
import "flyteidl/core/condition.proto";
|
|
8
|
-
import "flyteidl/core/execution.proto";
|
|
9
|
-
import "flyteidl/core/identifier.proto";
|
|
10
|
-
import "flyteidl/core/interface.proto";
|
|
11
|
-
import "flyteidl/core/literals.proto";
|
|
12
|
-
import "flyteidl/core/tasks.proto";
|
|
13
|
-
import "flyteidl/core/types.proto";
|
|
14
|
-
import "flyteidl/core/security.proto";
|
|
15
|
-
import "google/protobuf/duration.proto";
|
|
16
|
-
import "google/protobuf/wrappers.proto";
|
|
17
|
-
|
|
18
|
-
// Defines a condition and the execution unit that should be executed if the condition is satisfied.
|
|
19
|
-
message IfBlock {
|
|
20
|
-
core.BooleanExpression condition = 1;
|
|
21
|
-
Node then_node = 2;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Defines a series of if/else blocks. The first branch whose condition evaluates to true is the one to execute.
|
|
25
|
-
// If no conditions were satisfied, the else_node or the error will execute.
|
|
26
|
-
message IfElseBlock {
|
|
27
|
-
//+required. First condition to evaluate.
|
|
28
|
-
IfBlock case = 1;
|
|
29
|
-
|
|
30
|
-
//+optional. Additional branches to evaluate.
|
|
31
|
-
repeated IfBlock other = 2;
|
|
32
|
-
|
|
33
|
-
//+required.
|
|
34
|
-
oneof default {
|
|
35
|
-
// The node to execute in case none of the branches were taken.
|
|
36
|
-
Node else_node = 3;
|
|
37
|
-
|
|
38
|
-
// An error to throw in case none of the branches were taken.
|
|
39
|
-
Error error = 4;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// BranchNode is a special node that alter the flow of the workflow graph. It allows the control flow to branch at
|
|
44
|
-
// runtime based on a series of conditions that get evaluated on various parameters (e.g. inputs, primitives).
|
|
45
|
-
message BranchNode {
|
|
46
|
-
//+required
|
|
47
|
-
IfElseBlock if_else = 1;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Refers to the task that the Node is to execute.
|
|
51
|
-
message TaskNode {
|
|
52
|
-
oneof reference {
|
|
53
|
-
// A globally unique identifier for the task.
|
|
54
|
-
Identifier reference_id = 1;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Optional overrides applied at task execution time.
|
|
58
|
-
TaskNodeOverrides overrides = 2;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Refers to a the workflow the node is to execute.
|
|
62
|
-
message WorkflowNode {
|
|
63
|
-
oneof reference {
|
|
64
|
-
// A globally unique identifier for the launch plan.
|
|
65
|
-
Identifier launchplan_ref = 1;
|
|
66
|
-
|
|
67
|
-
// Reference to a subworkflow, that should be defined with the compiler context
|
|
68
|
-
Identifier sub_workflow_ref = 2;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// ApproveCondition represents a dependency on an external approval. During execution, this will manifest as a boolean
|
|
73
|
-
// signal with the provided signal_id.
|
|
74
|
-
message ApproveCondition {
|
|
75
|
-
// A unique identifier for the requested boolean signal.
|
|
76
|
-
string signal_id = 1;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// SignalCondition represents a dependency on an signal.
|
|
80
|
-
message SignalCondition {
|
|
81
|
-
// A unique identifier for the requested signal.
|
|
82
|
-
string signal_id = 1;
|
|
83
|
-
|
|
84
|
-
// A type denoting the required value type for this signal.
|
|
85
|
-
LiteralType type = 2;
|
|
86
|
-
|
|
87
|
-
// The variable name for the signal value in this nodes outputs.
|
|
88
|
-
string output_variable_name = 3;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// SleepCondition represents a dependency on waiting for the specified duration.
|
|
92
|
-
message SleepCondition {
|
|
93
|
-
// The overall duration for this sleep.
|
|
94
|
-
google.protobuf.Duration duration = 1;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// GateNode refers to the condition that is required for the gate to successfully complete.
|
|
98
|
-
message GateNode {
|
|
99
|
-
oneof condition {
|
|
100
|
-
// ApproveCondition represents a dependency on an external approval provided by a boolean signal.
|
|
101
|
-
ApproveCondition approve = 1;
|
|
102
|
-
|
|
103
|
-
// SignalCondition represents a dependency on an signal.
|
|
104
|
-
SignalCondition signal = 2;
|
|
105
|
-
|
|
106
|
-
// SleepCondition represents a dependency on waiting for the specified duration.
|
|
107
|
-
SleepCondition sleep = 3;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// ArrayNode is a Flyte node type that simplifies the execution of a sub-node over a list of input
|
|
112
|
-
// values. An ArrayNode can be executed with configurable parallelism (separate from the parent
|
|
113
|
-
// workflow) and can be configured to succeed when a certain number of sub-nodes succeed.
|
|
114
|
-
message ArrayNode {
|
|
115
|
-
// node is the sub-node that will be executed for each element in the array.
|
|
116
|
-
Node node = 1;
|
|
117
|
-
|
|
118
|
-
oneof parallelism_option {
|
|
119
|
-
// parallelism defines the minimum number of instances to bring up concurrently at any given
|
|
120
|
-
// point. Note that this is an optimistic restriction and that, due to network partitioning or
|
|
121
|
-
// other failures, the actual number of currently running instances might be more. This has to
|
|
122
|
-
// be a positive number if assigned. Default value is size.
|
|
123
|
-
uint32 parallelism = 2;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
oneof success_criteria {
|
|
127
|
-
// min_successes is an absolute number of the minimum number of successful completions of
|
|
128
|
-
// sub-nodes. As soon as this criteria is met, the ArrayNode will be marked as successful
|
|
129
|
-
// and outputs will be computed. This has to be a non-negative number if assigned. Default
|
|
130
|
-
// value is size (if specified).
|
|
131
|
-
uint32 min_successes = 3;
|
|
132
|
-
|
|
133
|
-
// If the array job size is not known beforehand, the min_success_ratio can instead be used
|
|
134
|
-
// to determine when an ArrayNode can be marked successful.
|
|
135
|
-
float min_success_ratio = 4;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
enum ExecutionMode {
|
|
139
|
-
// Indicates the ArrayNode will store minimal state for the sub-nodes.
|
|
140
|
-
// This is more efficient, but only supports a subset of Flyte entities.
|
|
141
|
-
MINIMAL_STATE = 0;
|
|
142
|
-
|
|
143
|
-
// Indicates the ArrayNode will store full state for the sub-nodes.
|
|
144
|
-
// This supports a wider range of Flyte entities.
|
|
145
|
-
FULL_STATE = 1;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// execution_mode determines the execution path for ArrayNode.
|
|
149
|
-
ExecutionMode execution_mode = 5;
|
|
150
|
-
|
|
151
|
-
// Indicates whether the sub node's original interface was altered
|
|
152
|
-
google.protobuf.BoolValue is_original_sub_node_interface = 6;
|
|
153
|
-
|
|
154
|
-
enum DataMode {
|
|
155
|
-
// Indicates the ArrayNode's input is a list of input values that map to subNode executions.
|
|
156
|
-
// The file path set for the subNode will be the ArrayNode's input file, but the in-memory
|
|
157
|
-
// value utilized in propeller will be the individual value for each subNode execution.
|
|
158
|
-
// SubNode executions need to be able to read in and parse the individual value to execute correctly.
|
|
159
|
-
SINGLE_INPUT_FILE = 0;
|
|
160
|
-
|
|
161
|
-
// Indicates the ArrayNode's input is a list of input values that map to subNode executions.
|
|
162
|
-
// Propeller will create input files for each ArrayNode subNode by parsing the inputs and
|
|
163
|
-
// setting the InputBindings on each subNodeSpec. Both the file path and in-memory input values will
|
|
164
|
-
// be the individual value for each subNode execution.
|
|
165
|
-
INDIVIDUAL_INPUT_FILES = 1;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// data_mode determines how input data is passed to the sub-nodes
|
|
169
|
-
DataMode data_mode = 7;
|
|
170
|
-
|
|
171
|
-
//+optional. Specifies input bindings that are not mapped over for the node.
|
|
172
|
-
repeated string bound_inputs = 8;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Defines extra information about the Node.
|
|
176
|
-
message NodeMetadata {
|
|
177
|
-
// A friendly name for the Node
|
|
178
|
-
string name = 1;
|
|
179
|
-
|
|
180
|
-
// The overall timeout of a task.
|
|
181
|
-
google.protobuf.Duration timeout = 4;
|
|
182
|
-
|
|
183
|
-
// Number of retries per task.
|
|
184
|
-
RetryStrategy retries = 5;
|
|
185
|
-
|
|
186
|
-
// Identify whether node is interruptible
|
|
187
|
-
oneof interruptible_value {
|
|
188
|
-
bool interruptible = 6;
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
// Identify whether a node should have it's outputs cached.
|
|
192
|
-
oneof cacheable_value {
|
|
193
|
-
bool cacheable = 7;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// The version of the cache to use.
|
|
197
|
-
oneof cache_version_value {
|
|
198
|
-
string cache_version = 8;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Identify whether caching operations involving this node should be serialized.
|
|
202
|
-
oneof cache_serializable_value {
|
|
203
|
-
bool cache_serializable = 9;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Config is a bag of properties that can be used to instruct propeller on how to execute the node.
|
|
207
|
-
map<string, string> config = 10;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// Links a variable to an alias.
|
|
211
|
-
message Alias {
|
|
212
|
-
// Must match one of the output variable names on a node.
|
|
213
|
-
string var = 1;
|
|
214
|
-
|
|
215
|
-
// A workflow-level unique alias that downstream nodes can refer to in their input.
|
|
216
|
-
string alias = 2;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// A Workflow graph Node. One unit of execution in the graph. Each node can be linked to a Task, a Workflow or a branch
|
|
220
|
-
// node.
|
|
221
|
-
message Node {
|
|
222
|
-
// A workflow-level unique identifier that identifies this node in the workflow. 'inputs' and 'outputs' are reserved
|
|
223
|
-
// node ids that cannot be used by other nodes.
|
|
224
|
-
string id = 1;
|
|
225
|
-
|
|
226
|
-
// Extra metadata about the node.
|
|
227
|
-
NodeMetadata metadata = 2;
|
|
228
|
-
|
|
229
|
-
// Specifies how to bind the underlying interface's inputs. All required inputs specified in the underlying interface
|
|
230
|
-
// must be fulfilled.
|
|
231
|
-
repeated Binding inputs = 3;
|
|
232
|
-
|
|
233
|
-
//+optional Specifies execution dependency for this node ensuring it will only get scheduled to run after all its
|
|
234
|
-
// upstream nodes have completed. This node will have an implicit dependency on any node that appears in inputs
|
|
235
|
-
// field.
|
|
236
|
-
repeated string upstream_node_ids = 4;
|
|
237
|
-
|
|
238
|
-
//+optional. A node can define aliases for a subset of its outputs. This is particularly useful if different nodes
|
|
239
|
-
// need to conform to the same interface (e.g. all branches in a branch node). Downstream nodes must refer to this
|
|
240
|
-
// nodes outputs using the alias if one's specified.
|
|
241
|
-
repeated Alias output_aliases = 5;
|
|
242
|
-
|
|
243
|
-
// Information about the target to execute in this node.
|
|
244
|
-
oneof target {
|
|
245
|
-
// Information about the Task to execute in this node.
|
|
246
|
-
TaskNode task_node = 6;
|
|
247
|
-
|
|
248
|
-
// Information about the Workflow to execute in this mode.
|
|
249
|
-
WorkflowNode workflow_node = 7;
|
|
250
|
-
|
|
251
|
-
// Information about the branch node to evaluate in this node.
|
|
252
|
-
BranchNode branch_node = 8;
|
|
253
|
-
|
|
254
|
-
// Information about the condition to evaluate in this node.
|
|
255
|
-
GateNode gate_node = 9;
|
|
256
|
-
|
|
257
|
-
// Information about the sub-node executions for each value in the list of this nodes
|
|
258
|
-
// inputs values.
|
|
259
|
-
ArrayNode array_node = 10;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// This is workflow layer metadata. These settings are only applicable to the workflow as a whole, and do not
|
|
264
|
-
// percolate down to child entities (like tasks) launched by the workflow.
|
|
265
|
-
message WorkflowMetadata {
|
|
266
|
-
// Indicates the runtime priority of workflow executions.
|
|
267
|
-
QualityOfService quality_of_service = 1;
|
|
268
|
-
|
|
269
|
-
// Failure Handling Strategy
|
|
270
|
-
enum OnFailurePolicy {
|
|
271
|
-
// FAIL_IMMEDIATELY instructs the system to fail as soon as a node fails in the workflow. It'll automatically
|
|
272
|
-
// abort all currently running nodes and clean up resources before finally marking the workflow executions as
|
|
273
|
-
// failed.
|
|
274
|
-
FAIL_IMMEDIATELY = 0;
|
|
275
|
-
|
|
276
|
-
// FAIL_AFTER_EXECUTABLE_NODES_COMPLETE instructs the system to make as much progress as it can. The system will
|
|
277
|
-
// not alter the dependencies of the execution graph so any node that depend on the failed node will not be run.
|
|
278
|
-
// Other nodes that will be executed to completion before cleaning up resources and marking the workflow
|
|
279
|
-
// execution as failed.
|
|
280
|
-
FAIL_AFTER_EXECUTABLE_NODES_COMPLETE = 1;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
// Defines how the system should behave when a failure is detected in the workflow execution.
|
|
284
|
-
OnFailurePolicy on_failure = 2;
|
|
285
|
-
|
|
286
|
-
// Arbitrary tags that allow users and the platform to store small but arbitrary labels
|
|
287
|
-
map<string, string> tags = 3;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
// The difference between these settings and the WorkflowMetadata ones is that these are meant to be passed down to
|
|
291
|
-
// a workflow's underlying entities (like tasks). For instance, 'interruptible' has no meaning at the workflow layer, it
|
|
292
|
-
// is only relevant when a task executes. The settings here are the defaults that are passed to all nodes
|
|
293
|
-
// unless explicitly overridden at the node layer.
|
|
294
|
-
// If you are adding a setting that applies to both the Workflow itself, and everything underneath it, it should be
|
|
295
|
-
// added to both this object and the WorkflowMetadata object above.
|
|
296
|
-
message WorkflowMetadataDefaults {
|
|
297
|
-
// Whether child nodes of the workflow are interruptible.
|
|
298
|
-
bool interruptible = 1;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
// Flyte Workflow Structure that encapsulates task, branch and subworkflow nodes to form a statically analyzable,
|
|
302
|
-
// directed acyclic graph.
|
|
303
|
-
message WorkflowTemplate {
|
|
304
|
-
// A globally unique identifier for the workflow.
|
|
305
|
-
Identifier id = 1;
|
|
306
|
-
|
|
307
|
-
// Extra metadata about the workflow.
|
|
308
|
-
WorkflowMetadata metadata = 2;
|
|
309
|
-
|
|
310
|
-
// Defines a strongly typed interface for the Workflow. This can include some optional parameters.
|
|
311
|
-
TypedInterface interface = 3;
|
|
312
|
-
|
|
313
|
-
// A list of nodes. In addition, 'globals' is a special reserved node id that can be used to consume workflow inputs.
|
|
314
|
-
repeated Node nodes = 4;
|
|
315
|
-
|
|
316
|
-
// A list of output bindings that specify how to construct workflow outputs. Bindings can pull node outputs or
|
|
317
|
-
// specify literals. All workflow outputs specified in the interface field must be bound in order for the workflow
|
|
318
|
-
// to be validated. A workflow has an implicit dependency on all of its nodes to execute successfully in order to
|
|
319
|
-
// bind final outputs.
|
|
320
|
-
// Most of these outputs will be Binding's with a BindingData of type OutputReference. That is, your workflow can
|
|
321
|
-
// just have an output of some constant (`Output(5)`), but usually, the workflow will be pulling
|
|
322
|
-
// outputs from the output of a task.
|
|
323
|
-
repeated Binding outputs = 5;
|
|
324
|
-
|
|
325
|
-
//+optional A catch-all node. This node is executed whenever the execution engine determines the workflow has failed.
|
|
326
|
-
// The interface of this node must match the Workflow interface with an additional input named 'error' of type
|
|
327
|
-
// pb.lyft.flyte.core.Error.
|
|
328
|
-
Node failure_node = 6;
|
|
329
|
-
|
|
330
|
-
// workflow defaults
|
|
331
|
-
WorkflowMetadataDefaults metadata_defaults = 7;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
// Optional task node overrides that will be applied at task execution time.
|
|
335
|
-
message TaskNodeOverrides {
|
|
336
|
-
// A customizable interface to convey resources requested for a task container.
|
|
337
|
-
Resources resources = 1;
|
|
338
|
-
|
|
339
|
-
// Overrides for all non-standard resources, not captured by
|
|
340
|
-
// v1.ResourceRequirements, to allocate to a task.
|
|
341
|
-
ExtendedResources extended_resources = 2;
|
|
342
|
-
|
|
343
|
-
// Override for the image used by task pods.
|
|
344
|
-
string container_image = 3;
|
|
345
|
-
|
|
346
|
-
// Override for the pod template used by task pods
|
|
347
|
-
//+optional
|
|
348
|
-
K8sPod pod_template = 4;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
// A structure that uniquely identifies a launch plan in the system.
|
|
352
|
-
message LaunchPlanTemplate {
|
|
353
|
-
// A globally unique identifier for the launch plan.
|
|
354
|
-
Identifier id = 1;
|
|
355
|
-
|
|
356
|
-
// The input and output interface for the launch plan
|
|
357
|
-
TypedInterface interface = 2;
|
|
358
|
-
|
|
359
|
-
// A collection of input literals that are fixed for the launch plan
|
|
360
|
-
LiteralMap fixed_inputs = 3;
|
|
361
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package flyteidl.core;
|
|
4
|
-
|
|
5
|
-
option go_package = "github.com/flyteorg/flyte/flyteidl/gen/pb-go/flyteidl/core";
|
|
6
|
-
|
|
7
|
-
import "flyteidl/core/workflow.proto";
|
|
8
|
-
import "flyteidl/core/tasks.proto";
|
|
9
|
-
|
|
10
|
-
// Defines an enclosed package of workflow and tasks it references.
|
|
11
|
-
message WorkflowClosure {
|
|
12
|
-
//required. Workflow template.
|
|
13
|
-
WorkflowTemplate workflow = 1;
|
|
14
|
-
|
|
15
|
-
//optional. A collection of tasks referenced by the workflow. Only needed if the workflow
|
|
16
|
-
// references tasks.
|
|
17
|
-
repeated TaskTemplate tasks = 2;
|
|
18
|
-
}
|