@flyteorg/flyteidl 0.21.7 → 0.21.11

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.
@@ -57,6 +57,20 @@ Catalog artifact information with specific metadata
57
57
 
58
58
 
59
59
 
60
+
61
+
62
+ .. _ref_flyteidl.core.CatalogReservation:
63
+
64
+ CatalogReservation
65
+ ------------------------------------------------------------------
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
60
74
 
61
75
 
62
76
 
@@ -79,6 +93,25 @@ Indicates the status of CatalogCaching. The reason why this is not embedded in T
79
93
  "CACHE_LOOKUP_FAILURE", "4", "Used to indicate that cache lookup failed because of an error"
80
94
  "CACHE_PUT_FAILURE", "5", "Used to indicate that cache lookup failed because of an error"
81
95
 
96
+
97
+
98
+ .. _ref_flyteidl.core.CatalogReservation.Status:
99
+
100
+ CatalogReservation.Status
101
+ ------------------------------------------------------------------
102
+
103
+ Indicates the status of a catalog reservation operation.
104
+
105
+ .. csv-table:: Enum CatalogReservation.Status values
106
+ :header: "Name", "Number", "Description"
107
+ :widths: auto
108
+
109
+ "RESERVATION_DISABLED", "0", "Used to indicate that reservations are disabled"
110
+ "RESERVATION_ACQUIRED", "1", "Used to indicate that a reservation was successfully acquired or extended"
111
+ "RESERVATION_EXISTS", "2", "Used to indicate that an active reservation currently exists"
112
+ "RESERVATION_RELEASED", "3", "Used to indicate that the reservation has been successfully released"
113
+ "RESERVATION_FAILURE", "4", "Used to indicate that a reservation operation resulted in failure"
114
+
82
115
 
83
116
 
84
117
 
@@ -1732,6 +1765,7 @@ Container
1732
1765
  "config", ":ref:`ref_flyteidl.core.KeyValuePair`", "repeated", "**Deprecated.** Allows extra configs to be available for the container. TODO: elaborate on how configs will become available. Deprecated, please use TaskTemplate.config instead."
1733
1766
  "ports", ":ref:`ref_flyteidl.core.ContainerPort`", "repeated", "Ports to open in the container. This feature is not supported by all execution engines. (e.g. supported on K8s but not supported on AWS Batch) Only K8s"
1734
1767
  "data_config", ":ref:`ref_flyteidl.core.DataLoadingConfig`", "", "BETA: Optional configuration for DataLoading. If not specified, then default values are used. This makes it possible to to run a completely portable container, that uses inputs and outputs only from the local file-system and without having any reference to flyteidl. This is supported only on K8s at the moment. If data loading is enabled, then data will be mounted in accompanying directories specified in the DataLoadingConfig. If the directories are not specified, inputs will be mounted onto and outputs will be uploaded from a pre-determined file-system path. Refer to the documentation to understand the default paths. Only K8s"
1768
+ "architecture", ":ref:`ref_flyteidl.core.Container.Architecture`", "", ""
1735
1769
 
1736
1770
 
1737
1771
 
@@ -2007,6 +2041,7 @@ Task Metadata
2007
2041
  "discovery_version", ":ref:`ref_string`", "", "Indicates a logical version to apply to this task for the purpose of discovery."
2008
2042
  "deprecated_error_message", ":ref:`ref_string`", "", "If set, this indicates that this task is deprecated. This will enable owners of tasks to notify consumers of the ending of support for a given task."
2009
2043
  "interruptible", ":ref:`ref_bool`", "", ""
2044
+ "cache_serializable", ":ref:`ref_bool`", "", "Indicates whether the system should attempt to execute discoverable instances in serial to avoid duplicate work"
2010
2045
 
2011
2046
 
2012
2047
 
@@ -2070,6 +2105,25 @@ TaskTemplate.ConfigEntry
2070
2105
 
2071
2106
 
2072
2107
 
2108
+ .. _ref_flyteidl.core.Container.Architecture:
2109
+
2110
+ Container.Architecture
2111
+ ------------------------------------------------------------------
2112
+
2113
+ Architecture-type the container image supports.
2114
+
2115
+ .. csv-table:: Enum Container.Architecture values
2116
+ :header: "Name", "Number", "Description"
2117
+ :widths: auto
2118
+
2119
+ "UNKNOWN", "0", ""
2120
+ "AMD64", "1", ""
2121
+ "ARM64", "2", ""
2122
+ "ARM_V6", "3", ""
2123
+ "ARM_V7", "4", ""
2124
+
2125
+
2126
+
2073
2127
  .. _ref_flyteidl.core.DataLoadingConfig.LiteralMapFormat:
