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.
- checksums.yaml +4 -4
- data/lib/retab/base_client.rb +9 -2
- data/lib/retab/client.rb +8 -0
- data/lib/retab/experiment_runs/experiment_run.rb +9 -0
- data/lib/retab/files/create_file_blueprint_request.rb +31 -0
- data/lib/retab/files/file_blueprint.rb +52 -0
- data/lib/retab/files.rb +88 -0
- data/lib/retab/multipart.rb +73 -0
- data/lib/retab/schemas/generate_schema_request.rb +3 -3
- data/lib/retab/schemas/{partial_schema.rb → schema_generation.rb} +12 -3
- data/lib/retab/schemas.rb +5 -5
- data/lib/retab/secrets/create_secret_request.rb +25 -0
- data/lib/retab/secrets/secret.rb +34 -0
- data/lib/retab/secrets/secret_list_response.rb +20 -0
- data/lib/retab/secrets/secret_response.rb +20 -0
- data/lib/retab/secrets/secret_value.rb +28 -0
- data/lib/retab/secrets/secret_value_response.rb +20 -0
- data/lib/retab/secrets/set_secret_request.rb +20 -0
- data/lib/retab/secrets.rb +154 -0
- data/lib/retab/tables/create_workflow_table_upload_request.rb +31 -0
- data/lib/retab/tables/query_workflow_table_request.rb +72 -0
- data/lib/retab/tables/replace_workflow_table_upload_request.rb +25 -0
- data/lib/retab/tables/update_workflow_table_request.rb +25 -0
- data/lib/retab/tables/workflow_table.rb +58 -0
- data/lib/retab/tables/workflow_table_aggregation_request.rb +28 -0
- data/lib/retab/tables/workflow_table_column.rb +34 -0
- data/lib/retab/tables/workflow_table_distinct_request.rb +20 -0
- data/lib/retab/tables/workflow_table_explain.rb +54 -0
- data/lib/retab/tables/workflow_table_filter_rule.rb +28 -0
- data/lib/retab/tables/workflow_table_list_response.rb +20 -0
- data/lib/retab/tables/workflow_table_profile_column.rb +49 -0
- data/lib/retab/tables/workflow_table_profile_response.rb +28 -0
- data/lib/retab/tables/workflow_table_response.rb +20 -0
- data/lib/retab/tables/workflow_table_row.rb +28 -0
- data/lib/retab/tables/workflow_table_rows_response.rb +52 -0
- data/lib/retab/tables/workflow_table_sample_request.rb +20 -0
- data/lib/retab/tables/workflow_table_schema_response.rb +25 -0
- data/lib/retab/tables/workflow_table_search_request.rb +25 -0
- data/lib/retab/tables/workflow_table_sort_rule.rb +25 -0
- data/lib/retab/tables/workflow_table_tail_request.rb +7 -0
- data/lib/retab/tables/workflow_table_validation_column_rule.rb +28 -0
- data/lib/retab/tables/workflow_table_validation_diagnostic.rb +31 -0
- data/lib/retab/tables/workflow_table_validation_request.rb +28 -0
- data/lib/retab/tables/workflow_table_validation_response.rb +30 -0
- data/lib/retab/tables.rb +361 -0
- data/lib/retab/types/artifact_drift_status.rb +15 -0
- data/lib/retab/types/artifact_freshness_reasons.rb +16 -0
- data/lib/retab/types/artifact_freshness_status.rb +14 -0
- data/lib/retab/types/create_file_blueprint_request_mode.rb +13 -0
- data/lib/retab/types/declarative_plan_resource_change_type.rb +0 -2
- data/lib/retab/types/file_blueprint_mode.rb +9 -0
- data/lib/retab/types/file_blueprint_status.rb +9 -0
- data/lib/retab/types/schema_generation_status.rb +9 -0
- data/lib/retab/types/validate_workflow_block_config_request_config_mode.rb +9 -0
- data/lib/retab/types/workflow_authz_status.rb +16 -0
- data/lib/retab/types/workflow_block_type.rb +0 -2
- data/lib/retab/types/workflow_block_version_type.rb +9 -0
- data/lib/retab/types/workflow_capabilities.rb +26 -0
- data/lib/retab/types/workflow_config_block_type.rb +9 -0
- data/lib/retab/types/workflow_table_aggregation_function.rb +17 -0
- data/lib/retab/types/workflow_table_filter_operator.rb +46 -0
- data/lib/retab/types/workflow_table_sort_direction.rb +9 -0
- data/lib/retab/types/workflow_table_validation_column_rule_type.rb +18 -0
- data/lib/retab/types/workflow_table_validation_severity.rb +13 -0
- data/lib/retab/workflow_blocks/validate_workflow_block_config_request.rb +25 -0
- data/lib/retab/workflow_blocks/validate_workflow_block_config_response.rb +34 -0
- data/lib/retab/workflow_blocks/workflow_block.rb +6 -0
- data/lib/retab/workflow_blocks/workflow_block_version.rb +64 -0
- data/lib/retab/workflow_blocks/workflow_block_version_diff.rb +31 -0
- data/lib/retab/workflow_blocks/workflow_version_field_diff.rb +28 -0
- data/lib/retab/workflow_blocks.rb +172 -0
- data/lib/retab/workflow_edges/workflow_edge_version.rb +49 -0
- data/lib/retab/workflow_edges/workflow_edge_version_diff.rb +31 -0
- data/lib/retab/workflow_edges.rb +134 -0
- data/lib/retab/workflow_experiments/artifact_drift.rb +28 -0
- data/lib/retab/workflow_experiments/artifact_freshness.rb +34 -0
- data/lib/retab/workflow_experiments/workflow_experiment.rb +8 -2
- data/lib/retab/workflow_review_versions.rb +3 -3
- data/lib/retab/workflow_reviews.rb +4 -4
- data/lib/retab/workflow_runs.rb +1 -1
- data/lib/retab/workflow_spec.rb +6 -57
- data/lib/retab/workflow_test_runs/workflow_test_run.rb +5 -2
- data/lib/retab/workflow_tests/latest_block_test_run_summary.rb +6 -0
- data/lib/retab/workflow_tests/workflow_test.rb +6 -0
- data/lib/retab/workflows/create_workflow_request.rb +5 -2
- data/lib/retab/{workflow_spec → workflows}/declarative_workflow_request.rb +7 -2
- data/lib/retab/workflows/workflow.rb +11 -2
- data/lib/retab/workflows/workflow_block_position.rb +25 -0
- data/lib/retab/workflows/workflow_config_block.rb +46 -0
- data/lib/retab/workflows/workflow_config_edge.rb +37 -0
- data/lib/retab/workflows/workflow_graph_version.rb +40 -0
- data/lib/retab/workflows/workflow_graph_version_diff.rb +43 -0
- data/lib/retab/workflows.rb +209 -3
- data/lib/retab.rb +2 -0
- data/rbi/retab/artifact_drift.rbi +36 -0
- data/rbi/retab/artifact_freshness.rbi +48 -0
- data/rbi/retab/client.rbi +6 -0
- data/rbi/retab/create_file_blueprint_request.rbi +42 -0
- data/rbi/retab/create_secret_request.rbi +30 -0
- data/rbi/retab/create_upload_response.rbi +2 -2
- data/rbi/retab/create_workflow_request.rbi +6 -0
- data/rbi/retab/create_workflow_table_upload_request.rbi +42 -0
- data/rbi/retab/declarative_workflow_request.rbi +6 -0
- data/rbi/retab/experiment_run.rbi +18 -0
- data/rbi/retab/file_blueprint.rbi +84 -0
- data/rbi/retab/files.rbi +28 -0
- data/rbi/retab/generate_schema_request.rbi +2 -2
- data/rbi/retab/latest_block_test_run_summary.rbi +12 -0
- data/rbi/retab/query_workflow_table_request.rbi +120 -0
- data/rbi/retab/replace_workflow_table_upload_request.rbi +30 -0
- data/rbi/retab/{partial_schema.rbi → schema_generation.rbi} +19 -1
- data/rbi/retab/schemas.rbi +3 -3
- data/rbi/retab/secret.rbi +48 -0
- data/rbi/retab/secret_list_response.rbi +24 -0
- data/rbi/retab/secret_response.rbi +24 -0
- data/rbi/retab/secret_value.rbi +36 -0
- data/rbi/retab/secret_value_response.rbi +24 -0
- data/rbi/retab/secrets.rbi +62 -0
- data/rbi/retab/set_secret_request.rbi +24 -0
- data/rbi/retab/tables.rbi +129 -0
- data/rbi/retab/update_workflow_table_request.rbi +30 -0
- data/rbi/retab/validate_workflow_block_config_request.rbi +30 -0
- data/rbi/retab/validate_workflow_block_config_response.rbi +48 -0
- data/rbi/retab/workflow.rbi +18 -0
- data/rbi/retab/workflow_block.rbi +12 -0
- data/rbi/retab/workflow_block_position.rbi +30 -0
- data/rbi/retab/workflow_block_version.rbi +108 -0
- data/rbi/retab/workflow_block_version_diff.rbi +42 -0
- data/rbi/retab/workflow_blocks.rbi +49 -0
- data/rbi/retab/workflow_config_block.rbi +72 -0
- data/rbi/retab/workflow_config_edge.rbi +54 -0
- data/rbi/retab/workflow_edge_version.rbi +78 -0
- data/rbi/retab/workflow_edge_version_diff.rbi +42 -0
- data/rbi/retab/workflow_edges.rbi +38 -0
- data/rbi/retab/workflow_experiment.rbi +12 -0
- data/rbi/retab/workflow_graph_version.rbi +60 -0
- data/rbi/retab/workflow_graph_version_diff.rbi +66 -0
- data/rbi/retab/workflow_spec.rbi +2 -17
- data/rbi/retab/workflow_table.rbi +96 -0
- data/rbi/retab/workflow_table_aggregation_request.rbi +36 -0
- data/rbi/retab/workflow_table_column.rbi +48 -0
- data/rbi/retab/workflow_table_distinct_request.rbi +24 -0
- data/rbi/retab/workflow_table_explain.rbi +84 -0
- data/rbi/retab/workflow_table_filter_rule.rbi +36 -0
- data/rbi/retab/workflow_table_list_response.rbi +24 -0
- data/rbi/retab/workflow_table_profile_column.rbi +78 -0
- data/rbi/retab/workflow_table_profile_response.rbi +36 -0
- data/rbi/retab/workflow_table_response.rbi +24 -0
- data/rbi/retab/workflow_table_row.rbi +36 -0
- data/rbi/retab/workflow_table_rows_response.rbi +84 -0
- data/rbi/retab/workflow_table_sample_request.rbi +24 -0
- data/rbi/retab/workflow_table_schema_response.rbi +30 -0
- data/rbi/retab/workflow_table_search_request.rbi +30 -0
- data/rbi/retab/workflow_table_sort_rule.rbi +30 -0
- data/rbi/retab/workflow_table_tail_request.rbi +24 -0
- data/rbi/retab/workflow_table_validation_column_rule.rbi +36 -0
- data/rbi/retab/workflow_table_validation_diagnostic.rbi +42 -0
- data/rbi/retab/workflow_table_validation_request.rbi +36 -0
- data/rbi/retab/workflow_table_validation_response.rbi +36 -0
- data/rbi/retab/workflow_test.rbi +12 -0
- data/rbi/retab/workflow_test_run.rbi +6 -0
- data/rbi/retab/workflow_version_field_diff.rbi +36 -0
- data/rbi/retab/workflows.rbi +61 -2
- metadata +128 -10
- /data/lib/retab/{workflow_spec → workflows}/declarative_apply_response.rb +0 -0
- /data/lib/retab/{workflow_spec → workflows}/declarative_plan_change.rb +0 -0
- /data/lib/retab/{workflow_spec → workflows}/declarative_plan_field_change.rb +0 -0
- /data/lib/retab/{workflow_spec → workflows}/declarative_plan_resource_change.rb +0 -0
- /data/lib/retab/{workflow_spec → workflows}/declarative_plan_response.rb +0 -0
- /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
|
data/lib/retab/workflows.rb
CHANGED
|
@@ -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
|