retab 0.1.5 → 0.1.7

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.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/lib/retab/base_client.rb +9 -2
  3. data/lib/retab/client.rb +8 -0
  4. data/lib/retab/experiment_runs/experiment_run.rb +9 -0
  5. data/lib/retab/files/create_file_blueprint_request.rb +31 -0
  6. data/lib/retab/files/file_blueprint.rb +52 -0
  7. data/lib/retab/files.rb +88 -0
  8. data/lib/retab/multipart.rb +73 -0
  9. data/lib/retab/schemas/generate_schema_request.rb +3 -3
  10. data/lib/retab/schemas/{partial_schema.rb → schema_generation.rb} +12 -3
  11. data/lib/retab/schemas.rb +5 -5
  12. data/lib/retab/secrets/create_secret_request.rb +25 -0
  13. data/lib/retab/secrets/secret.rb +34 -0
  14. data/lib/retab/secrets/secret_list_response.rb +20 -0
  15. data/lib/retab/secrets/secret_response.rb +20 -0
  16. data/lib/retab/secrets/secret_value.rb +28 -0
  17. data/lib/retab/secrets/secret_value_response.rb +20 -0
  18. data/lib/retab/secrets/set_secret_request.rb +20 -0
  19. data/lib/retab/secrets.rb +154 -0
  20. data/lib/retab/tables/create_workflow_table_upload_request.rb +31 -0
  21. data/lib/retab/tables/query_workflow_table_request.rb +72 -0
  22. data/lib/retab/tables/replace_workflow_table_upload_request.rb +25 -0
  23. data/lib/retab/tables/update_workflow_table_request.rb +25 -0
  24. data/lib/retab/tables/workflow_table.rb +58 -0
  25. data/lib/retab/tables/workflow_table_aggregation_request.rb +28 -0
  26. data/lib/retab/tables/workflow_table_column.rb +34 -0
  27. data/lib/retab/tables/workflow_table_distinct_request.rb +20 -0
  28. data/lib/retab/tables/workflow_table_explain.rb +54 -0
  29. data/lib/retab/tables/workflow_table_filter_rule.rb +28 -0
  30. data/lib/retab/tables/workflow_table_list_response.rb +20 -0
  31. data/lib/retab/tables/workflow_table_profile_column.rb +49 -0
  32. data/lib/retab/tables/workflow_table_profile_response.rb +28 -0
  33. data/lib/retab/tables/workflow_table_response.rb +20 -0
  34. data/lib/retab/tables/workflow_table_row.rb +28 -0
  35. data/lib/retab/tables/workflow_table_rows_response.rb +52 -0
  36. data/lib/retab/tables/workflow_table_sample_request.rb +20 -0
  37. data/lib/retab/tables/workflow_table_schema_response.rb +25 -0
  38. data/lib/retab/tables/workflow_table_search_request.rb +25 -0
  39. data/lib/retab/tables/workflow_table_sort_rule.rb +25 -0
  40. data/lib/retab/tables/workflow_table_tail_request.rb +7 -0
  41. data/lib/retab/tables/workflow_table_validation_column_rule.rb +28 -0
  42. data/lib/retab/tables/workflow_table_validation_diagnostic.rb +31 -0
  43. data/lib/retab/tables/workflow_table_validation_request.rb +28 -0
  44. data/lib/retab/tables/workflow_table_validation_response.rb +30 -0
  45. data/lib/retab/tables.rb +361 -0
  46. data/lib/retab/types/artifact_drift_status.rb +15 -0
  47. data/lib/retab/types/artifact_freshness_reasons.rb +16 -0
  48. data/lib/retab/types/artifact_freshness_status.rb +14 -0
  49. data/lib/retab/types/create_file_blueprint_request_mode.rb +13 -0
  50. data/lib/retab/types/declarative_plan_resource_change_type.rb +0 -2
  51. data/lib/retab/types/file_blueprint_mode.rb +9 -0
  52. data/lib/retab/types/file_blueprint_status.rb +9 -0
  53. data/lib/retab/types/schema_generation_status.rb +9 -0
  54. data/lib/retab/types/validate_workflow_block_config_request_config_mode.rb +9 -0
  55. data/lib/retab/types/workflow_authz_status.rb +16 -0
  56. data/lib/retab/types/workflow_block_type.rb +0 -2
  57. data/lib/retab/types/workflow_block_version_type.rb +9 -0
  58. data/lib/retab/types/workflow_capabilities.rb +26 -0
  59. data/lib/retab/types/workflow_config_block_type.rb +9 -0
  60. data/lib/retab/types/workflow_table_aggregation_function.rb +17 -0
  61. data/lib/retab/types/workflow_table_filter_operator.rb +46 -0
  62. data/lib/retab/types/workflow_table_sort_direction.rb +9 -0
  63. data/lib/retab/types/workflow_table_validation_column_rule_type.rb +18 -0
  64. data/lib/retab/types/workflow_table_validation_severity.rb +13 -0
  65. data/lib/retab/workflow_blocks/validate_workflow_block_config_request.rb +25 -0
  66. data/lib/retab/workflow_blocks/validate_workflow_block_config_response.rb +34 -0
  67. data/lib/retab/workflow_blocks/workflow_block.rb +6 -0
  68. data/lib/retab/workflow_blocks/workflow_block_version.rb +64 -0
  69. data/lib/retab/workflow_blocks/workflow_block_version_diff.rb +31 -0
  70. data/lib/retab/workflow_blocks/workflow_version_field_diff.rb +28 -0
  71. data/lib/retab/workflow_blocks.rb +172 -0
  72. data/lib/retab/workflow_edges/workflow_edge_version.rb +49 -0
  73. data/lib/retab/workflow_edges/workflow_edge_version_diff.rb +31 -0
  74. data/lib/retab/workflow_edges.rb +134 -0
  75. data/lib/retab/workflow_experiments/artifact_drift.rb +28 -0
  76. data/lib/retab/workflow_experiments/artifact_freshness.rb +34 -0
  77. data/lib/retab/workflow_experiments/workflow_experiment.rb +8 -2
  78. data/lib/retab/workflow_review_versions.rb +3 -3
  79. data/lib/retab/workflow_reviews.rb +4 -4
  80. data/lib/retab/workflow_runs.rb +1 -1
  81. data/lib/retab/workflow_spec.rb +6 -57
  82. data/lib/retab/workflow_test_runs/workflow_test_run.rb +5 -2
  83. data/lib/retab/workflow_tests/latest_block_test_run_summary.rb +6 -0
  84. data/lib/retab/workflow_tests/workflow_test.rb +6 -0
  85. data/lib/retab/workflows/create_workflow_request.rb +5 -2
  86. data/lib/retab/{workflow_spec → workflows}/declarative_workflow_request.rb +7 -2
  87. data/lib/retab/workflows/workflow.rb +11 -2
  88. data/lib/retab/workflows/workflow_block_position.rb +25 -0
  89. data/lib/retab/workflows/workflow_config_block.rb +46 -0
  90. data/lib/retab/workflows/workflow_config_edge.rb +37 -0
  91. data/lib/retab/workflows/workflow_graph_version.rb +40 -0
  92. data/lib/retab/workflows/workflow_graph_version_diff.rb +43 -0
  93. data/lib/retab/workflows.rb +209 -3
  94. data/lib/retab.rb +2 -0
  95. data/rbi/retab/artifact_drift.rbi +36 -0
  96. data/rbi/retab/artifact_freshness.rbi +48 -0
  97. data/rbi/retab/client.rbi +6 -0
  98. data/rbi/retab/create_file_blueprint_request.rbi +42 -0
  99. data/rbi/retab/create_secret_request.rbi +30 -0
  100. data/rbi/retab/create_upload_response.rbi +2 -2
  101. data/rbi/retab/create_workflow_request.rbi +6 -0
  102. data/rbi/retab/create_workflow_table_upload_request.rbi +42 -0
  103. data/rbi/retab/declarative_workflow_request.rbi +6 -0
  104. data/rbi/retab/experiment_run.rbi +18 -0
  105. data/rbi/retab/file_blueprint.rbi +84 -0
  106. data/rbi/retab/files.rbi +28 -0
  107. data/rbi/retab/generate_schema_request.rbi +2 -2
  108. data/rbi/retab/latest_block_test_run_summary.rbi +12 -0
  109. data/rbi/retab/query_workflow_table_request.rbi +120 -0
  110. data/rbi/retab/replace_workflow_table_upload_request.rbi +30 -0
  111. data/rbi/retab/{partial_schema.rbi → schema_generation.rbi} +19 -1
  112. data/rbi/retab/schemas.rbi +3 -3
  113. data/rbi/retab/secret.rbi +48 -0
  114. data/rbi/retab/secret_list_response.rbi +24 -0
  115. data/rbi/retab/secret_response.rbi +24 -0
  116. data/rbi/retab/secret_value.rbi +36 -0
  117. data/rbi/retab/secret_value_response.rbi +24 -0
  118. data/rbi/retab/secrets.rbi +62 -0
  119. data/rbi/retab/set_secret_request.rbi +24 -0
  120. data/rbi/retab/tables.rbi +129 -0
  121. data/rbi/retab/update_workflow_table_request.rbi +30 -0
  122. data/rbi/retab/validate_workflow_block_config_request.rbi +30 -0
  123. data/rbi/retab/validate_workflow_block_config_response.rbi +48 -0
  124. data/rbi/retab/workflow.rbi +18 -0
  125. data/rbi/retab/workflow_block.rbi +12 -0
  126. data/rbi/retab/workflow_block_position.rbi +30 -0
  127. data/rbi/retab/workflow_block_version.rbi +108 -0
  128. data/rbi/retab/workflow_block_version_diff.rbi +42 -0
  129. data/rbi/retab/workflow_blocks.rbi +49 -0
  130. data/rbi/retab/workflow_config_block.rbi +72 -0
  131. data/rbi/retab/workflow_config_edge.rbi +54 -0
  132. data/rbi/retab/workflow_edge_version.rbi +78 -0
  133. data/rbi/retab/workflow_edge_version_diff.rbi +42 -0
  134. data/rbi/retab/workflow_edges.rbi +38 -0
  135. data/rbi/retab/workflow_experiment.rbi +12 -0
  136. data/rbi/retab/workflow_graph_version.rbi +60 -0
  137. data/rbi/retab/workflow_graph_version_diff.rbi +66 -0
  138. data/rbi/retab/workflow_spec.rbi +2 -17
  139. data/rbi/retab/workflow_table.rbi +96 -0
  140. data/rbi/retab/workflow_table_aggregation_request.rbi +36 -0
  141. data/rbi/retab/workflow_table_column.rbi +48 -0
  142. data/rbi/retab/workflow_table_distinct_request.rbi +24 -0
  143. data/rbi/retab/workflow_table_explain.rbi +84 -0
  144. data/rbi/retab/workflow_table_filter_rule.rbi +36 -0
  145. data/rbi/retab/workflow_table_list_response.rbi +24 -0
  146. data/rbi/retab/workflow_table_profile_column.rbi +78 -0
  147. data/rbi/retab/workflow_table_profile_response.rbi +36 -0
  148. data/rbi/retab/workflow_table_response.rbi +24 -0
  149. data/rbi/retab/workflow_table_row.rbi +36 -0
  150. data/rbi/retab/workflow_table_rows_response.rbi +84 -0
  151. data/rbi/retab/workflow_table_sample_request.rbi +24 -0
  152. data/rbi/retab/workflow_table_schema_response.rbi +30 -0
  153. data/rbi/retab/workflow_table_search_request.rbi +30 -0
  154. data/rbi/retab/workflow_table_sort_rule.rbi +30 -0
  155. data/rbi/retab/workflow_table_tail_request.rbi +24 -0
  156. data/rbi/retab/workflow_table_validation_column_rule.rbi +36 -0
  157. data/rbi/retab/workflow_table_validation_diagnostic.rbi +42 -0
  158. data/rbi/retab/workflow_table_validation_request.rbi +36 -0
  159. data/rbi/retab/workflow_table_validation_response.rbi +36 -0
  160. data/rbi/retab/workflow_test.rbi +12 -0
  161. data/rbi/retab/workflow_test_run.rbi +6 -0
  162. data/rbi/retab/workflow_version_field_diff.rbi +36 -0
  163. data/rbi/retab/workflows.rbi +61 -2
  164. metadata +128 -10
  165. /data/lib/retab/{workflow_spec → workflows}/declarative_apply_response.rb +0 -0
  166. /data/lib/retab/{workflow_spec → workflows}/declarative_plan_change.rb +0 -0
  167. /data/lib/retab/{workflow_spec → workflows}/declarative_plan_field_change.rb +0 -0
  168. /data/lib/retab/{workflow_spec → workflows}/declarative_plan_resource_change.rb +0 -0
  169. /data/lib/retab/{workflow_spec → workflows}/declarative_plan_response.rb +0 -0
  170. /data/lib/retab/{workflow_spec → workflows}/declarative_plan_summary.rb +0 -0
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module Retab
6
+ class WorkflowConfigBlock < Retab::Types::BaseModel
7
+
8
+ HASH_ATTRS = {
9
+ id: :id,
10
+ type: :type,
11
+ position: :position,
12
+ label: :label,
13
+ config: :config,
14
+ resolved_schemas: :resolved_schemas,
15
+ width: :width,
16
+ height: :height,
17
+ parent_id: :parent_id
18
+ }.freeze
19
+
20
+ attr_accessor(
21
+ :id,
22
+ :type,
23
+ :position,
24
+ :label,
25
+ :config,
26
+ :resolved_schemas,
27
+ :width,
28
+ :height,
29
+ :parent_id
30
+ )
31
+
32
+ def initialize(json)
33
+ super()
34
+ hash = self.class.normalize(json)
35
+ @id = hash[:id]
36
+ @type = hash[:type]
37
+ @position = hash[:position] ? Retab::WorkflowBlockPosition.new(hash[:position]) : nil
38
+ @label = hash[:label]
39
+ @config = hash[:config] || {}
40
+ @resolved_schemas = hash[:resolved_schemas] || {}
41
+ @width = hash[:width]
42
+ @height = hash[:height]
43
+ @parent_id = hash[:parent_id]
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module Retab
6
+ class WorkflowConfigEdge < Retab::Types::BaseModel
7
+
8
+ HASH_ATTRS = {
9
+ id: :id,
10
+ source: :source,
11
+ target: :target,
12
+ source_handle: :source_handle,
13
+ target_handle: :target_handle,
14
+ animated: :animated
15
+ }.freeze
16
+
17
+ attr_accessor(
18
+ :id,
19
+ :source,
20
+ :target,
21
+ :source_handle,
22
+ :target_handle,
23
+ :animated
24
+ )
25
+
26
+ def initialize(json)
27
+ super()
28
+ hash = self.class.normalize(json)
29
+ @id = hash[:id]
30
+ @source = hash[:source]
31
+ @target = hash[:target]
32
+ @source_handle = hash[:source_handle]
33
+ @target_handle = hash[:target_handle]
34
+ @animated = hash[:animated].nil? ? true : hash[:animated]
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module Retab
6
+ class WorkflowGraphVersion < Retab::Types::BaseModel
7
+
8
+ HASH_ATTRS = {
9
+ id: :id,
10
+ workflow_id: :workflow_id,
11
+ blocks: :blocks,
12
+ edges: :edges,
13
+ block_version_ids: :block_version_ids,
14
+ edge_version_ids: :edge_version_ids,
15
+ created_at: :created_at
16
+ }.freeze
17
+
18
+ attr_accessor(
19
+ :id,
20
+ :workflow_id,
21
+ :blocks,
22
+ :edges,
23
+ :block_version_ids,
24
+ :edge_version_ids,
25
+ :created_at
26
+ )
27
+
28
+ def initialize(json)
29
+ super()
30
+ hash = self.class.normalize(json)
31
+ @id = hash[:id]
32
+ @workflow_id = hash[:workflow_id]
33
+ @blocks = (hash[:blocks] || []).map { |item| item ? Retab::WorkflowConfigBlock.new(item) : nil }
34
+ @edges = (hash[:edges] || []).map { |item| item ? Retab::WorkflowConfigEdge.new(item) : nil }
35
+ @block_version_ids = (hash[:block_version_ids] || [])
36
+ @edge_version_ids = (hash[:edge_version_ids] || [])
37
+ @created_at = hash[:created_at]
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module Retab
6
+ class WorkflowGraphVersionDiff < Retab::Types::BaseModel
7
+
8
+ HASH_ATTRS = {
9
+ from_workflow_version_id: :from_workflow_version_id,
10
+ to_workflow_version_id: :to_workflow_version_id,
11
+ added_block_ids: :added_block_ids,
12
+ removed_block_ids: :removed_block_ids,
13
+ changed_block_ids: :changed_block_ids,
14
+ added_edge_ids: :added_edge_ids,
15
+ removed_edge_ids: :removed_edge_ids,
16
+ changed_edge_ids: :changed_edge_ids
17
+ }.freeze
18
+
19
+ attr_accessor(
20
+ :from_workflow_version_id,
21
+ :to_workflow_version_id,
22
+ :added_block_ids,
23
+ :removed_block_ids,
24
+ :changed_block_ids,
25
+ :added_edge_ids,
26
+ :removed_edge_ids,
27
+ :changed_edge_ids
28
+ )
29
+
30
+ def initialize(json)
31
+ super()
32
+ hash = self.class.normalize(json)
33
+ @from_workflow_version_id = hash[:from_workflow_version_id]
34
+ @to_workflow_version_id = hash[:to_workflow_version_id]
35
+ @added_block_ids = (hash[:added_block_ids] || [])
36
+ @removed_block_ids = (hash[:removed_block_ids] || [])
37
+ @changed_block_ids = (hash[:changed_block_ids] || [])
38
+ @added_edge_ids = (hash[:added_edge_ids] || [])
39
+ @removed_edge_ids = (hash[:removed_edge_ids] || [])
40
+ @changed_edge_ids = (hash[:changed_edge_ids] || [])
41
+ end
42
+ end
43
+ end
@@ -52,6 +52,7 @@ module Retab
52
52
  # @param limit [Integer, nil] Items per page