2074
2128
 
2075
2129
  DataLoadingConfig.LiteralMapFormat
@@ -2425,6 +2479,46 @@ Define a set of simple types.
2425
2479
 
2426
2480
 
2427
2481
 
2482
+ .. _ref_flyteidl/core/workflow_closure.proto:
2483
+
2484
+ flyteidl/core/workflow_closure.proto
2485
+ ==================================================================
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+ .. _ref_flyteidl.core.WorkflowClosure:
2492
+
2493
+ WorkflowClosure
2494
+ ------------------------------------------------------------------
2495
+
2496
+ Defines an enclosed package of workflow and tasks it references.
2497
+
2498
+
2499
+
2500
+ .. csv-table:: WorkflowClosure type fields
2501
+ :header: "Field", "Type", "Label", "Description"
2502
+ :widths: auto
2503
+
2504
+ "workflow", ":ref:`ref_flyteidl.core.WorkflowTemplate`", "", "required. Workflow template."
2505
+ "tasks", ":ref:`ref_flyteidl.core.TaskTemplate`", "repeated", "optional. A collection of tasks referenced by the workflow. Only needed if the workflow references tasks."
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+
2520
+
2521
+
2428
2522
  .. _ref_flyteidl/core/workflow.proto:
2429
2523
 
2430
2524
  flyteidl/core/workflow.proto
@@ -2745,46 +2839,6 @@ Failure Handling Strategy
2745
2839
 
2746
2840
 
2747
2841
 
2748
- .. _ref_flyteidl/core/workflow_closure.proto:
2749
-
2750
- flyteidl/core/workflow_closure.proto
2751
- ==================================================================
2752
-
2753
-
2754
-
2755
-
2756
-
2757
- .. _ref_flyteidl.core.WorkflowClosure:
2758
-
2759
- WorkflowClosure
2760
- ------------------------------------------------------------------
2761
-
2762
- Defines an enclosed package of workflow and tasks it references.
2763
-
2764
-
2765
-
2766
- .. csv-table:: WorkflowClosure type fields
2767
- :header: "Field", "Type", "Label", "Description"
2768
- :widths: auto
2769
-
2770
- "workflow", ":ref:`ref_flyteidl.core.WorkflowTemplate`", "", "required. Workflow template."
2771
- "tasks", ":ref:`ref_flyteidl.core.TaskTemplate`", "repeated", "optional. A collection of tasks referenced by the workflow. Only needed if the workflow references tasks."
2772
-
2773
-
2774
-
2775
-
2776
-
2777
-
2778
-
2779
-
2780
-
2781
-
2782
-
2783
-
2784
-
2785
-
2786
-
2787
-
2788
2842
  .. _ref_google/protobuf/timestamp.proto:
2789
2843
 
2790
2844
  google/protobuf/timestamp.proto
@@ -3101,8 +3155,8 @@ Value
3101
3155
 
3102
3156
  `Value` represents a dynamically typed value which can be either
3103
3157
  null, a number, a string, a boolean, a recursive struct value, or a
3104
- list of values. A producer of value is expected to set one of that
3105
- variants, absence of any variant indicates an error.
3158
+ list of values. A producer of value is expected to set one of these
3159
+ variants. Absence of any variant indicates an error.
3106
3160
 
3107
3161
  The JSON representation for `Value` is JSON value.
3108
3162
 
@@ -261,43 +261,6 @@ Dataset properties we can filter by
261
261
 
262
262
 
263
263
 
264
- .. _ref_datacatalog.ExtendReservationRequest:
265
-
266
- ExtendReservationRequest
267
- ------------------------------------------------------------------
268
-
269
- Request to extend reservation
270
-
271
-
272
-
273
- .. csv-table:: ExtendReservationRequest type fields
274
- :header: "Field", "Type", "Label", "Description"
275
- :widths: auto
276
-
277
- "dataset_id", ":ref:`ref_datacatalog.DatasetID`", "", ""
278
- "tag_name", ":ref:`ref_string`", "", ""
279
- "owner_id", ":ref:`ref_string`", "", ""
280
-
281
-
282
-
283
-
284
-
285
-
286
-
287
- .. _ref_datacatalog.ExtendReservationResponse:
288
-
289
- ExtendReservationResponse
290
- ------------------------------------------------------------------
291
-
292
- Response to extend reservation
293
-
294
-
295
-
296
-
297
-
298
-
299
-
300
-
301
264
  .. _ref_datacatalog.FilterExpression:
