@flyteorg/flyteidl 1.2.0 → 1.2.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyteorg/flyteidl",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Compiled protocol buffers and gRPC service clients/servers for Flyte IDLs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3114,6 +3114,169 @@ Represents a frequency at which to run a schedule.
3114
3114
 
3115
3115
 
3116
3116
 
3117
+ .. _ref_flyteidl/admin/signal.proto:
3118
+
3119
+ flyteidl/admin/signal.proto
3120
+ ==================================================================
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+ .. _ref_flyteidl.admin.Signal:
3127
+
3128
+ Signal
3129
+ ------------------------------------------------------------------
3130
+
3131
+ Signal encapsulates a unique identifier, associated metadata, and a value for a single Flyte
3132
+ signal. Signals may exist either without a set value (representing a signal request) or with a
3133
+ populated value (indicating the signal has been given).
3134
+
3135
+
3136
+
3137
+ .. csv-table:: Signal type fields
3138
+ :header: "Field", "Type", "Label", "Description"
3139
+ :widths: auto
3140
+
3141
+ "id", ":ref:`ref_flyteidl.core.SignalIdentifier`", "", "A unique identifier for the requested signal."
3142
+ "type", ":ref:`ref_flyteidl.core.LiteralType`", "", "A type denoting the required value type for this signal."
3143
+ "value", ":ref:`ref_flyteidl.core.Literal`", "", "The value of the signal. This is only available if the signal has been "set" and must match the defined the type."
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+ .. _ref_flyteidl.admin.SignalGetOrCreateRequest:
3152
+
3153
+ SignalGetOrCreateRequest
3154
+ ------------------------------------------------------------------
3155
+
3156
+ SignalGetOrCreateRequest represents a request structure to retrive or create a signal.
3157
+ See :ref:`ref_flyteidl.admin.Signal` for more details
3158
+
3159
+
3160
+
3161
+ .. csv-table:: SignalGetOrCreateRequest type fields
3162
+ :header: "Field", "Type", "Label", "Description"
3163
+ :widths: auto
3164
+
3165
+ "id", ":ref:`ref_flyteidl.core.SignalIdentifier`", "", "A unique identifier for the requested signal."
3166
+ "type", ":ref:`ref_flyteidl.core.LiteralType`", "", "A type denoting the required value type for this signal."
3167
+
3168
+
3169
+
3170
+
3171
+
3172
+
3173
+
3174
+ .. _ref_flyteidl.admin.SignalList:
3175
+
3176
+ SignalList
3177
+ ------------------------------------------------------------------
3178
+
3179
+ SignalList represents collection of signals along with the token of the last result.
3180
+ See :ref:`ref_flyteidl.admin.Signal` for more details
3181
+
3182
+
3183
+
3184
+ .. csv-table:: SignalList type fields
3185
+ :header: "Field", "Type", "Label", "Description"
3186
+ :widths: auto
3187
+
3188
+ "signals", ":ref:`ref_flyteidl.admin.Signal`", "repeated", "A list of signals matching the input filters."
3189
+ "token", ":ref:`ref_string`", "", "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."
3190
+
3191
+
3192
+
3193
+
3194
+
3195
+
3196
+
3197
+ .. _ref_flyteidl.admin.SignalListRequest:
3198
+
3199
+ SignalListRequest
3200
+ ------------------------------------------------------------------
3201
+
3202
+ SignalListRequest represents a request structure to retrieve a collection of signals.
3203
+ See :ref:`ref_flyteidl.admin.Signal` for more details
3204
+
3205
+
3206
+
3207
+ .. csv-table:: SignalListRequest type fields
3208
+ :header: "Field", "Type", "Label", "Description"
3209
+ :widths: auto
3210
+
3211
+ "workflow_execution_id", ":ref:`ref_flyteidl.core.WorkflowExecutionIdentifier`", "", "Indicates the workflow execution to filter by. +required"
3212
+ "limit", ":ref:`ref_uint32`", "", "Indicates the number of resources to be returned. +required"
3213
+ "token", ":ref:`ref_string`", "", "In the case of multiple pages of results, the, server-provided token can be used to fetch the next page in a query. +optional"
3214
+ "filters", ":ref:`ref_string`", "", "Indicates a list of filters passed as string. +optional"
3215
+ "sort_by", ":ref:`ref_flyteidl.admin.Sort`", "", "Sort ordering. +optional"
3216
+
3217
+
3218
+
3219
+
3220
+
3221
+
3222
+
3223
+ .. _ref_flyteidl.admin.SignalSetRequest:
3224
+
3225
+ SignalSetRequest
3226
+ ------------------------------------------------------------------
3227
+
3228
+ SignalSetRequest represents a request structure to set the value on a signal. Setting a signal
3229
+ effetively satisfies the signal condition within a Flyte workflow.
3230
+ See :ref:`ref_flyteidl.admin.Signal` for more details
3231
+
3232
+
3233
+
3234
+ .. csv-table:: SignalSetRequest type fields
3235
+ :header: "Field", "Type", "Label", "Description"
3236
+ :widths: auto
3237
+
3238
+ "id", ":ref:`ref_flyteidl.core.SignalIdentifier`", "", "A unique identifier for the requested signal."
3239
+ "value", ":ref:`ref_flyteidl.core.Literal`", "", "The value of this signal, must match the defining signal type."
3240
+
3241
+
3242
+
3243
+
3244
+
3245
+
3246
+
3247
+ .. _ref_flyteidl.admin.SignalSetResponse:
3248
+
3249
+ SignalSetResponse
3250
+ ------------------------------------------------------------------
3251
+
3252
+ SignalSetResponse represents a response structure if signal setting succeeds.
3253
+
3254
+ Purposefully empty, may be populated in the future.
3255
+
3256
+
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+ ..
3263
+ end messages
3264
+
3265
+
3266
+ ..
3267
+ end enums
3268
+
3269
+
3270
+ ..
3271
+ end HasExtensions
3272
+
3273
+
3274
+ ..
3275
+ end services
3276
+
3277
+
3278
+
3279
+
3117
3280
  .. _ref_flyteidl/admin/task.proto:
