@flyteorg/flyteidl 1.1.22 → 1.2.1

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.1.22",
3
+ "version": "1.2.1",
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
@@ -3566,6 +3729,28 @@ flyteidl/admin/workflow.proto
3566
3729
 
3567
3730
 
3568
3731
 
3732
+ .. _ref_flyteidl.admin.CreateWorkflowFailureReason:
3733
+
3734
+ CreateWorkflowFailureReason
3735
+ ------------------------------------------------------------------
3736
+
3737
+ When a CreateWorkflowRequest failes due to matching id
3738
+
3739
+
3740
+
3741
+ .. csv-table:: CreateWorkflowFailureReason type fields
3742
+ :header: "Field", "Type", "Label", "Description"
3743
+ :widths: auto
3744
+
3745
+ "exists_different_structure", ":ref:`ref_flyteidl.admin.WorkflowErrorExistsDifferentStructure`", "", ""
3746
+ "exists_identical_structure", ":ref:`ref_flyteidl.admin.WorkflowErrorExistsIdenticalStructure`", "", ""
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3569
3754
  .. _ref_flyteidl.admin.Workflow:
3570
3755
 
3571
3756
  Workflow
@@ -3649,6 +3834,48 @@ Purposefully empty, may be populated in the future.
3649
3834
 
3650
3835
 
3651
3836
 
3837
+ .. _ref_flyteidl.admin.WorkflowErrorExistsDifferentStructure:
3838
+
3839
+ WorkflowErrorExistsDifferentStructure
3840
+ ------------------------------------------------------------------
3841
+
3842
+ The workflow id is already used and the structure is different
3843
+
3844
+
3845
+
3846
+ .. csv-table:: WorkflowErrorExistsDifferentStructure type fields
3847
+ :header: "Field", "Type", "Label", "Description"
3848
+ :widths: auto
3849
+
3850
+ "id", ":ref:`ref_flyteidl.core.Identifier`", "", ""
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+ .. _ref_flyteidl.admin.WorkflowErrorExistsIdenticalStructure:
3859
+
3860
+ WorkflowErrorExistsIdenticalStructure
3861
+ ------------------------------------------------------------------
3862
+
3863
+ The workflow id is already used with an identical sctructure
3864
+
3865
+
3866
+
3867
+ .. csv-table:: WorkflowErrorExistsIdenticalStructure type fields
3868
+ :header: "Field", "Type", "Label", "Description"
3869
+ :widths: auto
3870
+
3871
+ "id", ":ref:`ref_flyteidl.core.Identifier`", "", ""
3872
+
3873
+
3874
+
3875
+
3876
+
3877
+
3878
+
3652
3879
  .. _ref_flyteidl.admin.WorkflowList:
3653
3880
 
3654
3881
  WorkflowList
@@ -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
@@ -3233,7 +3345,6 @@ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
3233
3345
  Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
3234
3346
  .setNanos((int) ((millis % 1000) * 1000000)).build();
3235
3347
 
3236
-
3237
3348
  Example 5: Compute Timestamp from Java `Instant.now()`.
3238
3349
 
3239
3350
  Instant now = Instant.now();
@@ -3242,7 +3353,6 @@ Example 5: Compute Timestamp from Java `Instant.now()`.
3242
3353
  Timestamp.newBuilder().setSeconds(now.getEpochSecond())
3243
3354
  .setNanos(now.getNano()).build();
3244
3355
 
3245
-
3246
3356
  Example 6: Compute Timestamp from current time in Python.
3247
3357
 
3248
3358
  timestamp = Timestamp()
@@ -942,7 +942,6 @@ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
942
942
  Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
943
943
  .setNanos((int) ((millis % 1000) * 1000000)).build();
944
944
 
945
-
946
945
  Example 5: Compute Timestamp from Java `Instant.now()`.
947
946
 
948
947
  Instant now = Instant.now();
@@ -951,7 +950,6 @@ Example 5: Compute Timestamp from Java `Instant.now()`.
951
950
  Timestamp.newBuilder().setSeconds(now.getEpochSecond())
952
951
  .setNanos(now.getNano()).build();
953
952
 
954
-
955
953
  Example 6: Compute Timestamp from current time in Python.
956
954
 
957
955
  timestamp = Timestamp()
@@ -401,7 +401,6 @@ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
401
401
  Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
402
402
  .setNanos((int) ((millis % 1000) * 1000000)).build();
403
403
 
404
-
405
404
  Example 5: Compute Timestamp from Java `Instant.now()`.
406
405
 
407
406
  Instant now = Instant.now();
@@ -410,7 +409,6 @@ Example 5: Compute Timestamp from Java `Instant.now()`.
410
409
  Timestamp.newBuilder().setSeconds(now.getEpochSecond())
411
410
  .setNanos(now.getNano()).build();
412
411
 
413
-
414
412
  Example 6: Compute Timestamp from current time in Python.
415
413
 
416
414
  timestamp = Timestamp()
@@ -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
+ }
@@ -65,3 +65,21 @@ message WorkflowClosure {
65
65
  // Time at which the workflow was created.
66
66
  google.protobuf.Timestamp created_at = 2;
67
67
  }
68
+
69
+ // The workflow id is already used and the structure is different
70
+ message WorkflowErrorExistsDifferentStructure {
71
+ core.Identifier id = 1;
72
+ }
73
+
74
+ // The workflow id is already used with an identical sctructure
75
+ message WorkflowErrorExistsIdenticalStructure {
76
+ core.Identifier id = 1;
77
+ }
78
+
79
+ // When a CreateWorkflowRequest failes due to matching id
80
+ message CreateWorkflowFailureReason {
81
+ oneof reason {
82
+ WorkflowErrorExistsDifferentStructure exists_different_structure = 1;
83
+ WorkflowErrorExistsIdenticalStructure exists_identical_structure = 2;
84
+ }
85
+ }
@@ -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