53
53
  # @param order [Retab::Types::WorkflowsOrder, nil]
54
54
  # @param sort_by [String, nil]
55
+ # @param project_id [String, nil] Only return workflows belonging to this project. Use the shared project's id to list the organization's shared workflows.
55
56
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
56
57
  # @return [Retab::PaginatedList<Retab::Workflow>]
57
58
  def list(
@@ -60,6 +61,7 @@ module Retab
60
61
  limit: 10,
61
62
  order: "desc",
62
63
  sort_by: "updated_at",
64
+ project_id: nil,
63
65
  request_options: {}
64
66
  )
65
67
  params = {
@@ -67,7 +69,8 @@ module Retab
67
69
  "after" => after,
68
70
  "limit" => limit,
69
71
  "order" => order,
70
- "sort_by" => sort_by
72
+ "sort_by" => sort_by,
73
+ "project_id" => project_id
71
74
  }.compact
72
75
  response = @client.request(
73
76
  method: :get,
@@ -83,13 +86,14 @@ module Retab
83
86
  limit: limit,
84
87
  order: order,
85
88
  sort_by: sort_by,
89
+ project_id: project_id,
86
90
  request_options: request_options
87
91
  )
88
92
  }
89
93
  Retab::PaginatedList.from_response(
90
94
  response,
91
95
  model: Retab::Workflow,
92
- filters: {before: before, limit: limit, order: order, sort_by: sort_by},
96
+ filters: {before: before, limit: limit, order: order, sort_by: sort_by, project_id: project_id},
93
97
  fetch_next: fetch_next
94
98
  )