3118
3281
 
3119
3282
  flyteidl/admin/task.proto
@@ -947,6 +947,28 @@ Encapsulation of fields that identify a Flyte node execution entity.
947
947
 
948
948
 
949
949
 
950
+ .. _ref_flyteidl.core.SignalIdentifier:
951
+
952
+ SignalIdentifier
953
+ ------------------------------------------------------------------
954
+
955
+ Encapsulation of fields the uniquely identify a signal.
956
+
957
+
958
+
959
+ .. csv-table:: SignalIdentifier type fields
960
+ :header: "Field", "Type", "Label", "Description"
961
+ :widths: auto
962
+
963
+ "signal_id", ":ref:`ref_string`", "", "Unique identifier for a signal."
964
+ "execution_id", ":ref:`ref_flyteidl.core.WorkflowExecutionIdentifier`", "", "Identifies the Flyte workflow execution this signal belongs to."
965
+
966
+
967
+
968
+
969
+
970
+
971
+
950
972
  .. _ref_flyteidl.core.TaskExecutionIdentifier:
951
973
 
952
974
  TaskExecutionIdentifier
@@ -2824,6 +2846,28 @@ Links a variable to an alias.
2824
2846
 
2825
2847
 
2826
2848
 
2849
+ .. _ref_flyteidl.core.ApproveCondition:
2850
+
2851
+ ApproveCondition
2852
+ ------------------------------------------------------------------
2853
+
2854
+ ApproveCondition represents a dependency on an external approval. During execution, this will manifest as a boolean
2855
+ signal with the provided signal_id.
2856
+
2857
+
2858
+
2859
+ .. csv-table:: ApproveCondition type fields
2860
+ :header: "Field", "Type", "Label", "Description"
2861
+ :widths: auto
2862
+
2863
+ "signal_id", ":ref:`ref_string`", "", "A unique identifier for the requested boolean signal."
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2827
2871
  .. _ref_flyteidl.core.BranchNode:
2828
2872
 
2829
2873
  BranchNode
@@ -2846,6 +2890,29 @@ runtime based on a series of conditions that get evaluated on various parameters
2846
2890
 
2847
2891
 
2848
2892
 