302
265
 
303
266
  FilterExpression
@@ -410,22 +373,22 @@ Dataset.
410
373
 
411
374
 
412
375
 
413
- .. _ref_datacatalog.GetOrReserveArtifactRequest:
376
+ .. _ref_datacatalog.GetOrExtendReservationRequest:
414
377
 
415
- GetOrReserveArtifactRequest
378
+ GetOrExtendReservationRequest
416
379
  ------------------------------------------------------------------
417
380
 
418
- Get the Artifact or try to reserve a spot if the Artifact does not exist.
381
+ Try to acquire or extend an artifact reservation. If an active reservation exists, retreive that instance.
419
382
 
420
383
 
421
384
 
422
- .. csv-table:: GetOrReserveArtifactRequest type fields
385
+ .. csv-table:: GetOrExtendReservationRequest type fields
423
386
  :header: "Field", "Type", "Label", "Description"
424
387
  :widths: auto
425
388
 
426
- "dataset_id", ":ref:`ref_datacatalog.DatasetID`", "", ""
427
- "tag_name", ":ref:`ref_string`", "", ""
389
+ "reservation_id", ":ref:`ref_datacatalog.ReservationID`", "", ""
428
390
  "owner_id", ":ref:`ref_string`", "", ""
391
+ "heartbeat_interval", ":ref:`ref_google.protobuf.Duration`", "", "Requested reservation extension heartbeat interval"
429
392
 
430
393
 
431
394
 
@@ -433,21 +396,20 @@ Get the Artifact or try to reserve a spot if the Artifact does not exist.
433
396
 
434
397
 
435
398
 
436
- .. _ref_datacatalog.GetOrReserveArtifactResponse:
399
+ .. _ref_datacatalog.GetOrExtendReservationResponse:
437
400
 
438
- GetOrReserveArtifactResponse
401
+ GetOrExtendReservationResponse
439
402
  ------------------------------------------------------------------
440
403
 
441
- Response to get artifact or reserve spot.
404
+ Response including either a newly minted reservation or the existing reservation
442
405
 
443
406
 
444
407
 
445
- .. csv-table:: GetOrReserveArtifactResponse type fields
408
+ .. csv-table:: GetOrExtendReservationResponse type fields
446
409
  :header: "Field", "Type", "Label", "Description"
447
410
  :widths: auto
448
411
 
449
- "artifact", ":ref:`ref_datacatalog.Artifact`", "", ""
450
- "reservation_status", ":ref:`ref_datacatalog.ReservationStatus`", "", ""
412
+ "reservation", ":ref:`ref_datacatalog.Reservation`", "", ""
451
413
 
452
414
 
453
415
 
@@ -689,8 +651,7 @@ Request to release reservation
689
651
  :header: "Field", "Type", "Label", "Description"
690
652
  :widths: auto
691
653
 
692
- "dataset_id", ":ref:`ref_datacatalog.DatasetID`", "", ""
693
- "tag_name", ":ref:`ref_string`", "", ""
654
+ "reservation_id", ":ref:`ref_datacatalog.ReservationID`", "", ""
694
655
  "owner_id", ":ref:`ref_string`", "", ""
695
656
 
696
657
 
@@ -713,22 +674,46 @@ Response to release reservation
713
674
 
714
675
 
715
676
 
716
- .. _ref_datacatalog.ReservationStatus:
677
+ .. _ref_datacatalog.Reservation:
717
678
 
718
- ReservationStatus
679
+ Reservation
719
680
  ------------------------------------------------------------------
720
681
 
721
- Whether we successfully reserve a spot.
682
+ A reservation including owner, heartbeat interval, expiration timestamp, and various metadata.
722
683
 
723
684
 
724
685
 
725
- .. csv-table:: ReservationStatus type fields
686
+ .. csv-table:: Reservation type fields
726
687
  :header: "Field", "Type", "Label", "Description"
727
688
  :widths: auto
728
689
 
729
- "state", ":ref:`ref_datacatalog.ReservationStatus.State`", "", ""
730
- "metadata", ":ref:`ref_datacatalog.Metadata`", "", ""
690
+ "reservation_id", ":ref:`ref_datacatalog.ReservationID`", "", ""
731
691
  "owner_id", ":ref:`ref_string`", "", ""
