openlayer 0.3.0 → 0.4.0
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/.ignore +2 -0
- data/CHANGELOG.md +23 -0
- data/README.md +280 -39
- data/SECURITY.md +27 -0
- data/lib/openlayer/client.rb +64 -59
- data/lib/openlayer/errors.rb +228 -0
- data/lib/openlayer/file_part.rb +58 -0
- data/lib/openlayer/internal/transport/base_client.rb +567 -0
- data/lib/openlayer/internal/transport/pooled_net_requester.rb +198 -0
- data/lib/openlayer/internal/type/array_of.rb +168 -0
- data/lib/openlayer/internal/type/base_model.rb +531 -0
- data/lib/openlayer/internal/type/base_page.rb +55 -0
- data/lib/openlayer/internal/type/boolean.rb +77 -0
- data/lib/openlayer/internal/type/converter.rb +327 -0
- data/lib/openlayer/internal/type/enum.rb +131 -0
- data/lib/openlayer/internal/type/file_input.rb +111 -0
- data/lib/openlayer/internal/type/hash_of.rb +188 -0
- data/lib/openlayer/internal/type/request_parameters.rb +42 -0
- data/lib/openlayer/internal/type/union.rb +237 -0
- data/lib/openlayer/internal/type/unknown.rb +81 -0
- data/lib/openlayer/internal/util.rb +915 -0
- data/lib/openlayer/internal.rb +20 -0
- data/lib/openlayer/models/commit_retrieve_params.rb +14 -0
- data/lib/openlayer/models/commit_retrieve_response.rb +275 -0
- data/lib/openlayer/models/commits/test_result_list_params.rb +91 -0
- data/lib/openlayer/models/commits/test_result_list_response.rb +566 -0
- data/lib/openlayer/models/inference_pipeline_delete_params.rb +14 -0
- data/lib/openlayer/models/inference_pipeline_retrieve_params.rb +33 -0
- data/lib/openlayer/models/inference_pipeline_retrieve_response.rb +605 -0
- data/lib/openlayer/models/inference_pipeline_update_params.rb +42 -0
- data/lib/openlayer/models/inference_pipeline_update_response.rb +605 -0
- data/lib/openlayer/models/inference_pipelines/data_stream_params.rb +463 -0
- data/lib/openlayer/models/inference_pipelines/data_stream_response.rb +28 -0
- data/lib/openlayer/models/inference_pipelines/row_update_params.rb +90 -0
- data/lib/openlayer/models/inference_pipelines/row_update_response.rb +28 -0
- data/lib/openlayer/models/inference_pipelines/test_result_list_params.rb +83 -0
- data/lib/openlayer/models/inference_pipelines/test_result_list_response.rb +568 -0
- data/lib/openlayer/models/project_create_params.rb +51 -0
- data/lib/openlayer/models/project_create_response.rb +262 -0
- data/lib/openlayer/models/project_list_params.rb +59 -0
- data/lib/openlayer/models/project_list_response.rb +274 -0
- data/lib/openlayer/models/projects/commit_create_params.rb +61 -0
- data/lib/openlayer/models/projects/commit_create_response.rb +277 -0
- data/lib/openlayer/models/projects/commit_list_params.rb +32 -0
- data/lib/openlayer/models/projects/commit_list_response.rb +288 -0
- data/lib/openlayer/models/projects/inference_pipeline_create_params.rb +229 -0
- data/lib/openlayer/models/projects/inference_pipeline_create_response.rb +612 -0
- data/lib/openlayer/models/projects/inference_pipeline_list_params.rb +40 -0
- data/lib/openlayer/models/projects/inference_pipeline_list_response.rb +623 -0
- data/lib/openlayer/models/projects/test_create_params.rb +367 -0
- data/lib/openlayer/models/projects/test_create_response.rb +438 -0
- data/lib/openlayer/models/projects/test_list_params.rb +91 -0
- data/lib/openlayer/models/projects/test_list_response.rb +452 -0
- data/lib/openlayer/models/projects/test_update_params.rb +262 -0
- data/lib/openlayer/models/projects/test_update_response.rb +24 -0
- data/lib/openlayer/models/storage/presigned_url_create_params.rb +24 -0
- data/lib/openlayer/models/storage/presigned_url_create_response.rb +35 -0
- data/lib/openlayer/models.rb +61 -0
- data/lib/openlayer/request_options.rb +77 -0
- data/lib/openlayer/resources/commits/test_results.rb +51 -0
- data/lib/openlayer/resources/commits.rb +38 -0
- data/lib/openlayer/resources/inference_pipelines/data.rb +46 -0
- data/lib/openlayer/resources/inference_pipelines/rows.rb +46 -0
- data/lib/openlayer/resources/inference_pipelines/test_results.rb +49 -0
- data/lib/openlayer/resources/inference_pipelines.rb +101 -0
- data/lib/openlayer/resources/projects/commits.rb +72 -0
- data/lib/openlayer/resources/projects/inference_pipelines.rb +74 -0
- data/lib/openlayer/resources/projects/tests.rb +135 -0
- data/lib/openlayer/resources/projects.rb +80 -0
- data/lib/openlayer/resources/storage/presigned_url.rb +38 -0
- data/lib/openlayer/resources/storage.rb +18 -0
- data/lib/openlayer/version.rb +1 -1
- data/lib/openlayer.rb +96 -12
- data/manifest.yaml +15 -0
- data/rbi/openlayer/client.rbi +58 -0
- data/rbi/openlayer/errors.rbi +205 -0
- data/rbi/openlayer/file_part.rbi +37 -0
- data/rbi/openlayer/internal/transport/base_client.rbi +293 -0
- data/rbi/openlayer/internal/transport/pooled_net_requester.rbi +79 -0
- data/rbi/openlayer/internal/type/array_of.rbi +104 -0
- data/rbi/openlayer/internal/type/base_model.rbi +304 -0
- data/rbi/openlayer/internal/type/base_page.rbi +42 -0
- data/rbi/openlayer/internal/type/boolean.rbi +58 -0
- data/rbi/openlayer/internal/type/converter.rbi +216 -0
- data/rbi/openlayer/internal/type/enum.rbi +82 -0
- data/rbi/openlayer/internal/type/file_input.rbi +59 -0
- data/rbi/openlayer/internal/type/hash_of.rbi +104 -0
- data/rbi/openlayer/internal/type/request_parameters.rbi +29 -0
- data/rbi/openlayer/internal/type/union.rbi +128 -0
- data/rbi/openlayer/internal/type/unknown.rbi +58 -0
- data/rbi/openlayer/internal/util.rbi +487 -0
- data/rbi/openlayer/internal.rbi +18 -0
- data/rbi/openlayer/models/commit_retrieve_params.rbi +27 -0
- data/rbi/openlayer/models/commit_retrieve_response.rbi +393 -0
- data/rbi/openlayer/models/commits/test_result_list_params.rbi +214 -0
- data/rbi/openlayer/models/commits/test_result_list_response.rbi +1256 -0
- data/rbi/openlayer/models/inference_pipeline_delete_params.rbi +30 -0
- data/rbi/openlayer/models/inference_pipeline_retrieve_params.rbi +101 -0
- data/rbi/openlayer/models/inference_pipeline_retrieve_response.rbi +1022 -0
- data/rbi/openlayer/models/inference_pipeline_update_params.rbi +67 -0
- data/rbi/openlayer/models/inference_pipeline_update_response.rbi +1018 -0
- data/rbi/openlayer/models/inference_pipelines/data_stream_params.rbi +750 -0
- data/rbi/openlayer/models/inference_pipelines/data_stream_response.rbi +73 -0
- data/rbi/openlayer/models/inference_pipelines/row_update_params.rbi +153 -0
- data/rbi/openlayer/models/inference_pipelines/row_update_response.rbi +73 -0
- data/rbi/openlayer/models/inference_pipelines/test_result_list_params.rbi +216 -0
- data/rbi/openlayer/models/inference_pipelines/test_result_list_response.rbi +1258 -0
- data/rbi/openlayer/models/project_create_params.rbi +99 -0
- data/rbi/openlayer/models/project_create_response.rbi +401 -0
- data/rbi/openlayer/models/project_list_params.rbi +121 -0
- data/rbi/openlayer/models/project_list_response.rbi +442 -0
- data/rbi/openlayer/models/projects/commit_create_params.rbi +125 -0
- data/rbi/openlayer/models/projects/commit_create_response.rbi +409 -0
- data/rbi/openlayer/models/projects/commit_list_params.rbi +62 -0
- data/rbi/openlayer/models/projects/commit_list_response.rbi +454 -0
- data/rbi/openlayer/models/projects/inference_pipeline_create_params.rbi +560 -0
- data/rbi/openlayer/models/projects/inference_pipeline_create_response.rbi +1027 -0
- data/rbi/openlayer/models/projects/inference_pipeline_list_params.rbi +73 -0
- data/rbi/openlayer/models/projects/inference_pipeline_list_response.rbi +1070 -0
- data/rbi/openlayer/models/projects/test_create_params.rbi +940 -0
- data/rbi/openlayer/models/projects/test_create_response.rbi +1026 -0
- data/rbi/openlayer/models/projects/test_list_params.rbi +165 -0
- data/rbi/openlayer/models/projects/test_list_response.rbi +1067 -0
- data/rbi/openlayer/models/projects/test_update_params.rbi +699 -0
- data/rbi/openlayer/models/projects/test_update_response.rbi +43 -0
- data/rbi/openlayer/models/storage/presigned_url_create_params.rbi +45 -0
- data/rbi/openlayer/models/storage/presigned_url_create_response.rbi +55 -0
- data/rbi/openlayer/models.rbi +26 -0
- data/rbi/openlayer/request_options.rbi +59 -0
- data/rbi/openlayer/resources/commits/test_results.rbi +45 -0
- data/rbi/openlayer/resources/commits.rbi +29 -0
- data/rbi/openlayer/resources/inference_pipelines/data.rbi +41 -0
- data/rbi/openlayer/resources/inference_pipelines/rows.rbi +40 -0
- data/rbi/openlayer/resources/inference_pipelines/test_results.rbi +46 -0
- data/rbi/openlayer/resources/inference_pipelines.rbi +79 -0
- data/rbi/openlayer/resources/projects/commits.rbi +60 -0
- data/rbi/openlayer/resources/projects/inference_pipelines.rbi +69 -0
- data/rbi/openlayer/resources/projects/tests.rbi +123 -0
- data/rbi/openlayer/resources/projects.rbi +64 -0
- data/rbi/openlayer/resources/storage/presigned_url.rbi +28 -0
- data/rbi/openlayer/resources/storage.rbi +15 -0
- data/rbi/openlayer/version.rbi +5 -0
- data/sig/openlayer/client.rbs +32 -0
- data/sig/openlayer/errors.rbs +117 -0
- data/sig/openlayer/file_part.rbs +21 -0
- data/sig/openlayer/internal/transport/base_client.rbs +131 -0
- data/sig/openlayer/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/openlayer/internal/type/array_of.rbs +48 -0
- data/sig/openlayer/internal/type/base_model.rbs +102 -0
- data/sig/openlayer/internal/type/base_page.rbs +24 -0
- data/sig/openlayer/internal/type/boolean.rbs +26 -0
- data/sig/openlayer/internal/type/converter.rbs +79 -0
- data/sig/openlayer/internal/type/enum.rbs +32 -0
- data/sig/openlayer/internal/type/file_input.rbs +25 -0
- data/sig/openlayer/internal/type/hash_of.rbs +48 -0
- data/sig/openlayer/internal/type/request_parameters.rbs +19 -0
- data/sig/openlayer/internal/type/union.rbs +52 -0
- data/sig/openlayer/internal/type/unknown.rbs +26 -0
- data/sig/openlayer/internal/util.rbs +185 -0
- data/sig/openlayer/internal.rbs +9 -0
- data/sig/openlayer/models/commit_retrieve_params.rbs +15 -0
- data/sig/openlayer/models/commit_retrieve_response.rbs +209 -0
- data/sig/openlayer/models/commits/test_result_list_params.rbs +91 -0
- data/sig/openlayer/models/commits/test_result_list_response.rbs +529 -0
- data/sig/openlayer/models/inference_pipeline_delete_params.rbs +15 -0
- data/sig/openlayer/models/inference_pipeline_retrieve_params.rbs +41 -0
- data/sig/openlayer/models/inference_pipeline_retrieve_response.rbs +493 -0
- data/sig/openlayer/models/inference_pipeline_update_params.rbs +34 -0
- data/sig/openlayer/models/inference_pipeline_update_response.rbs +493 -0
- data/sig/openlayer/models/inference_pipelines/data_stream_params.rbs +386 -0
- data/sig/openlayer/models/inference_pipelines/data_stream_response.rbs +32 -0
- data/sig/openlayer/models/inference_pipelines/row_update_params.rbs +75 -0
- data/sig/openlayer/models/inference_pipelines/row_update_response.rbs +32 -0
- data/sig/openlayer/models/inference_pipelines/test_result_list_params.rbs +84 -0
- data/sig/openlayer/models/inference_pipelines/test_result_list_response.rbs +529 -0
- data/sig/openlayer/models/project_create_params.rbs +53 -0
- data/sig/openlayer/models/project_create_response.rbs +210 -0
- data/sig/openlayer/models/project_list_params.rbs +68 -0
- data/sig/openlayer/models/project_list_response.rbs +225 -0
- data/sig/openlayer/models/projects/commit_create_params.rbs +82 -0
- data/sig/openlayer/models/projects/commit_create_response.rbs +211 -0
- data/sig/openlayer/models/projects/commit_list_params.rbs +34 -0
- data/sig/openlayer/models/projects/commit_list_response.rbs +228 -0
- data/sig/openlayer/models/projects/inference_pipeline_create_params.rbs +308 -0
- data/sig/openlayer/models/projects/inference_pipeline_create_response.rbs +495 -0
- data/sig/openlayer/models/projects/inference_pipeline_list_params.rbs +40 -0
- data/sig/openlayer/models/projects/inference_pipeline_list_response.rbs +512 -0
- data/sig/openlayer/models/projects/test_create_params.rbs +388 -0
- data/sig/openlayer/models/projects/test_create_response.rbs +427 -0
- data/sig/openlayer/models/projects/test_list_params.rbs +85 -0
- data/sig/openlayer/models/projects/test_list_response.rbs +442 -0
- data/sig/openlayer/models/projects/test_update_params.rbs +275 -0
- data/sig/openlayer/models/projects/test_update_response.rbs +25 -0
- data/sig/openlayer/models/storage/presigned_url_create_params.rbs +25 -0
- data/sig/openlayer/models/storage/presigned_url_create_response.rbs +22 -0
- data/sig/openlayer/models.rbs +21 -0
- data/sig/openlayer/request_options.rbs +34 -0
- data/sig/openlayer/resources/commits/test_results.rbs +19 -0
- data/sig/openlayer/resources/commits.rbs +14 -0
- data/sig/openlayer/resources/inference_pipelines/data.rbs +16 -0
- data/sig/openlayer/resources/inference_pipelines/rows.rbs +17 -0
- data/sig/openlayer/resources/inference_pipelines/test_results.rbs +18 -0
- data/sig/openlayer/resources/inference_pipelines.rbs +32 -0
- data/sig/openlayer/resources/projects/commits.rbs +25 -0
- data/sig/openlayer/resources/projects/inference_pipelines.rbs +26 -0
- data/sig/openlayer/resources/projects/tests.rbs +45 -0
- data/sig/openlayer/resources/projects.rbs +28 -0
- data/sig/openlayer/resources/storage/presigned_url.rbs +14 -0
- data/sig/openlayer/resources/storage.rbs +9 -0
- data/sig/openlayer/version.rbs +3 -0
- metadata +223 -91
- data/.env +0 -0
- data/.rspec +0 -3
- data/.rubocop.yml +0 -13
- data/LICENSE +0 -21
- data/Rakefile +0 -12
- data/examples/staging/.DS_Store +0 -0
- data/examples/staging/commit.yaml +0 -2
- data/examples/staging/model/model_config.yaml +0 -12
- data/examples/staging/validation/dataset_config.yaml +0 -12
- data/lib/openlayer/error.rb +0 -5
- data/lib/openlayer/inference_pipeline.rb +0 -36
- data/lib/openlayer/object.rb +0 -28
- data/lib/openlayer/objects/project.rb +0 -185
- data/lib/openlayer/objects/project_version.rb +0 -89
- data/lib/openlayer/services/s3_presigned_client.rb +0 -47
- data/lib/openlayer/services/tar_file_helper.rb +0 -55
- data/openlayer.gemspec +0 -45
- data/sig/openlayer.rbs +0 -4
@@ -0,0 +1,123 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Openlayer
|
4
|
+
module Resources
|
5
|
+
class Projects
|
6
|
+
class Tests
|
7
|
+
# Create a test.
|
8
|
+
sig do
|
9
|
+
params(
|
10
|
+
project_id: String,
|
11
|
+
description: T.nilable(T.anything),
|
12
|
+
name: String,
|
13
|
+
subtype: Openlayer::Projects::TestCreateParams::Subtype::OrSymbol,
|
14
|
+
thresholds:
|
15
|
+
T::Array[
|
16
|
+
Openlayer::Projects::TestCreateParams::Threshold::OrHash
|
17
|
+
],
|
18
|
+
type: Openlayer::Projects::TestCreateParams::Type::OrSymbol,
|
19
|
+
archived: T::Boolean,
|
20
|
+
delay_window: T.nilable(Float),
|
21
|
+
evaluation_window: T.nilable(Float),
|
22
|
+
uses_ml_model: T::Boolean,
|
23
|
+
uses_production_data: T::Boolean,
|
24
|
+
uses_reference_dataset: T::Boolean,
|
25
|
+
uses_training_dataset: T::Boolean,
|
26
|
+
uses_validation_dataset: T::Boolean,
|
27
|
+
request_options: Openlayer::RequestOptions::OrHash
|
28
|
+
).returns(Openlayer::Models::Projects::TestCreateResponse)
|
29
|
+
end
|
30
|
+
def create(
|
31
|
+
# The project id.
|
32
|
+
project_id,
|
33
|
+
# The test description.
|
34
|
+
description:,
|
35
|
+
# The test name.
|
36
|
+
name:,
|
37
|
+
# The test subtype.
|
38
|
+
subtype:,
|
39
|
+
thresholds:,
|
40
|
+
# The test type.
|
41
|
+
type:,
|
42
|
+
# Whether the test is archived.
|
43
|
+
archived: nil,
|
44
|
+
# The delay window in seconds. Only applies to tests that use production data.
|
45
|
+
delay_window: nil,
|
46
|
+
# The evaluation window in seconds. Only applies to tests that use production
|
47
|
+
# data.
|
48
|
+
evaluation_window: nil,
|
49
|
+
# Whether the test uses an ML model.
|
50
|
+
uses_ml_model: nil,
|
51
|
+
# Whether the test uses production data (monitoring mode only).
|
52
|
+
uses_production_data: nil,
|
53
|
+
# Whether the test uses a reference dataset (monitoring mode only).
|
54
|
+
uses_reference_dataset: nil,
|
55
|
+
# Whether the test uses a training dataset.
|
56
|
+
uses_training_dataset: nil,
|
57
|
+
# Whether the test uses a validation dataset.
|
58
|
+
uses_validation_dataset: nil,
|
59
|
+
request_options: {}
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Update tests.
|
64
|
+
sig do
|
65
|
+
params(
|
66
|
+
project_id: String,
|
67
|
+
payloads:
|
68
|
+
T::Array[Openlayer::Projects::TestUpdateParams::Payload::OrHash],
|
69
|
+
request_options: Openlayer::RequestOptions::OrHash
|
70
|
+
).returns(Openlayer::Models::Projects::TestUpdateResponse)
|
71
|
+
end
|
72
|
+
def update(
|
73
|
+
# The project id.
|
74
|
+
project_id,
|
75
|
+
payloads:,
|
76
|
+
request_options: {}
|
77
|
+
)
|
78
|
+
end
|
79
|
+
|
80
|
+
# List tests under a project.
|
81
|
+
sig do
|
82
|
+
params(
|
83
|
+
project_id: String,
|
84
|
+
include_archived: T::Boolean,
|
85
|
+
origin_version_id: T.nilable(String),
|
86
|
+
page: Integer,
|
87
|
+
per_page: Integer,
|
88
|
+
suggested: T::Boolean,
|
89
|
+
type: Openlayer::Projects::TestListParams::Type::OrSymbol,
|
90
|
+
uses_production_data: T.nilable(T::Boolean),
|
91
|
+
request_options: Openlayer::RequestOptions::OrHash
|
92
|
+
).returns(Openlayer::Models::Projects::TestListResponse)
|
93
|
+
end
|
94
|
+
def list(
|
95
|
+
# The project id.
|
96
|
+
project_id,
|
97
|
+
# Filter for archived tests.
|
98
|
+
include_archived: nil,
|
99
|
+
# Retrive tests created by a specific project version.
|
100
|
+
origin_version_id: nil,
|
101
|
+
# The page to return in a paginated query.
|
102
|
+
page: nil,
|
103
|
+
# Maximum number of items to return per page.
|
104
|
+
per_page: nil,
|
105
|
+
# Filter for suggested tests.
|
106
|
+
suggested: nil,
|
107
|
+
# Filter objects by test type. Available types are `integrity`, `consistency`,
|
108
|
+
# `performance`, `fairness`, and `robustness`.
|
109
|
+
type: nil,
|
110
|
+
# Retrive tests with usesProductionData (monitoring).
|
111
|
+
uses_production_data: nil,
|
112
|
+
request_options: {}
|
113
|
+
)
|
114
|
+
end
|
115
|
+
|
116
|
+
# @api private
|
117
|
+
sig { params(client: Openlayer::Client).returns(T.attached_class) }
|
118
|
+
def self.new(client:)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Openlayer
|
4
|
+
module Resources
|
5
|
+
class Projects
|
6
|
+
sig { returns(Openlayer::Resources::Projects::Commits) }
|
7
|
+
attr_reader :commits
|
8
|
+
|
9
|
+
sig { returns(Openlayer::Resources::Projects::InferencePipelines) }
|
10
|
+
attr_reader :inference_pipelines
|
11
|
+
|
12
|
+
sig { returns(Openlayer::Resources::Projects::Tests) }
|
13
|
+
attr_reader :tests
|
14
|
+
|
15
|
+
# Create a project in your workspace.
|
16
|
+
sig do
|
17
|
+
params(
|
18
|
+
name: String,
|
19
|
+
task_type: Openlayer::ProjectCreateParams::TaskType::OrSymbol,
|
20
|
+
description: T.nilable(String),
|
21
|
+
request_options: Openlayer::RequestOptions::OrHash
|
22
|
+
).returns(Openlayer::Models::ProjectCreateResponse)
|
23
|
+
end
|
24
|
+
def create(
|
25
|
+
# The project name.
|
26
|
+
name:,
|
27
|
+
# The task type of the project.
|
28
|
+
task_type:,
|
29
|
+
# The project description.
|
30
|
+
description: nil,
|
31
|
+
request_options: {}
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
# List your workspace's projects.
|
36
|
+
sig do
|
37
|
+
params(
|
38
|
+
name: String,
|
39
|
+
page: Integer,
|
40
|
+
per_page: Integer,
|
41
|
+
task_type: Openlayer::ProjectListParams::TaskType::OrSymbol,
|
42
|
+
request_options: Openlayer::RequestOptions::OrHash
|
43
|
+
).returns(Openlayer::Models::ProjectListResponse)
|
44
|
+
end
|
45
|
+
def list(
|
46
|
+
# Filter list of items by project name.
|
47
|
+
name: nil,
|
48
|
+
# The page to return in a paginated query.
|
49
|
+
page: nil,
|
50
|
+
# Maximum number of items to return per page.
|
51
|
+
per_page: nil,
|
52
|
+
# Filter list of items by task type.
|
53
|
+
task_type: nil,
|
54
|
+
request_options: {}
|
55
|
+
)
|
56
|
+
end
|
57
|
+
|
58
|
+
# @api private
|
59
|
+
sig { params(client: Openlayer::Client).returns(T.attached_class) }
|
60
|
+
def self.new(client:)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Openlayer
|
4
|
+
module Resources
|
5
|
+
class Storage
|
6
|
+
class PresignedURL
|
7
|
+
# Retrieve a presigned url to post storage artifacts.
|
8
|
+
sig do
|
9
|
+
params(
|
10
|
+
object_name: String,
|
11
|
+
request_options: Openlayer::RequestOptions::OrHash
|
12
|
+
).returns(Openlayer::Models::Storage::PresignedURLCreateResponse)
|
13
|
+
end
|
14
|
+
def create(
|
15
|
+
# The name of the object.
|
16
|
+
object_name:,
|
17
|
+
request_options: {}
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
# @api private
|
22
|
+
sig { params(client: Openlayer::Client).returns(T.attached_class) }
|
23
|
+
def self.new(client:)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Openlayer
|
4
|
+
module Resources
|
5
|
+
class Storage
|
6
|
+
sig { returns(Openlayer::Resources::Storage::PresignedURL) }
|
7
|
+
attr_reader :presigned_url
|
8
|
+
|
9
|
+
# @api private
|
10
|
+
sig { params(client: Openlayer::Client).returns(T.attached_class) }
|
11
|
+
def self.new(client:)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Openlayer
|
2
|
+
class Client < Openlayer::Internal::Transport::BaseClient
|
3
|
+
DEFAULT_MAX_RETRIES: 2
|
4
|
+
|
5
|
+
DEFAULT_TIMEOUT_IN_SECONDS: Float
|
6
|
+
|
7
|
+
DEFAULT_INITIAL_RETRY_DELAY: Float
|
8
|
+
|
9
|
+
DEFAULT_MAX_RETRY_DELAY: Float
|
10
|
+
|
11
|
+
attr_reader api_key: String?
|
12
|
+
|
13
|
+
attr_reader projects: Openlayer::Resources::Projects
|
14
|
+
|
15
|
+
attr_reader commits: Openlayer::Resources::Commits
|
16
|
+
|
17
|
+
attr_reader inference_pipelines: Openlayer::Resources::InferencePipelines
|
18
|
+
|
19
|
+
attr_reader storage: Openlayer::Resources::Storage
|
20
|
+
|
21
|
+
private def auth_headers: -> ::Hash[String, String]
|
22
|
+
|
23
|
+
def initialize: (
|
24
|
+
?api_key: String?,
|
25
|
+
?base_url: String?,
|
26
|
+
?max_retries: Integer,
|
27
|
+
?timeout: Float,
|
28
|
+
?initial_retry_delay: Float,
|
29
|
+
?max_retry_delay: Float
|
30
|
+
) -> void
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
module Openlayer
|
2
|
+
module Errors
|
3
|
+
class Error < StandardError
|
4
|
+
attr_accessor cause: StandardError?
|
5
|
+
end
|
6
|
+
|
7
|
+
class ConversionError < Openlayer::Errors::Error
|
8
|
+
def cause: -> StandardError?
|
9
|
+
|
10
|
+
def initialize: (
|
11
|
+
on: Class,
|
12
|
+
method: Symbol,
|
13
|
+
target: top,
|
14
|
+
value: top,
|
15
|
+
?cause: StandardError?
|
16
|
+
) -> void
|
17
|
+
end
|
18
|
+
|
19
|
+
class APIError < Openlayer::Errors::Error
|
20
|
+
attr_accessor url: URI::Generic
|
21
|
+
|
22
|
+
attr_accessor status: Integer?
|
23
|
+
|
24
|
+
attr_accessor headers: ::Hash[String, String]?
|
25
|
+
|
26
|
+
attr_accessor body: top?
|
27
|
+
|
28
|
+
def initialize: (
|
29
|
+
url: URI::Generic,
|
30
|
+
?status: Integer?,
|
31
|
+
?headers: ::Hash[String, String]?,
|
32
|
+
?body: Object?,
|
33
|
+
?request: nil,
|
34
|
+
?response: nil,
|
35
|
+
?message: String?
|
36
|
+
) -> void
|
37
|
+
end
|
38
|
+
|
39
|
+
class APIConnectionError < Openlayer::Errors::APIError
|
40
|
+
def initialize: (
|
41
|
+
url: URI::Generic,
|
42
|
+
?status: nil,
|
43
|
+
?headers: ::Hash[String, String]?,
|
44
|
+
?body: nil,
|
45
|
+
?request: nil,
|
46
|
+
?response: nil,
|
47
|
+
?message: String?
|
48
|
+
) -> void
|
49
|
+
end
|
50
|
+
|
51
|
+
class APITimeoutError < Openlayer::Errors::APIConnectionError
|
52
|
+
def initialize: (
|
53
|
+
url: URI::Generic,
|
54
|
+
?status: nil,
|
55
|
+
?headers: ::Hash[String, String]?,
|
56
|
+
?body: nil,
|
57
|
+
?request: nil,
|
58
|
+
?response: nil,
|
59
|
+
?message: String?
|
60
|
+
) -> void
|
61
|
+
end
|
62
|
+
|
63
|
+
class APIStatusError < Openlayer::Errors::APIError
|
64
|
+
def self.for: (
|
65
|
+
url: URI::Generic,
|
66
|
+
status: Integer,
|
67
|
+
headers: ::Hash[String, String]?,
|
68
|
+
body: Object?,
|
69
|
+
request: nil,
|
70
|
+
response: nil,
|
71
|
+
?message: String?
|
72
|
+
) -> instance
|
73
|
+
|
74
|
+
def initialize: (
|
75
|
+
url: URI::Generic,
|
76
|
+
status: Integer,
|
77
|
+
headers: ::Hash[String, String]?,
|
78
|
+
body: Object?,
|
79
|
+
request: nil,
|
80
|
+
response: nil,
|
81
|
+
?message: String?
|
82
|
+
) -> void
|
83
|
+
end
|
84
|
+
|
85
|
+
class BadRequestError < Openlayer::Errors::APIStatusError
|
86
|
+
HTTP_STATUS: 400
|
87
|
+
end
|
88
|
+
|
89
|
+
class AuthenticationError < Openlayer::Errors::APIStatusError
|
90
|
+
HTTP_STATUS: 401
|
91
|
+
end
|
92
|
+
|
93
|
+
class PermissionDeniedError < Openlayer::Errors::APIStatusError
|
94
|
+
HTTP_STATUS: 403
|
95
|
+
end
|
96
|
+
|
97
|
+
class NotFoundError < Openlayer::Errors::APIStatusError
|
98
|
+
HTTP_STATUS: 404
|
99
|
+
end
|
100
|
+
|
101
|
+
class ConflictError < Openlayer::Errors::APIStatusError
|
102
|
+
HTTP_STATUS: 409
|
103
|
+
end
|
104
|
+
|
105
|
+
class UnprocessableEntityError < Openlayer::Errors::APIStatusError
|
106
|
+
HTTP_STATUS: 422
|
107
|
+
end
|
108
|
+
|
109
|
+
class RateLimitError < Openlayer::Errors::APIStatusError
|
110
|
+
HTTP_STATUS: 429
|
111
|
+
end
|
112
|
+
|
113
|
+
class InternalServerError < Openlayer::Errors::APIStatusError
|
114
|
+
HTTP_STATUS: Range[Integer]
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Openlayer
|
2
|
+
class FilePart
|
3
|
+
attr_reader content: Pathname | StringIO | IO | String
|
4
|
+
|
5
|
+
attr_reader content_type: String?
|
6
|
+
|
7
|
+
attr_reader filename: String?
|
8
|
+
|
9
|
+
private def read: -> String
|
10
|
+
|
11
|
+
def to_json: (*top a) -> String
|
12
|
+
|
13
|
+
def to_yaml: (*top a) -> String
|
14
|
+
|
15
|
+
def initialize: (
|
16
|
+
Pathname | StringIO | IO | String content,
|
17
|
+
?filename: (Pathname | String)?,
|
18
|
+
?content_type: String?
|
19
|
+
) -> void
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
module Openlayer
|
2
|
+
module Internal
|
3
|
+
module Transport
|
4
|
+
class BaseClient
|
5
|
+
extend Openlayer::Internal::Util::SorbetRuntimeSupport
|
6
|
+
|
7
|
+
type request_components =
|
8
|
+
{
|
9
|
+
method: Symbol,
|
10
|
+
path: String | ::Array[String],
|
11
|
+
query: ::Hash[String, (::Array[String] | String)?]?,
|
12
|
+
headers: ::Hash[String, (String
|
13
|
+
| Integer
|
14
|
+
| ::Array[(String | Integer)?])?]?,
|
15
|
+
body: top?,
|
16
|
+
unwrap: (Symbol
|
17
|
+
| Integer
|
18
|
+
| ::Array[(Symbol | Integer)]
|
19
|
+
| (^(top arg0) -> top))?,
|
20
|
+
page: Class?,
|
21
|
+
stream: Class?,
|
22
|
+
model: Openlayer::Internal::Type::Converter::input?,
|
23
|
+
options: Openlayer::request_opts?
|
24
|
+
}
|
25
|
+
type request_input =
|
26
|
+
{
|
27
|
+
method: Symbol,
|
28
|
+
url: URI::Generic,
|
29
|
+
headers: ::Hash[String, String],
|
30
|
+
body: top,
|
31
|
+
max_retries: Integer,
|
32
|
+
timeout: Float
|
33
|
+
}
|
34
|
+
|
35
|
+
MAX_REDIRECTS: 20
|
36
|
+
|
37
|
+
PLATFORM_HEADERS: ::Hash[String, String]
|
38
|
+
|
39
|
+
def self.validate!: (
|
40
|
+
Openlayer::Internal::Transport::BaseClient::request_components req
|
41
|
+
) -> void
|
42
|
+
|
43
|
+
def self.should_retry?: (
|
44
|
+
Integer status,
|
45
|
+
headers: ::Hash[String, String]
|
46
|
+
) -> bool
|
47
|
+
|
48
|
+
def self.follow_redirect: (
|
49
|
+
Openlayer::Internal::Transport::BaseClient::request_input request,
|
50
|
+
status: Integer,
|
51
|
+
response_headers: ::Hash[String, String]
|
52
|
+
) -> Openlayer::Internal::Transport::BaseClient::request_input
|
53
|
+
|
54
|
+
def self.reap_connection!: (
|
55
|
+
Integer | Openlayer::Errors::APIConnectionError status,
|
56
|
+
stream: Enumerable[String]?
|
57
|
+
) -> void
|
58
|
+
|
59
|
+
attr_reader base_url: URI::Generic
|
60
|
+
|
61
|
+
attr_reader timeout: Float
|
62
|
+
|
63
|
+
attr_reader max_retries: Integer
|
64
|
+
|
65
|
+
attr_reader initial_retry_delay: Float
|
66
|
+
|
67
|
+
attr_reader max_retry_delay: Float
|
68
|
+
|
69
|
+
attr_reader headers: ::Hash[String, String]
|
70
|
+
|
71
|
+
attr_reader idempotency_header: String?
|
72
|
+
|
73
|
+
# @api private
|
74
|
+
attr_reader requester: Openlayer::Internal::Transport::PooledNetRequester
|
75
|
+
|
76
|
+
def initialize: (
|
77
|
+
base_url: String,
|
78
|
+
?timeout: Float,
|
79
|
+
?max_retries: Integer,
|
80
|
+
?initial_retry_delay: Float,
|
81
|
+
?max_retry_delay: Float,
|
82
|
+
?headers: ::Hash[String, (String
|
83
|
+
| Integer
|
84
|
+
| ::Array[(String | Integer)?])?],
|
85
|
+
?idempotency_header: String?
|
86
|
+
) -> void
|
87
|
+
|
88
|
+
private def auth_headers: -> ::Hash[String, String]
|
89
|
+
|
90
|
+
private def generate_idempotency_key: -> String
|
91
|
+
|
92
|
+
private def build_request: (
|
93
|
+
Openlayer::Internal::Transport::BaseClient::request_components req,
|
94
|
+
Openlayer::request_options opts
|
95
|
+
) -> Openlayer::Internal::Transport::BaseClient::request_input
|
96
|
+
|
97
|
+
private def retry_delay: (
|
98
|
+
::Hash[String, String] headers,
|
99
|
+
retry_count: Integer
|
100
|
+
) -> Float
|
101
|
+
|
102
|
+
def send_request: (
|
103
|
+
Openlayer::Internal::Transport::BaseClient::request_input request,
|
104
|
+
redirect_count: Integer,
|
105
|
+
retry_count: Integer,
|
106
|
+
send_retry_header: bool
|
107
|
+
) -> [Integer, top, Enumerable[String]]
|
108
|
+
|
109
|
+
def request: (
|
110
|
+
Symbol method,
|
111
|
+
String | ::Array[String] path,
|
112
|
+
?query: ::Hash[String, (::Array[String] | String)?]?,
|
113
|
+
?headers: ::Hash[String, (String
|
114
|
+
| Integer
|
115
|
+
| ::Array[(String | Integer)?])?]?,
|
116
|
+
?body: top?,
|
117
|
+
?unwrap: (Symbol
|
118
|
+
| Integer
|
119
|
+
| ::Array[(Symbol | Integer)]
|
120
|
+
| (^(top arg0) -> top))?,
|
121
|
+
?page: Class?,
|
122
|
+
?stream: Class?,
|
123
|
+
?model: Openlayer::Internal::Type::Converter::input?,
|
124
|
+
?options: Openlayer::request_opts?
|
125
|
+
) -> top
|
126
|
+
|
127
|
+
def inspect: -> String
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Openlayer
|
2
|
+
module Internal
|
3
|
+
module Transport
|
4
|
+
class PooledNetRequester
|
5
|
+
extend Openlayer::Internal::Util::SorbetRuntimeSupport
|
6
|
+
|
7
|
+
type request =
|
8
|
+
{
|
9
|
+
method: Symbol,
|
10
|
+
url: URI::Generic,
|
11
|
+
headers: ::Hash[String, String],
|
12
|
+
body: top,
|
13
|
+
deadline: Float
|
14
|
+
}
|
15
|
+
|
16
|
+
KEEP_ALIVE_TIMEOUT: 30
|
17
|
+
|
18
|
+
DEFAULT_MAX_CONNECTIONS: Integer
|
19
|
+
|
20
|
+
def self.connect: (URI::Generic url) -> top
|
21
|
+
|
22
|
+
def self.calibrate_socket_timeout: (top conn, Float deadline) -> void
|
23
|
+
|
24
|
+
def self.build_request: (
|
25
|
+
Openlayer::Internal::Transport::PooledNetRequester::request request
|
26
|
+
) {
|
27
|
+
(String arg0) -> void
|
28
|
+
} -> [top, (^-> void)]
|
29
|
+
|
30
|
+
private def with_pool: (
|
31
|
+
URI::Generic url,
|
32
|
+
deadline: Float
|
33
|
+
) {
|
34
|
+
(top arg0) -> void
|
35
|
+
} -> void
|
36
|
+
|
37
|
+
def execute: (
|
38
|
+
Openlayer::Internal::Transport::PooledNetRequester::request request
|
39
|
+
) -> [Integer, top, Enumerable[String]]
|
40
|
+
|
41
|
+
def initialize: (?size: Integer) -> void
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Openlayer
|
2
|
+
module Internal
|
3
|
+
module Type
|
4
|
+
class ArrayOf[Elem]
|
5
|
+
include Openlayer::Internal::Type::Converter
|
6
|
+
include Openlayer::Internal::Util::SorbetRuntimeSupport
|
7
|
+
|
8
|
+
def self.[]: (
|
9
|
+
::Hash[Symbol, top]
|
10
|
+
| ^-> Openlayer::Internal::Type::Converter::input
|
11
|
+
| Openlayer::Internal::Type::Converter::input type_info,
|
12
|
+
?::Hash[Symbol, top] spec
|
13
|
+
) -> instance
|
14
|
+
|
15
|
+
def ===: (top other) -> bool
|
16
|
+
|
17
|
+
def ==: (top other) -> bool
|
18
|
+
|
19
|
+
def hash: -> Integer
|
20
|
+
|
21
|
+
def coerce: (
|
22
|
+
::Array[top] | top value,
|
23
|
+
state: Openlayer::Internal::Type::Converter::coerce_state
|
24
|
+
) -> (::Array[top] | top)
|
25
|
+
|
26
|
+
def dump: (
|
27
|
+
::Array[top] | top value,
|
28
|
+
state: Openlayer::Internal::Type::Converter::dump_state
|
29
|
+
) -> (::Array[top] | top)
|
30
|
+
|
31
|
+
def to_sorbet_type: -> top
|
32
|
+
|
33
|
+
def item_type: -> Elem
|
34
|
+
|
35
|
+
def nilable?: -> bool
|
36
|
+
|
37
|
+
def initialize: (
|
38
|
+
::Hash[Symbol, top]
|
39
|
+
| ^-> Openlayer::Internal::Type::Converter::input
|
40
|
+
| Openlayer::Internal::Type::Converter::input type_info,
|
41
|
+
?::Hash[Symbol, top] spec
|
42
|
+
) -> void
|
43
|
+
|
44
|
+
def inspect: (?depth: Integer) -> String
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|