2893
+ .. _ref_flyteidl.core.GateNode:
2894
+
2895
+ GateNode
2896
+ ------------------------------------------------------------------
2897
+
2898
+ GateNode refers to the condition that is required for the gate to successfully complete.
2899
+
2900
+
2901
+
2902
+ .. csv-table:: GateNode type fields
2903
+ :header: "Field", "Type", "Label", "Description"
2904
+ :widths: auto
2905
+
2906
+ "approve", ":ref:`ref_flyteidl.core.ApproveCondition`", "", "ApproveCondition represents a dependency on an external approval provided by a boolean signal."
2907
+ "signal", ":ref:`ref_flyteidl.core.SignalCondition`", "", "SignalCondition represents a dependency on an signal."
2908
+ "sleep", ":ref:`ref_flyteidl.core.SleepCondition`", "", "SleepCondition represents a dependency on waiting for the specified duration."
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+
2915
+
2849
2916
  .. _ref_flyteidl.core.IfBlock:
2850
2917
 
2851
2918
  IfBlock
@@ -2915,6 +2982,7 @@ node.
2915
2982
  "task_node", ":ref:`ref_flyteidl.core.TaskNode`", "", "Information about the Task to execute in this node."
2916
2983
  "workflow_node", ":ref:`ref_flyteidl.core.WorkflowNode`", "", "Information about the Workflow to execute in this mode."
2917
2984
  "branch_node", ":ref:`ref_flyteidl.core.BranchNode`", "", "Information about the branch node to evaluate in this node."
2985
+ "gate_node", ":ref:`ref_flyteidl.core.GateNode`", "", "Information about the condition to evaluate in this node."
2918
2986
 
2919
2987
 
2920
2988
 
@@ -2946,6 +3014,50 @@ Defines extra information about the Node.
2946
3014
 
2947
3015
 
2948
3016
 
3017
+ .. _ref_flyteidl.core.SignalCondition:
3018
+
3019
+ SignalCondition
3020
+ ------------------------------------------------------------------
3021
+
3022
+ SignalCondition represents a dependency on an signal.
3023
+
3024
+
3025
+
3026
+ .. csv-table:: SignalCondition type fields
3027
+ :header: "Field", "Type", "Label", "Description"
3028
+ :widths: auto
3029
+
3030
+ "signal_id", ":ref:`ref_string`", "", "A unique identifier for the requested signal."
3031
+ "type", ":ref:`ref_flyteidl.core.LiteralType`", "", "A type denoting the required value type for this signal."
3032
+ "output_variable_name", ":ref:`ref_string`", "", "The variable name for the signal value in this nodes outputs."
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+ .. _ref_flyteidl.core.SleepCondition:
3041
+
3042
+ SleepCondition
3043
+ ------------------------------------------------------------------
3044
+
3045
+ SleepCondition represents a dependency on waiting for the specified duration.
3046
+
3047
+
3048
+
3049
+ .. csv-table:: SleepCondition type fields
3050
+ :header: "Field", "Type", "Label", "Description"
3051
+ :widths: auto
3052
+
3053
+ "duration", ":ref:`ref_google.protobuf.Duration`", "", "The overall duration for this sleep."
3054
+
3055
+
3056
+
3057
+
3058
+
3059
+
3060
+
2949
3061
  .. _ref_flyteidl.core.TaskNode:
2950
3062
 
2951
3063
  TaskNode
@@ -435,3 +435,45 @@ IdentityService defines an RPC Service that interacts with user/app identities.
435
435
  end services
436
436
 
437
437
 