692
+ "heartbeat_interval", ":ref:`ref_google.protobuf.Duration`", "", "Recommended heartbeat interval to extend reservation"
693
+ "expires_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Expiration timestamp of this reservation"
694
+ "metadata", ":ref:`ref_datacatalog.Metadata`", "", ""
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+ .. _ref_datacatalog.ReservationID:
703
+
704
+ ReservationID
705
+ ------------------------------------------------------------------
706
+
707
+ ReservationID message that is composed of several string fields.
708
+
709
+
710
+
711
+ .. csv-table:: ReservationID type fields
712
+ :header: "Field", "Type", "Label", "Description"
713
+ :widths: auto
714
+
715
+ "dataset_id", ":ref:`ref_datacatalog.DatasetID`", "", ""
716
+ "tag_name", ":ref:`ref_string`", "", ""
732
717
 
733
718
 
734
719
 
@@ -839,22 +824,6 @@ PaginationOptions.SortOrder
839
824
 
840
825
 
841
826
 
842
- .. _ref_datacatalog.ReservationStatus.State:
843
-
844
- ReservationStatus.State
845
- ------------------------------------------------------------------
846
-
847
-
848
-
849
- .. csv-table:: Enum ReservationStatus.State values
850
- :header: "Name", "Number", "Description"
851
- :widths: auto
852
-
853
- "ACQUIRED", "0", "Acquired the reservation successfully."
854
- "ALREADY_IN_PROGRESS", "1", "Indicates an existing active reservation exist for a different owner_id."
855
-
856
-
857
-
858
827
  .. _ref_datacatalog.SinglePropertyFilter.ComparisonOperator:
859
828
 
860
829
  SinglePropertyFilter.ComparisonOperator
@@ -894,8 +863,7 @@ Artifacts are associated with a Dataset, and can be tagged for retrieval.
894
863
  "AddTag", ":ref:`ref_datacatalog.AddTagRequest`", ":ref:`ref_datacatalog.AddTagResponse`", "Associate a tag with an artifact. Tags are unique within a Dataset."
895
864
  "ListArtifacts", ":ref:`ref_datacatalog.ListArtifactsRequest`", ":ref:`ref_datacatalog.ListArtifactsResponse`", "Return a paginated list of artifacts"
896
865
  "ListDatasets", ":ref:`ref_datacatalog.ListDatasetsRequest`", ":ref:`ref_datacatalog.ListDatasetsResponse`", "Return a paginated list of datasets"
897
- "GetOrReserveArtifact", ":ref:`ref_datacatalog.GetOrReserveArtifactRequest`", ":ref:`ref_datacatalog.GetOrReserveArtifactResponse`", "Get an artifact and the corresponding data. If the artifact does not exist, try to reserve a spot for populating the artifact. Once you preserve a spot, you should call ExtendReservation API periodically to extend the reservation. Otherwise, the reservation can expire and other tasks may take the spot. If the same owner_id calls this API for the same dataset and it has an active reservation and the artifacts have not been written yet by a different owner, the API will respond with an Acquired Reservation Status (providing idempotency). Note: We may have multiple concurrent tasks with the same signature and the same input that try to populate the same artifact at the same time. Thus with reservation, only one task can run at a time, until the reservation expires. Note: If task A does not extend the reservation in time and the reservation expires, another task B may take over the reservation, resulting in two tasks A and B running in parallel. So a third task C may get the Artifact from A or B, whichever writes last."
898
- "ExtendReservation", ":ref:`ref_datacatalog.ExtendReservationRequest`", ":ref:`ref_datacatalog.ExtendReservationResponse`", "Extend the reservation to keep it from expiring. If the reservation expires, other tasks can take over the reservation by calling GetOrReserveArtifact."
866
+ "GetOrExtendReservation", ":ref:`ref_datacatalog.GetOrExtendReservationRequest`", ":ref:`ref_datacatalog.GetOrExtendReservationResponse`", "Attempts to get or extend a reservation for the corresponding artifact. If one already exists (ie. another entity owns the reservation) then that reservation is retrieved. Once you acquire a reservation, you need to periodically extend the reservation with an identical call. If the reservation is not extended before the defined expiration, it may be acquired by another task. Note: We may have multiple concurrent tasks with the same signature and the same input that try to populate the same artifact at the same time. Thus with reservation, only one task can run at a time, until the reservation expires. Note: If task A does not extend the reservation in time and the reservation expires, another task B may take over the reservation, resulting in two tasks A and B running in parallel. So a third task C may get the Artifact from A or B, whichever writes last."
899
867
  "ReleaseReservation", ":ref:`ref_datacatalog.ReleaseReservationRequest`", ":ref:`ref_datacatalog.ReleaseReservationResponse`", "Release the reservation when the task holding the spot fails so that the other tasks can grab the spot."