95
99
  end
@@ -97,16 +101,19 @@ module Retab
97
101
  # Create Workflow
98
102
  # @param name [String, nil] The name of the workflow
99
103
  # @param description [String, nil] Description of the workflow
104
+ # @param project_id [String] Project that should own this workflow.
100
105
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
101
106
  # @return [Retab::Workflow]
102
107
  def create(
108
+ project_id:,
103
109
  name: nil,
104
110
  description: nil,
105
111
  request_options: {}
106
112
  )
107
113
  body = {
108
114
  "name" => name,
109
- "description" => description
115
+ "description" => description,
116
+ "project_id" => project_id
110
117
  }.compact
111
118
  response = @client.request(
112
119
  method: :post,
@@ -124,6 +131,205 @@ module Retab
124
131
  result
125
132
  end
126
133
 
134
+ # Apply Workflow Spec
135
+ # @param yaml_definition [String] Workflow YAML definition
136
+ # @param project_id [String, nil] Project that should own a workflow created from this spec. Required when applying a spec that creates a new workflow.
137
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
138
+ # @return [Retab::DeclarativeApplyResponse]
139
+ def apply(
140
+ yaml_definition:,
141
+ project_id: nil,
142
+ workflow_id: nil,
143
+ request_options: {}
144
+ )
145
+ path = workflow_id.nil? ? "/v1/workflows/spec/apply" : "/v1/workflows/#{Retab::Util.encode_path(workflow_id)}/spec/apply"
146
+ body = {
147
+ "yaml_definition" => yaml_definition,
148
+ "project_id" => project_id
149
+ }.compact
150
+ response = @client.request(
151
+ method: :post,
152
+ path: path,
153
+ auth: true,
154
+ body: body,
155
+ request_options: request_options
156
+ )
157
+ result = Retab::DeclarativeApplyResponse.new(response.body)
158
+ result.last_response = Retab::Types::ApiResponse.new(
159
+ http_status: response.code.to_i,
160
+ http_headers: response.each_header.to_h,
161
+ request_id: response["x-request-id"]
162
+ )
163
+ result
164
+ end
165
+
166
+ # Plan Workflow Spec
167
+ # @param yaml_definition [String] Workflow YAML definition
168
+ # @param project_id [String, nil] Project that should own a workflow created from this spec. Required when applying a spec that creates a new workflow.
169
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
170
+ # @return [Retab::DeclarativePlanResponse]
171
+ def plan(
172
+ yaml_definition:,
173
+ project_id: nil,
174
+ workflow_id: nil,
175
+ request_options: {}
176
+ )
177
+ path = workflow_id.nil? ? "/v1/workflows/spec/plan" : "/v1/workflows/#{Retab::Util.encode_path(workflow_id)}/spec/plan"
178
+ body = {
179
+ "yaml_definition" => yaml_definition,
180
+ "project_id" => project_id
181
+ }.compact
182
+ response = @client.request(
183
+ method: :post,
184
+ path: path,
185
+ auth: true,
186
+ body: body,
187
+ request_options: request_options
188
+ )
189
+ result = Retab::DeclarativePlanResponse.new(response.body)
190
+ result.last_response = Retab::Types::ApiResponse.new(
191
+ http_status: response.code.to_i,
192
+ http_headers: response.each_header.to_h,
193
+ request_id: response["x-request-id"]
194
+ )
195
+ result
196
+ end
197
+
198
+ # List Workflow Versions
199
+ # @param workflow_id [String] Workflow whose versions to list
200
+ # @param before [String, nil] Workflow version cursor before
201
+ # @param after [String, nil] Workflow version cursor after
202
+ # @param limit [Integer, nil] Maximum number of versions to return
203
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
204
+ # @return [Retab::PaginatedList<Retab::WorkflowGraphVersion>]
205
+ def list_versions(
206
+ workflow_id:,
207
+ before: nil,
208
+ after: nil,
209
+ limit: 50,
210
+ request_options: {}
211
+ )
212
+ params = {
213
+ "workflow_id" => workflow_id,
214
+ "before" => before,
215
+ "after" => after,
216
+ "limit" => limit
217
+ }.compact
218
+ response = @client.request(
219
+ method: :get,
220
+ path: "/v1/workflows/versions",
221
+ auth: true,
222
+ params: params,
223
+ request_options: request_options
224
+ )
225
+ fetch_next = -> (cursor) {
226
+ list_versions(
227
+ workflow_id: workflow_id,
228
+ before: before,
229
+ after: cursor,
230
+ limit: limit,
231
+ request_options: request_options
232
+ )
233
+ }
234
+ Retab::PaginatedList.from_response(
235
+ response,
236
+ model: Retab::WorkflowGraphVersion,
237
+ filters: {workflow_id: workflow_id, before: before, limit: limit},
238
+ fetch_next: fetch_next
239
+ )
240
+ end
241
+
242
+ # Diff Workflow Versions
243
+ # @param workflow_id [String] Workflow whose versions to diff
244
+ # @param from_workflow_version_id [String] Base workflow version ID
245
+ # @param to_workflow_version_id [String] Target workflow version ID
246
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
247
+ # @return [Retab::WorkflowGraphVersionDiff]
248
+ def list_diff(
249
+ workflow_id:,
250
+ from_workflow_version_id:,
251
+ to_workflow_version_id:,
252
+ request_options: {}
253
+ )
254
+ params = {
255
+ "workflow_id" => workflow_id,
256
+ "from_workflow_version_id" => from_workflow_version_id,
257
+ "to_workflow_version_id" => to_workflow_version_id
258
+ }
259
+ response = @client.request(
260
+ method: :get,
261
+ path: "/v1/workflows/versions/diff",
262
+ auth: true,
263
+ params: params,
264
+ request_options: request_options
265
+ )
266
+ result = Retab::WorkflowGraphVersionDiff.new(response.body)
267
+ result.last_response = Retab::Types::ApiResponse.new(
268
+ http_status: response.code.to_i,
269
+ http_headers: response.each_header.to_h,
270
+ request_id: response["x-request-id"]
271
+ )
272
+ result
273
+ end
274
+
275
+ # Get Workflow Version
276
+ # @param workflow_version_id [String]
277
+ # @param workflow_id [String] Workflow that owns the version. Workflow version ids are content-addressed by executable spec, so workflow_id disambiguates identical specs reused across workflows.
278
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
279
+ # @return [Retab::WorkflowGraphVersion]
280
+ def get_version(
281
+ workflow_version_id:,
282
+ workflow_id:,
283
+ request_options: {}
284
+ )
285
+ params = {
286
+ "workflow_id" => workflow_id
287
+ }
288
+ response = @client.request(
289
+ method: :get,
290
+ path: "/v1/workflows/versions/#{Retab::Util.encode_path(workflow_version_id)}",
291
+ auth: true,
292
+ params: params,
293
+ request_options: request_options
294
+ )
295
+ result = Retab::WorkflowGraphVersion.new(response.body)
296
+ result.last_response = Retab::Types::ApiResponse.new(
297
+ http_status: response.code.to_i,
298
+ http_headers: response.each_header.to_h,
299
+ request_id: response["x-request-id"]
300
+ )
301
+ result
302
+ end
303
+
304
+ # Restore Workflow Version
305
+ # @param workflow_version_id [String]
306
+ # @param workflow_id [String] Workflow to restore into a new draft
307
+ # @param request_options [Hash] (see Retab::Types::RequestOptions)
308
+ # @return [Retab::Workflow]
309
+ def create_version_restore(
310
+ workflow_version_id:,
311
+ workflow_id:,
312
+ request_options: {}
313
+ )
314
+ params = {
315
+ "workflow_id" => workflow_id
316
+ }
317
+ response = @client.request(
318
+ method: :post,
319
+ path: "/v1/workflows/versions/#{Retab::Util.encode_path(workflow_version_id)}/restore",
320
+ auth: true,
321
+ params: params,
322
+ request_options: request_options
323
+ )
324
+ result = Retab::Workflow.new(response.body)
325
+ result.last_response = Retab::Types::ApiResponse.new(
326
+ http_status: response.code.to_i,
327
+ http_headers: response.each_header.to_h,
328
+ request_id: response["x-request-id"]
329
+ )
330
+ result
331
+ end
332
+
127
333
  # Get Workflow
128
334
  # @param workflow_id [String]
129
335
  # @param request_options [Hash] (see Retab::Types::RequestOptions)
data/lib/retab.rb CHANGED
@@ -21,8 +21,10 @@ loader.collapse("#{__dir__}/retab/files")
21
21
  loader.collapse("#{__dir__}/retab/parses")
22
22
  loader.collapse("#{__dir__}/retab/partitions")
23
23
  loader.collapse("#{__dir__}/retab/schemas")
24
+ loader.collapse("#{__dir__}/retab/secrets")
24
25
  loader.collapse("#{__dir__}/retab/shared")
25
26
  loader.collapse("#{__dir__}/retab/splits")
27
+ loader.collapse("#{__dir__}/retab/tables")
26
28
  loader.collapse("#{__dir__}/retab/workflow_artifacts")
27
29
  loader.collapse("#{__dir__}/retab/workflow_block_executions")
28
30
  loader.collapse("#{__dir__}/retab/workflow_blocks")
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module Retab
8
+ class ArtifactDrift
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(T.nilable(String)) }
13
+ def status; end
14
+
15
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
16
+ def status=(value); end
17
+
18
+ sig { returns(T.nilable(T::Array[String])) }
19
+ def affected_targets; end
20
+
21
+ sig { params(value: T.nilable(T::Array[String])).returns(T.nilable(T::Array[String])) }
22
+ def affected_targets=(value); end
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ def detail; end
26
+
27
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
28
+ def detail=(value); end
29
+
30
+ sig { returns(T::Hash[Symbol, T.untyped]) }
31
+ def to_h; end
32
+
33
+ sig { params(args: T.untyped).returns(String) }
34
+ def to_json(*args); end
35
+ end
36
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module Retab
8
+ class ArtifactFreshness
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(T.nilable(String)) }
13
+ def status; end
14
+
15
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
16
+ def status=(value); end
17
+
18
+ sig { returns(T.nilable(T::Array[String])) }
19
+ def reasons; end
20
+
21
+ sig { params(value: T.nilable(T::Array[String])).returns(T.nilable(T::Array[String])) }
22
+ def reasons=(value); end
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ def validity_fingerprint; end
26
+
27
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
28
+ def validity_fingerprint=(value); end
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ def input_fingerprint; end
32
+
33
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
34
+ def input_fingerprint=(value); end
35
+
36
+ sig { returns(T.nilable(String)) }
37
+ def baseline_run_id; end
38
+
39
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
40
+ def baseline_run_id=(value); end
41
+
42
+ sig { returns(T::Hash[Symbol, T.untyped]) }
43
+ def to_h; end
44
+
45
+ sig { params(args: T.untyped).returns(String) }
46
+ def to_json(*args); end
47
+ end
48
+ end
data/rbi/retab/client.rbi CHANGED
@@ -27,9 +27,15 @@ module Retab
27
27
  sig { returns(Retab::Schemas) }