438
+
439
+
440
+ .. _ref_flyteidl/service/signal.proto:
441
+
442
+ flyteidl/service/signal.proto
443
+ ==================================================================
444
+
445
+
446
+
447
+
448
+ ..
449
+ end messages
450
+
451
+
452
+ ..
453
+ end enums
454
+
455
+
456
+ ..
457
+ end HasExtensions
458
+
459
+
460
+
461
+ .. _ref_flyteidl.service.SignalService:
462
+
463
+ SignalService
464
+ ------------------------------------------------------------------
465
+
466
+ SignalService defines an RPC Service that may create, update, and retrieve signal(s).
467
+
468
+ .. csv-table:: SignalService service methods
469
+ :header: "Method Name", "Request Type", "Response Type", "Description"
470
+ :widths: auto
471
+
472
+ "GetOrCreateSignal", ":ref:`ref_flyteidl.admin.SignalGetOrCreateRequest`", ":ref:`ref_flyteidl.admin.Signal`", "Fetches or creates a :ref:`ref_flyteidl.admin.Signal`."
473
+ "ListSignals", ":ref:`ref_flyteidl.admin.SignalListRequest`", ":ref:`ref_flyteidl.admin.SignalList`", "Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions."
474
+ "SetSignal", ":ref:`ref_flyteidl.admin.SignalSetRequest`", ":ref:`ref_flyteidl.admin.SignalSetResponse`", "Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition"
475
+
476
+ ..
477
+ end services
478
+
479
+
@@ -0,0 +1,86 @@
1
+ syntax = "proto3";
2
+
3
+ package flyteidl.admin;
4
+ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin";
5
+
6
+ import "flyteidl/admin/common.proto";
7
+ import "flyteidl/core/identifier.proto";
8
+ import "flyteidl/core/literals.proto";
9
+ import "flyteidl/core/types.proto";
10
+
11
+ // SignalGetOrCreateRequest represents a request structure to retrive or create a signal.
12
+ // See :ref:`ref_flyteidl.admin.Signal` for more details
13
+ message SignalGetOrCreateRequest {
14
+ // A unique identifier for the requested signal.
15
+ core.SignalIdentifier id = 1;
16
+
17
+ // A type denoting the required value type for this signal.
18
+ core.LiteralType type = 2;
19
+ }
20
+
21
+ // SignalListRequest represents a request structure to retrieve a collection of signals.
22
+ // See :ref:`ref_flyteidl.admin.Signal` for more details
23
+ message SignalListRequest {
24
+ // Indicates the workflow execution to filter by.
25
+ // +required
26
+ core.WorkflowExecutionIdentifier workflow_execution_id = 1;
27
+
28
+ // Indicates the number of resources to be returned.
29
+ // +required
30
+ uint32 limit = 2;
31
+
32
+ // In the case of multiple pages of results, the, server-provided token can be used to fetch the next page
33
+ // in a query.
34
+ // +optional
35
+ string token = 3;
36
+
37
+ // Indicates a list of filters passed as string.
38
+ // +optional
39
+ string filters = 4;
40
+
41
+ // Sort ordering.
42
+ // +optional
43
+ Sort sort_by = 5;
44
+ }
45
+
46
+ // SignalList represents collection of signals along with the token of the last result.
47
+ // See :ref:`ref_flyteidl.admin.Signal` for more details
48
+ message SignalList {
49
+ // A list of signals matching the input filters.
50
+ repeated Signal signals = 1;
51
+
52
+ // In the case of multiple pages of results, the server-provided token can be used to fetch the next page
53
+ // in a query. If there are no more results, this value will be empty.
54
+ string token = 2;
55
+ }
56
+
57
+ // SignalSetRequest represents a request structure to set the value on a signal. Setting a signal
58
+ // effetively satisfies the signal condition within a Flyte workflow.
59
+ // See :ref:`ref_flyteidl.admin.Signal` for more details
60
+ message SignalSetRequest {
61
+ // A unique identifier for the requested signal.
62
+ core.SignalIdentifier id = 1;
63
+
64
+ // The value of this signal, must match the defining signal type.
65
+ core.Literal value = 2;
66
+ }
67
+
68
+ // SignalSetResponse represents a response structure if signal setting succeeds.
69
+ message SignalSetResponse {
70
+ // Purposefully empty, may be populated in the future.
71
+ }
72
+
73
+ // Signal encapsulates a unique identifier, associated metadata, and a value for a single Flyte
74
+ // signal. Signals may exist either without a set value (representing a signal request) or with a
75
+ // populated value (indicating the signal has been given).
76
+ message Signal {
77
+ // A unique identifier for the requested signal.
78
+ core.SignalIdentifier id = 1;
79
+
80
+ // A type denoting the required value type for this signal.
81
+ core.LiteralType type = 2;
82
+
83
+ // The value of the signal. This is only available if the signal has been "set" and must match
84
+ // the defined the type.
85
+ core.Literal value = 3;
86
+ }
@@ -63,3 +63,12 @@ message TaskExecutionIdentifier {
63
63
 
64
64
  uint32 retry_attempt = 3;
65
65
  }
66
+
67
+ // Encapsulation of fields the uniquely identify a signal.
68
+ message SignalIdentifier {
69
+ // Unique identifier for a signal.
70
+ string signal_id = 1;
71
+
72
+ // Identifies the Flyte workflow execution this signal belongs to.
73
+ WorkflowExecutionIdentifier execution_id = 2;
74
+ }
@@ -68,6 +68,45 @@ message WorkflowNode {
68
68
  }