900
868
  <!-- end services -->
901
869
 
@@ -236,6 +236,7 @@ TaskNodeMetadata
236
236
 
237
237
  "cache_status", ":ref:`ref_flyteidl.core.CatalogCacheStatus`", "", "Captures the status of caching for this execution."
238
238
  "catalog_key", ":ref:`ref_flyteidl.core.CatalogMetadata`", "", "This structure carries the catalog artifact information"
239
+ "reservation_status", ":ref:`ref_flyteidl.core.CatalogReservation.Status`", "", "Captures the status of cache reservations for this execution."
239
240
  "dynamic_workflow", ":ref:`ref_flyteidl.event.DynamicWorkflowNodeMetadata`", "", "In the case this task launched a dynamic workflow we capture its structure here."
240
241
 
241
242
 
@@ -41,3 +41,19 @@ message CatalogMetadata {
41
41
  TaskExecutionIdentifier source_task_execution = 3;
42
42
  }
43
43
  };
44
+
45
+ message CatalogReservation {
46
+ // Indicates the status of a catalog reservation operation.
47
+ enum Status {
48
+ // Used to indicate that reservations are disabled
49
+ RESERVATION_DISABLED = 0;
50
+ // Used to indicate that a reservation was successfully acquired or extended
51
+ RESERVATION_ACQUIRED = 1;
52
+ // Used to indicate that an active reservation currently exists
53
+ RESERVATION_EXISTS = 2;
54
+ // Used to indicate that the reservation has been successfully released
55
+ RESERVATION_RELEASED = 3;
56
+ // Used to indicate that a reservation operation resulted in failure
57
+ RESERVATION_FAILURE = 4;
58
+ }
59
+ }
@@ -92,6 +92,9 @@ message TaskMetadata {
92
92
  oneof interruptible_value {
93
93
  bool interruptible = 8;
94
94
  };
95
+
96
+ // Indicates whether the system should attempt to execute discoverable instances in serial to avoid duplicate work
97
+ bool cache_serializable = 9;
95
98
  }
96
99
 
97
100
  // A Task structure that uniquely identifies a task in the system
@@ -3,6 +3,7 @@ syntax = "proto3";
3
3
  package datacatalog;
4
4
 
5
5
  import "flyteidl/core/literals.proto";
6
+ import "google/protobuf/duration.proto";
6
7
  import "google/protobuf/timestamp.proto";
7
8
 
8
9
  /*
@@ -34,25 +35,18 @@ service DataCatalog {
34
35
  // Return a paginated list of datasets
35
36
  rpc ListDatasets (ListDatasetsRequest) returns (ListDatasetsResponse);
36
37
 
37
- // Get an artifact and the corresponding data. If the artifact does not exist,
38
- // try to reserve a spot for populating the artifact.
39
- // Once you preserve a spot, you should call ExtendReservation API periodically
40
- // to extend the reservation. Otherwise, the reservation can expire and other
41
- // tasks may take the spot.
42
- // If the same owner_id calls this API for the same dataset and it has an active reservation and the artifacts have not been written yet by a different owner, the API will respond with an Acquired Reservation Status (providing idempotency).
43
- // Note: We may have multiple concurrent tasks with the same signature
44
- // and the same input that try to populate the same artifact at the same time.
45
- // Thus with reservation, only one task can run at a time, until the reservation
46
- // expires.
47
- // Note: If task A does not extend the reservation in time and the reservation
48
- // expires, another task B may take over the reservation, resulting in two tasks
49
- // A and B running in parallel. So a third task C may get the Artifact from A or B,
50
- // whichever writes last.
51
- rpc GetOrReserveArtifact (GetOrReserveArtifactRequest) returns (GetOrReserveArtifactResponse);
52
-
53
- // Extend the reservation to keep it from expiring. If the reservation expires,
54
- // other tasks can take over the reservation by calling GetOrReserveArtifact.
55
- rpc ExtendReservation (ExtendReservationRequest) returns (ExtendReservationResponse);
38
+ // Attempts to get or extend a reservation for the corresponding artifact. If one already exists
39
+ // (ie. another entity owns the reservation) then that reservation is retrieved.
40
+ // Once you acquire a reservation, you need to periodically extend the reservation with an
41
+ // identical call. If the reservation is not extended before the defined expiration, it may be
42
+ // acquired by another task.
43
+ // Note: We may have multiple concurrent tasks with the same signature and the same input that
44
+ // try to populate the same artifact at the same time. Thus with reservation, only one task can
45
+ // run at a time, until the reservation expires.
46
+ // Note: If task A does not extend the reservation in time and the reservation expires, another
47
+ // task B may take over the reservation, resulting in two tasks A and B running in parallel. So
48
+ // a third task C may get the Artifact from A or B, whichever writes last.
49
+ rpc GetOrExtendReservation (GetOrExtendReservationRequest) returns (GetOrExtendReservationResponse);
56
50
 
57
51
  // Release the reservation when the task holding the spot fails so that the other tasks
58
52
  // can grab the spot.
@@ -174,53 +168,39 @@ message ListDatasetsResponse {
174
168
  string next_token = 2;
175
169
  }
176
170
 
177
- // Get the Artifact or try to reserve a spot if the Artifact does not exist.
178
- message GetOrReserveArtifactRequest {
171
+ /*
172
+ * ReservationID message that is composed of several string fields.
173
+ */
174
+ message ReservationID {
179
175
  DatasetID dataset_id = 1;
180
176
  string tag_name = 2;
181
- string owner_id = 3;
182
177
  }