28
28
  def schemas; end
29
29
 
30
+ sig { returns(Retab::Secrets) }
31
+ def secrets; end
32
+
30
33
  sig { returns(Retab::Splits) }
31
34
  def splits; end
32
35
 
36
+ sig { returns(Retab::Tables) }
37
+ def tables; end
38
+
33
39
  sig { returns(Retab::Workflows) }
34
40
  def workflows; end
35
41
 
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module Retab
8
+ class CreateFileBlueprintRequest
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def file_id; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def file_id=(value); end
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ def mode; end
20
+
21
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
22
+ def mode=(value); end
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ def intent; end
26
+
27
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
28
+ def intent=(value); end
29
+
30
+ sig { returns(T.nilable(T::Boolean)) }
31
+ def background; end
32
+
33
+ sig { params(value: T.nilable(T::Boolean)).returns(T.nilable(T::Boolean)) }
34
+ def background=(value); end
35
+
36
+ sig { returns(T::Hash[Symbol, T.untyped]) }
37
+ def to_h; end
38
+
39
+ sig { params(args: T.untyped).returns(String) }
40
+ def to_json(*args); end
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module Retab
8
+ class CreateSecretRequest
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def name; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def name=(value); end
17
+
18
+ sig { returns(String) }
19
+ def value; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def value=(value); end
23
+
24
+ sig { returns(T::Hash[Symbol, T.untyped]) }
25
+ def to_h; end
26
+
27
+ sig { params(args: T.untyped).returns(String) }
28
+ def to_json(*args); end
29
+ end
30
+ end
@@ -33,10 +33,10 @@ module Retab
33
33
  sig { params(value: T.nilable(T::Hash[String, String])).returns(T.nilable(T::Hash[String, String])) }