69
69
  }
70
70
 
71
+ // ApproveCondition represents a dependency on an external approval. During execution, this will manifest as a boolean
72
+ // signal with the provided signal_id.
73
+ message ApproveCondition {
74
+ // A unique identifier for the requested boolean signal.
75
+ string signal_id = 1;
76
+ }
77
+
78
+ // SignalCondition represents a dependency on an signal.
79
+ message SignalCondition {
80
+ // A unique identifier for the requested signal.
81
+ string signal_id = 1;
82
+
83
+ // A type denoting the required value type for this signal.
84
+ LiteralType type = 2;
85
+
86
+ // The variable name for the signal value in this nodes outputs.
87
+ string output_variable_name = 3;
88
+ }
89
+
90
+ // SleepCondition represents a dependency on waiting for the specified duration.
91
+ message SleepCondition {
92
+ // The overall duration for this sleep.
93
+ google.protobuf.Duration duration = 1;
94
+ }
95
+
96
+ // GateNode refers to the condition that is required for the gate to successfully complete.
97
+ message GateNode {
98
+ oneof condition {
99
+ // ApproveCondition represents a dependency on an external approval provided by a boolean signal.
100
+ ApproveCondition approve = 1;
101
+
102
+ // SignalCondition represents a dependency on an signal.
103
+ SignalCondition signal = 2;
104
+
105
+ // SleepCondition represents a dependency on waiting for the specified duration.
106
+ SleepCondition sleep = 3;
107
+ }
108
+ }
109
+
71
110
  // Defines extra information about the Node.
72
111
  message NodeMetadata {
73
112
  // A friendly name for the Node
@@ -129,6 +168,9 @@ message Node {
129
168
 
130
169
  // Information about the branch node to evaluate in this node.
131
170
  BranchNode branch_node = 8;
171
+
172
+ // Information about the condition to evaluate in this node.
173
+ GateNode gate_node = 9;
132
174
  }
133
175
  }
134
176
 
@@ -0,0 +1,55 @@
1
+ syntax = "proto3";
2
+ package flyteidl.service;
3
+
4
+ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service";
5
+
6
+ import "google/api/annotations.proto";
7
+ import "flyteidl/admin/signal.proto";
8
+ import "protoc-gen-swagger/options/annotations.proto";
9
+
10
+ // SignalService defines an RPC Service that may create, update, and retrieve signal(s).
11
+ service SignalService {
12
+ // Fetches or creates a :ref:`ref_flyteidl.admin.Signal`.
13
+ rpc GetOrCreateSignal (flyteidl.admin.SignalGetOrCreateRequest) returns (flyteidl.admin.Signal) {
14
+ // Purposefully left out an HTTP API for this RPC call. This is meant to idempotently retrieve
15
+ // a signal, meaning the first call will create the signal and all subsequent calls will
16
+ // fetch the existing signal. This is only useful during Flyte Workflow execution and therefore
17
+ // is not exposed to mitigate unintended behavior.
18
+ option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
19
+ description: "Retrieve a signal, creating it if it does not exist."
20
+ };
21
+ }
22
+
23
+ // Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions.
24
+ rpc ListSignals (flyteidl.admin.SignalListRequest) returns (flyteidl.admin.SignalList) {
25
+ option (google.api.http) = {
26
+ get: "/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}"
27
+ };
28
+ option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
29
+ description: "Fetch existing signal definitions matching the input signal id filters."
30
+ };
31
+ }
32
+
33
+ // Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition
34
+ rpc SetSignal (flyteidl.admin.SignalSetRequest) returns (flyteidl.admin.SignalSetResponse) {
35
+ option (google.api.http) = {
36
+ post: "/api/v1/signals"
37
+ body: "*"
38
+ };
39
+ option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
40
+ description: "Set a signal value."
41
+ responses: {
42
+ key: "400"
43
+ value: {
44
+ description: "Returned for bad request that may have failed validation."
45
+ }
46
+ }
47
+ responses: {
48
+ key: "409"
49
+ value: {
50
+ description: "Returned for a request that references an identical entity that has already been registered."
51
+ }
52
+ }
53
+ };
54
+ }
55
+ }