183
178
 
184
- // Whether we successfully reserve a spot.
185
- message ReservationStatus {
186
- enum State {
187
- // Acquired the reservation successfully.
188
- ACQUIRED = 0;
189
-
190
- // Indicates an existing active reservation exist for a different owner_id.
191
- ALREADY_IN_PROGRESS = 1;
192
- };
193
-
194
- State state = 1;
195
- Metadata metadata = 2;
196
- string owner_id = 3;
179
+ // Try to acquire or extend an artifact reservation. If an active reservation exists, retreive that instance.
180
+ message GetOrExtendReservationRequest {
181
+ ReservationID reservation_id = 1;
182
+ string owner_id = 2;
183
+ google.protobuf.Duration heartbeat_interval = 3; // Requested reservation extension heartbeat interval
197
184
  }
198
185
 
199
- // Response to get artifact or reserve spot.
200
- message GetOrReserveArtifactResponse {
201
- oneof value {
202
- Artifact artifact = 1;
203
- ReservationStatus reservation_status = 2;
204
- }
186
+ // A reservation including owner, heartbeat interval, expiration timestamp, and various metadata.
187
+ message Reservation {
188
+ ReservationID reservation_id = 1;
189
+ string owner_id = 2;
190
+ google.protobuf.Duration heartbeat_interval = 3; // Recommended heartbeat interval to extend reservation
191
+ google.protobuf.Timestamp expires_at = 4; // Expiration timestamp of this reservation
192
+ Metadata metadata = 6;
205
193
  }
206
194
 
207
- // Request to extend reservation
208
- message ExtendReservationRequest {
209
- DatasetID dataset_id = 1;
210
- string tag_name = 2;
211
- string owner_id = 3;
212
- }
213
-
214
- // Response to extend reservation
215
- message ExtendReservationResponse {
216
-
195
+ // Response including either a newly minted reservation or the existing reservation
196
+ message GetOrExtendReservationResponse {
197
+ Reservation reservation = 1;
217
198
  }
218
199
 
219
200
  // Request to release reservation
220
201
  message ReleaseReservationRequest {
221
- DatasetID dataset_id = 1;
222
- string tag_name = 2;
223
- string owner_id = 3;
202
+ ReservationID reservation_id = 1;
203
+ string owner_id = 2;
224
204
  }
225
205
 
226
206
  // Response to release reservation
@@ -99,6 +99,8 @@ message TaskNodeMetadata {
99
99
  core.CatalogCacheStatus cache_status = 1;
100
100
  // This structure carries the catalog artifact information
101
101
  core.CatalogMetadata catalog_key = 2;
102
+ // Captures the status of cache reservations for this execution.
103
+ core.CatalogReservation.Status reservation_status = 3;
102
104
 
103
105
  // In the case this task launched a dynamic workflow we capture its structure here.
104
106
  DynamicWorkflowNodeMetadata dynamic_workflow = 16;