34
34
  def upload_headers=(value); end
35
35
 
36
- sig { returns(Retab::MimeData) }
36
+ sig { returns(T.nilable(Retab::MimeData)) }
37
37
  def mime_data; end
38
38
 
39
- sig { params(value: Retab::MimeData).returns(Retab::MimeData) }
39
+ sig { params(value: T.nilable(Retab::MimeData)).returns(T.nilable(Retab::MimeData)) }
40
40
  def mime_data=(value); end
41
41
 
42
42
  sig { returns(String) }
@@ -21,6 +21,12 @@ module Retab
21
21
  sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
22
22
  def description=(value); end
23
23
 
24
+ sig { returns(String) }
25
+ def project_id; end
26
+
27
+ sig { params(value: String).returns(String) }
28
+ def project_id=(value); end
29
+
24
30
  sig { returns(T::Hash[Symbol, T.untyped]) }
25
31
  def to_h; end
26
32
 
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module Retab
8
+ class CreateWorkflowTableUploadRequest
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def name; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def name=(value); end
17
+
18
+ sig { returns(String) }
19
+ def file; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def file=(value); end
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ def column_schema_overrides; end
26
+
27
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
28
+ def column_schema_overrides=(value); end
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ def project_id; end
32
+
33
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
34
+ def project_id=(value); end
35
+
36
+ sig { returns(T::Hash[Symbol, T.untyped]) }
37
+ def to_h; end
38
+
39
+ sig { params(args: T.untyped).returns(String) }
40
+ def to_json(*args); end
41
+ end
42
+ end