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.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +23 -0
  4. data/README.md +280 -39
  5. data/SECURITY.md +27 -0
  6. data/lib/openlayer/client.rb +64 -59
  7. data/lib/openlayer/errors.rb +228 -0
  8. data/lib/openlayer/file_part.rb +58 -0
  9. data/lib/openlayer/internal/transport/base_client.rb +567 -0
  10. data/lib/openlayer/internal/transport/pooled_net_requester.rb +198 -0
  11. data/lib/openlayer/internal/type/array_of.rb +168 -0
  12. data/lib/openlayer/internal/type/base_model.rb +531 -0
  13. data/lib/openlayer/internal/type/base_page.rb +55 -0
  14. data/lib/openlayer/internal/type/boolean.rb +77 -0
  15. data/lib/openlayer/internal/type/converter.rb +327 -0
  16. data/lib/openlayer/internal/type/enum.rb +131 -0
  17. data/lib/openlayer/internal/type/file_input.rb +111 -0
  18. data/lib/openlayer/internal/type/hash_of.rb +188 -0
  19. data/lib/openlayer/internal/type/request_parameters.rb +42 -0
  20. data/lib/openlayer/internal/type/union.rb +237 -0
  21. data/lib/openlayer/internal/type/unknown.rb +81 -0
  22. data/lib/openlayer/internal/util.rb +915 -0
  23. data/lib/openlayer/internal.rb +20 -0
  24. data/lib/openlayer/models/commit_retrieve_params.rb +14 -0
  25. data/lib/openlayer/models/commit_retrieve_response.rb +275 -0
  26. data/lib/openlayer/models/commits/test_result_list_params.rb +91 -0
  27. data/lib/openlayer/models/commits/test_result_list_response.rb +566 -0
  28. data/lib/openlayer/models/inference_pipeline_delete_params.rb +14 -0
  29. data/lib/openlayer/models/inference_pipeline_retrieve_params.rb +33 -0
  30. data/lib/openlayer/models/inference_pipeline_retrieve_response.rb +605 -0
  31. data/lib/openlayer/models/inference_pipeline_update_params.rb +42 -0
  32. data/lib/openlayer/models/inference_pipeline_update_response.rb +605 -0
  33. data/lib/openlayer/models/inference_pipelines/data_stream_params.rb +463 -0
  34. data/lib/openlayer/models/inference_pipelines/data_stream_response.rb +28 -0
  35. data/lib/openlayer/models/inference_pipelines/row_update_params.rb +90 -0
  36. data/lib/openlayer/models/inference_pipelines/row_update_response.rb +28 -0
  37. data/lib/openlayer/models/inference_pipelines/test_result_list_params.rb +83 -0
  38. data/lib/openlayer/models/inference_pipelines/test_result_list_response.rb +568 -0
  39. data/lib/openlayer/models/project_create_params.rb +51 -0
  40. data/lib/openlayer/models/project_create_response.rb +262 -0
  41. data/lib/openlayer/models/project_list_params.rb +59 -0
  42. data/lib/openlayer/models/project_list_response.rb +274 -0
  43. data/lib/openlayer/models/projects/commit_create_params.rb +61 -0
  44. data/lib/openlayer/models/projects/commit_create_response.rb +277 -0
  45. data/lib/openlayer/models/projects/commit_list_params.rb +32 -0
  46. data/lib/openlayer/models/projects/commit_list_response.rb +288 -0
  47. data/lib/openlayer/models/projects/inference_pipeline_create_params.rb +229 -0
  48. data/lib/openlayer/models/projects/inference_pipeline_create_response.rb +612 -0
  49. data/lib/openlayer/models/projects/inference_pipeline_list_params.rb +40 -0
  50. data/lib/openlayer/models/projects/inference_pipeline_list_response.rb +623 -0
  51. data/lib/openlayer/models/projects/test_create_params.rb +367 -0
  52. data/lib/openlayer/models/projects/test_create_response.rb +438 -0
  53. data/lib/openlayer/models/projects/test_list_params.rb +91 -0
  54. data/lib/openlayer/models/projects/test_list_response.rb +452 -0
  55. data/lib/openlayer/models/projects/test_update_params.rb +262 -0
  56. data/lib/openlayer/models/projects/test_update_response.rb +24 -0
  57. data/lib/openlayer/models/storage/presigned_url_create_params.rb +24 -0
  58. data/lib/openlayer/models/storage/presigned_url_create_response.rb +35 -0
  59. data/lib/openlayer/models.rb +61 -0
  60. data/lib/openlayer/request_options.rb +77 -0
  61. data/lib/openlayer/resources/commits/test_results.rb +51 -0
  62. data/lib/openlayer/resources/commits.rb +38 -0
  63. data/lib/openlayer/resources/inference_pipelines/data.rb +46 -0
  64. data/lib/openlayer/resources/inference_pipelines/rows.rb +46 -0
  65. data/lib/openlayer/resources/inference_pipelines/test_results.rb +49 -0
  66. data/lib/openlayer/resources/inference_pipelines.rb +101 -0
  67. data/lib/openlayer/resources/projects/commits.rb +72 -0
  68. data/lib/openlayer/resources/projects/inference_pipelines.rb +74 -0
  69. data/lib/openlayer/resources/projects/tests.rb +135 -0
  70. data/lib/openlayer/resources/projects.rb +80 -0
  71. data/lib/openlayer/resources/storage/presigned_url.rb +38 -0
  72. data/lib/openlayer/resources/storage.rb +18 -0
  73. data/lib/openlayer/version.rb +1 -1
  74. data/lib/openlayer.rb +96 -12
  75. data/manifest.yaml +15 -0
  76. data/rbi/openlayer/client.rbi +58 -0
  77. data/rbi/openlayer/errors.rbi +205 -0
  78. data/rbi/openlayer/file_part.rbi +37 -0
  79. data/rbi/openlayer/internal/transport/base_client.rbi +293 -0
  80. data/rbi/openlayer/internal/transport/pooled_net_requester.rbi +79 -0
  81. data/rbi/openlayer/internal/type/array_of.rbi +104 -0
  82. data/rbi/openlayer/internal/type/base_model.rbi +304 -0
  83. data/rbi/openlayer/internal/type/base_page.rbi +42 -0
  84. data/rbi/openlayer/internal/type/boolean.rbi +58 -0
  85. data/rbi/openlayer/internal/type/converter.rbi +216 -0
  86. data/rbi/openlayer/internal/type/enum.rbi +82 -0
  87. data/rbi/openlayer/internal/type/file_input.rbi +59 -0
  88. data/rbi/openlayer/internal/type/hash_of.rbi +104 -0
  89. data/rbi/openlayer/internal/type/request_parameters.rbi +29 -0
  90. data/rbi/openlayer/internal/type/union.rbi +128 -0
  91. data/rbi/openlayer/internal/type/unknown.rbi +58 -0
  92. data/rbi/openlayer/internal/util.rbi +487 -0
  93. data/rbi/openlayer/internal.rbi +18 -0
  94. data/rbi/openlayer/models/commit_retrieve_params.rbi +27 -0
  95. data/rbi/openlayer/models/commit_retrieve_response.rbi +393 -0
  96. data/rbi/openlayer/models/commits/test_result_list_params.rbi +214 -0
  97. data/rbi/openlayer/models/commits/test_result_list_response.rbi +1256 -0
  98. data/rbi/openlayer/models/inference_pipeline_delete_params.rbi +30 -0
  99. data/rbi/openlayer/models/inference_pipeline_retrieve_params.rbi +101 -0
  100. data/rbi/openlayer/models/inference_pipeline_retrieve_response.rbi +1022 -0
  101. data/rbi/openlayer/models/inference_pipeline_update_params.rbi +67 -0
  102. data/rbi/openlayer/models/inference_pipeline_update_response.rbi +1018 -0
  103. data/rbi/openlayer/models/inference_pipelines/data_stream_params.rbi +750 -0
  104. data/rbi/openlayer/models/inference_pipelines/data_stream_response.rbi +73 -0
  105. data/rbi/openlayer/models/inference_pipelines/row_update_params.rbi +153 -0
  106. data/rbi/openlayer/models/inference_pipelines/row_update_response.rbi +73 -0
  107. data/rbi/openlayer/models/inference_pipelines/test_result_list_params.rbi +216 -0
  108. data/rbi/openlayer/models/inference_pipelines/test_result_list_response.rbi +1258 -0
  109. data/rbi/openlayer/models/project_create_params.rbi +99 -0
  110. data/rbi/openlayer/models/project_create_response.rbi +401 -0
  111. data/rbi/openlayer/models/project_list_params.rbi +121 -0
  112. data/rbi/openlayer/models/project_list_response.rbi +442 -0
  113. data/rbi/openlayer/models/projects/commit_create_params.rbi +125 -0
  114. data/rbi/openlayer/models/projects/commit_create_response.rbi +409 -0
  115. data/rbi/openlayer/models/projects/commit_list_params.rbi +62 -0
  116. data/rbi/openlayer/models/projects/commit_list_response.rbi +454 -0
  117. data/rbi/openlayer/models/projects/inference_pipeline_create_params.rbi +560 -0
  118. data/rbi/openlayer/models/projects/inference_pipeline_create_response.rbi +1027 -0
  119. data/rbi/openlayer/models/projects/inference_pipeline_list_params.rbi +73 -0
  120. data/rbi/openlayer/models/projects/inference_pipeline_list_response.rbi +1070 -0
  121. data/rbi/openlayer/models/projects/test_create_params.rbi +940 -0
  122. data/rbi/openlayer/models/projects/test_create_response.rbi +1026 -0
  123. data/rbi/openlayer/models/projects/test_list_params.rbi +165 -0
  124. data/rbi/openlayer/models/projects/test_list_response.rbi +1067 -0
  125. data/rbi/openlayer/models/projects/test_update_params.rbi +699 -0
  126. data/rbi/openlayer/models/projects/test_update_response.rbi +43 -0
  127. data/rbi/openlayer/models/storage/presigned_url_create_params.rbi +45 -0
  128. data/rbi/openlayer/models/storage/presigned_url_create_response.rbi +55 -0
  129. data/rbi/openlayer/models.rbi +26 -0
  130. data/rbi/openlayer/request_options.rbi +59 -0
  131. data/rbi/openlayer/resources/commits/test_results.rbi +45 -0
  132. data/rbi/openlayer/resources/commits.rbi +29 -0
  133. data/rbi/openlayer/resources/inference_pipelines/data.rbi +41 -0
  134. data/rbi/openlayer/resources/inference_pipelines/rows.rbi +40 -0
  135. data/rbi/openlayer/resources/inference_pipelines/test_results.rbi +46 -0
  136. data/rbi/openlayer/resources/inference_pipelines.rbi +79 -0
  137. data/rbi/openlayer/resources/projects/commits.rbi +60 -0
  138. data/rbi/openlayer/resources/projects/inference_pipelines.rbi +69 -0
  139. data/rbi/openlayer/resources/projects/tests.rbi +123 -0
  140. data/rbi/openlayer/resources/projects.rbi +64 -0
  141. data/rbi/openlayer/resources/storage/presigned_url.rbi +28 -0
  142. data/rbi/openlayer/resources/storage.rbi +15 -0
  143. data/rbi/openlayer/version.rbi +5 -0
  144. data/sig/openlayer/client.rbs +32 -0
  145. data/sig/openlayer/errors.rbs +117 -0
  146. data/sig/openlayer/file_part.rbs +21 -0
  147. data/sig/openlayer/internal/transport/base_client.rbs +131 -0
  148. data/sig/openlayer/internal/transport/pooled_net_requester.rbs +45 -0
  149. data/sig/openlayer/internal/type/array_of.rbs +48 -0
  150. data/sig/openlayer/internal/type/base_model.rbs +102 -0
  151. data/sig/openlayer/internal/type/base_page.rbs +24 -0
  152. data/sig/openlayer/internal/type/boolean.rbs +26 -0
  153. data/sig/openlayer/internal/type/converter.rbs +79 -0
  154. data/sig/openlayer/internal/type/enum.rbs +32 -0
  155. data/sig/openlayer/internal/type/file_input.rbs +25 -0
  156. data/sig/openlayer/internal/type/hash_of.rbs +48 -0
  157. data/sig/openlayer/internal/type/request_parameters.rbs +19 -0
  158. data/sig/openlayer/internal/type/union.rbs +52 -0
  159. data/sig/openlayer/internal/type/unknown.rbs +26 -0
  160. data/sig/openlayer/internal/util.rbs +185 -0
  161. data/sig/openlayer/internal.rbs +9 -0
  162. data/sig/openlayer/models/commit_retrieve_params.rbs +15 -0
  163. data/sig/openlayer/models/commit_retrieve_response.rbs +209 -0
  164. data/sig/openlayer/models/commits/test_result_list_params.rbs +91 -0
  165. data/sig/openlayer/models/commits/test_result_list_response.rbs +529 -0
  166. data/sig/openlayer/models/inference_pipeline_delete_params.rbs +15 -0
  167. data/sig/openlayer/models/inference_pipeline_retrieve_params.rbs +41 -0
  168. data/sig/openlayer/models/inference_pipeline_retrieve_response.rbs +493 -0
  169. data/sig/openlayer/models/inference_pipeline_update_params.rbs +34 -0
  170. data/sig/openlayer/models/inference_pipeline_update_response.rbs +493 -0
  171. data/sig/openlayer/models/inference_pipelines/data_stream_params.rbs +386 -0
  172. data/sig/openlayer/models/inference_pipelines/data_stream_response.rbs +32 -0
  173. data/sig/openlayer/models/inference_pipelines/row_update_params.rbs +75 -0
  174. data/sig/openlayer/models/inference_pipelines/row_update_response.rbs +32 -0
  175. data/sig/openlayer/models/inference_pipelines/test_result_list_params.rbs +84 -0
  176. data/sig/openlayer/models/inference_pipelines/test_result_list_response.rbs +529 -0
  177. data/sig/openlayer/models/project_create_params.rbs +53 -0
  178. data/sig/openlayer/models/project_create_response.rbs +210 -0
  179. data/sig/openlayer/models/project_list_params.rbs +68 -0
  180. data/sig/openlayer/models/project_list_response.rbs +225 -0
  181. data/sig/openlayer/models/projects/commit_create_params.rbs +82 -0
  182. data/sig/openlayer/models/projects/commit_create_response.rbs +211 -0
  183. data/sig/openlayer/models/projects/commit_list_params.rbs +34 -0
  184. data/sig/openlayer/models/projects/commit_list_response.rbs +228 -0
  185. data/sig/openlayer/models/projects/inference_pipeline_create_params.rbs +308 -0
  186. data/sig/openlayer/models/projects/inference_pipeline_create_response.rbs +495 -0
  187. data/sig/openlayer/models/projects/inference_pipeline_list_params.rbs +40 -0
  188. data/sig/openlayer/models/projects/inference_pipeline_list_response.rbs +512 -0
  189. data/sig/openlayer/models/projects/test_create_params.rbs +388 -0
  190. data/sig/openlayer/models/projects/test_create_response.rbs +427 -0
  191. data/sig/openlayer/models/projects/test_list_params.rbs +85 -0
  192. data/sig/openlayer/models/projects/test_list_response.rbs +442 -0
  193. data/sig/openlayer/models/projects/test_update_params.rbs +275 -0
  194. data/sig/openlayer/models/projects/test_update_response.rbs +25 -0
  195. data/sig/openlayer/models/storage/presigned_url_create_params.rbs +25 -0
  196. data/sig/openlayer/models/storage/presigned_url_create_response.rbs +22 -0
  197. data/sig/openlayer/models.rbs +21 -0
  198. data/sig/openlayer/request_options.rbs +34 -0
  199. data/sig/openlayer/resources/commits/test_results.rbs +19 -0
  200. data/sig/openlayer/resources/commits.rbs +14 -0
  201. data/sig/openlayer/resources/inference_pipelines/data.rbs +16 -0
  202. data/sig/openlayer/resources/inference_pipelines/rows.rbs +17 -0
  203. data/sig/openlayer/resources/inference_pipelines/test_results.rbs +18 -0
  204. data/sig/openlayer/resources/inference_pipelines.rbs +32 -0
  205. data/sig/openlayer/resources/projects/commits.rbs +25 -0
  206. data/sig/openlayer/resources/projects/inference_pipelines.rbs +26 -0
  207. data/sig/openlayer/resources/projects/tests.rbs +45 -0
  208. data/sig/openlayer/resources/projects.rbs +28 -0
  209. data/sig/openlayer/resources/storage/presigned_url.rbs +14 -0
  210. data/sig/openlayer/resources/storage.rbs +9 -0
  211. data/sig/openlayer/version.rbs +3 -0
  212. metadata +223 -91
  213. data/.env +0 -0
  214. data/.rspec +0 -3
  215. data/.rubocop.yml +0 -13
  216. data/LICENSE +0 -21
  217. data/Rakefile +0 -12
  218. data/examples/staging/.DS_Store +0 -0
  219. data/examples/staging/commit.yaml +0 -2
  220. data/examples/staging/model/model_config.yaml +0 -12
  221. data/examples/staging/validation/dataset_config.yaml +0 -12
  222. data/lib/openlayer/error.rb +0 -5
  223. data/lib/openlayer/inference_pipeline.rb +0 -36
  224. data/lib/openlayer/object.rb +0 -28
  225. data/lib/openlayer/objects/project.rb +0 -185
  226. data/lib/openlayer/objects/project_version.rb +0 -89
  227. data/lib/openlayer/services/s3_presigned_client.rb +0 -47
  228. data/lib/openlayer/services/tar_file_helper.rb +0 -55
  229. data/openlayer.gemspec +0 -45
  230. data/sig/openlayer.rbs +0 -4
@@ -0,0 +1,1067 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Projects
6
+ class TestListResponse < Openlayer::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Openlayer::Models::Projects::TestListResponse,
11
+ Openlayer::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig do
16
+ returns(T::Array[Openlayer::Models::Projects::TestListResponse::Item])
17
+ end
18
+ attr_accessor :items
19
+
20
+ sig do
21
+ params(
22
+ items:
23
+ T::Array[
24
+ Openlayer::Models::Projects::TestListResponse::Item::OrHash
25
+ ]
26
+ ).returns(T.attached_class)
27
+ end
28
+ def self.new(items:)
29
+ end
30
+
31
+ sig do
32
+ override.returns(
33
+ {
34
+ items:
35
+ T::Array[Openlayer::Models::Projects::TestListResponse::Item]
36
+ }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+
42
+ class Item < Openlayer::Internal::Type::BaseModel
43
+ OrHash =
44
+ T.type_alias do
45
+ T.any(
46
+ Openlayer::Models::Projects::TestListResponse::Item,
47
+ Openlayer::Internal::AnyHash
48
+ )
49
+ end
50
+
51
+ # The test description.
52
+ sig { returns(T.nilable(T.anything)) }
53
+ attr_accessor :description
54
+
55
+ # The test name.
56
+ sig { returns(String) }
57
+ attr_accessor :name
58
+
59
+ # The test subtype.
60
+ sig do
61
+ returns(
62
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
63
+ )
64
+ end
65
+ attr_accessor :subtype
66
+
67
+ sig do
68
+ returns(
69
+ T::Array[
70
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold
71
+ ]
72
+ )
73
+ end
74
+ attr_accessor :thresholds
75
+
76
+ # The test type.
77
+ sig do
78
+ returns(
79
+ Openlayer::Models::Projects::TestListResponse::Item::Type::TaggedSymbol
80
+ )
81
+ end
82
+ attr_accessor :type
83
+
84
+ # Whether the test is archived.
85
+ sig { returns(T.nilable(T::Boolean)) }
86
+ attr_reader :archived
87
+
88
+ sig { params(archived: T::Boolean).void }
89
+ attr_writer :archived
90
+
91
+ # The delay window in seconds. Only applies to tests that use production data.
92
+ sig { returns(T.nilable(Float)) }
93
+ attr_accessor :delay_window
94
+
95
+ # The evaluation window in seconds. Only applies to tests that use production
96
+ # data.
97
+ sig { returns(T.nilable(Float)) }
98
+ attr_accessor :evaluation_window
99
+
100
+ # Whether the test uses an ML model.
101
+ sig { returns(T.nilable(T::Boolean)) }
102
+ attr_reader :uses_ml_model
103
+
104
+ sig { params(uses_ml_model: T::Boolean).void }
105
+ attr_writer :uses_ml_model
106
+
107
+ # Whether the test uses production data (monitoring mode only).
108
+ sig { returns(T.nilable(T::Boolean)) }
109
+ attr_reader :uses_production_data
110
+
111
+ sig { params(uses_production_data: T::Boolean).void }
112
+ attr_writer :uses_production_data
113
+
114
+ # Whether the test uses a reference dataset (monitoring mode only).
115
+ sig { returns(T.nilable(T::Boolean)) }
116
+ attr_reader :uses_reference_dataset
117
+
118
+ sig { params(uses_reference_dataset: T::Boolean).void }
119
+ attr_writer :uses_reference_dataset
120
+
121
+ # Whether the test uses a training dataset.
122
+ sig { returns(T.nilable(T::Boolean)) }
123
+ attr_reader :uses_training_dataset
124
+
125
+ sig { params(uses_training_dataset: T::Boolean).void }
126
+ attr_writer :uses_training_dataset
127
+
128
+ # Whether the test uses a validation dataset.
129
+ sig { returns(T.nilable(T::Boolean)) }
130
+ attr_reader :uses_validation_dataset
131
+
132
+ sig { params(uses_validation_dataset: T::Boolean).void }
133
+ attr_writer :uses_validation_dataset
134
+
135
+ # The test id.
136
+ sig { returns(String) }
137
+ attr_accessor :id
138
+
139
+ # The number of comments on the test.
140
+ sig { returns(Integer) }
141
+ attr_accessor :comment_count
142
+
143
+ # The test creator id.
144
+ sig { returns(T.nilable(String)) }
145
+ attr_accessor :creator_id
146
+
147
+ # The date the test was archived.
148
+ sig { returns(T.nilable(Time)) }
149
+ attr_accessor :date_archived
150
+
151
+ # The creation date.
152
+ sig { returns(Time) }
153
+ attr_accessor :date_created
154
+
155
+ # The last updated date.
156
+ sig { returns(Time) }
157
+ attr_accessor :date_updated
158
+
159
+ # The test number.
160
+ sig { returns(Integer) }
161
+ attr_accessor :number
162
+
163
+ # The project version (commit) id where the test was created.
164
+ sig { returns(T.nilable(String)) }
165
+ attr_accessor :origin_project_version_id
166
+
167
+ # Whether the test is suggested or user-created.
168
+ sig { returns(T::Boolean) }
169
+ attr_accessor :suggested
170
+
171
+ sig do
172
+ params(
173
+ id: String,
174
+ comment_count: Integer,
175
+ creator_id: T.nilable(String),
176
+ date_archived: T.nilable(Time),
177
+ date_created: Time,
178
+ date_updated: Time,
179
+ description: T.nilable(T.anything),
180
+ name: String,
181
+ number: Integer,
182
+ origin_project_version_id: T.nilable(String),
183
+ subtype:
184
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::OrSymbol,
185
+ suggested: T::Boolean,
186
+ thresholds:
187
+ T::Array[
188
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::OrHash
189
+ ],
190
+ type:
191
+ Openlayer::Models::Projects::TestListResponse::Item::Type::OrSymbol,
192
+ archived: T::Boolean,
193
+ delay_window: T.nilable(Float),
194
+ evaluation_window: T.nilable(Float),
195
+ uses_ml_model: T::Boolean,
196
+ uses_production_data: T::Boolean,
197
+ uses_reference_dataset: T::Boolean,
198
+ uses_training_dataset: T::Boolean,
199
+ uses_validation_dataset: T::Boolean
200
+ ).returns(T.attached_class)
201
+ end
202
+ def self.new(
203
+ # The test id.
204
+ id:,
205
+ # The number of comments on the test.
206
+ comment_count:,
207
+ # The test creator id.
208
+ creator_id:,
209
+ # The date the test was archived.
210
+ date_archived:,
211
+ # The creation date.
212
+ date_created:,
213
+ # The last updated date.
214
+ date_updated:,
215
+ # The test description.
216
+ description:,
217
+ # The test name.
218
+ name:,
219
+ # The test number.
220
+ number:,
221
+ # The project version (commit) id where the test was created.
222
+ origin_project_version_id:,
223
+ # The test subtype.
224
+ subtype:,
225
+ # Whether the test is suggested or user-created.
226
+ suggested:,
227
+ thresholds:,
228
+ # The test type.
229
+ type:,
230
+ # Whether the test is archived.
231
+ archived: nil,
232
+ # The delay window in seconds. Only applies to tests that use production data.
233
+ delay_window: nil,
234
+ # The evaluation window in seconds. Only applies to tests that use production
235
+ # data.
236
+ evaluation_window: nil,
237
+ # Whether the test uses an ML model.
238
+ uses_ml_model: nil,
239
+ # Whether the test uses production data (monitoring mode only).
240
+ uses_production_data: nil,
241
+ # Whether the test uses a reference dataset (monitoring mode only).
242
+ uses_reference_dataset: nil,
243
+ # Whether the test uses a training dataset.
244
+ uses_training_dataset: nil,
245
+ # Whether the test uses a validation dataset.
246
+ uses_validation_dataset: nil
247
+ )
248
+ end
249
+
250
+ sig do
251
+ override.returns(
252
+ {
253
+ id: String,
254
+ comment_count: Integer,
255
+ creator_id: T.nilable(String),
256
+ date_archived: T.nilable(Time),
257
+ date_created: Time,
258
+ date_updated: Time,
259
+ description: T.nilable(T.anything),
260
+ name: String,
261
+ number: Integer,
262
+ origin_project_version_id: T.nilable(String),
263
+ subtype:
264
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol,
265
+ suggested: T::Boolean,
266
+ thresholds:
267
+ T::Array[
268
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold
269
+ ],
270
+ type:
271
+ Openlayer::Models::Projects::TestListResponse::Item::Type::TaggedSymbol,
272
+ archived: T::Boolean,
273
+ delay_window: T.nilable(Float),
274
+ evaluation_window: T.nilable(Float),
275
+ uses_ml_model: T::Boolean,
276
+ uses_production_data: T::Boolean,
277
+ uses_reference_dataset: T::Boolean,
278
+ uses_training_dataset: T::Boolean,
279
+ uses_validation_dataset: T::Boolean
280
+ }
281
+ )
282
+ end
283
+ def to_hash
284
+ end
285
+
286
+ # The test subtype.
287
+ module Subtype
288
+ extend Openlayer::Internal::Type::Enum
289
+
290
+ TaggedSymbol =
291
+ T.type_alias do
292
+ T.all(
293
+ Symbol,
294
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype
295
+ )
296
+ end
297
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
298
+
299
+ ANOMALOUS_COLUMN_COUNT =
300
+ T.let(
301
+ :anomalousColumnCount,
302
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
303
+ )
304
+ CHARACTER_LENGTH =
305
+ T.let(
306
+ :characterLength,
307
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
308
+ )
309
+ CLASS_IMBALANCE_RATIO =
310
+ T.let(
311
+ :classImbalanceRatio,
312
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
313
+ )
314
+ EXPECT_COLUMN_A_TO_BE_IN_COLUMN_B =
315
+ T.let(
316
+ :expectColumnAToBeInColumnB,
317
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
318
+ )
319
+ COLUMN_AVERAGE =
320
+ T.let(
321
+ :columnAverage,
322
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
323
+ )
324
+ COLUMN_DRIFT =
325
+ T.let(
326
+ :columnDrift,
327
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
328
+ )
329
+ COLUMN_STATISTIC =
330
+ T.let(
331
+ :columnStatistic,
332
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
333
+ )
334
+ COLUMN_VALUES_MATCH =
335
+ T.let(
336
+ :columnValuesMatch,
337
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
338
+ )
339
+ CONFLICTING_LABEL_ROW_COUNT =
340
+ T.let(
341
+ :conflictingLabelRowCount,
342
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
343
+ )
344
+ CONTAINS_PII =
345
+ T.let(
346
+ :containsPii,
347
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
348
+ )
349
+ CONTAINS_VALID_URL =
350
+ T.let(
351
+ :containsValidUrl,
352
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
353
+ )
354
+ CORRELATED_FEATURE_COUNT =
355
+ T.let(
356
+ :correlatedFeatureCount,
357
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
358
+ )
359
+ CUSTOM_METRIC_THRESHOLD =
360
+ T.let(
361
+ :customMetricThreshold,
362
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
363
+ )
364
+ DUPLICATE_ROW_COUNT =
365
+ T.let(
366
+ :duplicateRowCount,
367
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
368
+ )
369
+ EMPTY_FEATURE =
370
+ T.let(
371
+ :emptyFeature,
372
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
373
+ )
374
+ EMPTY_FEATURE_COUNT =
375
+ T.let(
376
+ :emptyFeatureCount,
377
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
378
+ )
379
+ DRIFTED_FEATURE_COUNT =
380
+ T.let(
381
+ :driftedFeatureCount,
382
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
383
+ )
384
+ FEATURE_MISSING_VALUES =
385
+ T.let(
386
+ :featureMissingValues,
387
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
388
+ )
389
+ FEATURE_VALUE_VALIDATION =
390
+ T.let(
391
+ :featureValueValidation,
392
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
393
+ )
394
+ GREAT_EXPECTATIONS =
395
+ T.let(
396
+ :greatExpectations,
397
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
398
+ )
399
+ GROUP_BY_COLUMN_STATS_CHECK =
400
+ T.let(
401
+ :groupByColumnStatsCheck,
402
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
403
+ )
404
+ ILL_FORMED_ROW_COUNT =
405
+ T.let(
406
+ :illFormedRowCount,
407
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
408
+ )
409
+ IS_CODE =
410
+ T.let(
411
+ :isCode,
412
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
413
+ )
414
+ IS_JSON =
415
+ T.let(
416
+ :isJson,
417
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
418
+ )
419
+ LLM_RUBRIC_THRESHOLD_V2 =
420
+ T.let(
421
+ :llmRubricThresholdV2,
422
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
423
+ )
424
+ LABEL_DRIFT =
425
+ T.let(
426
+ :labelDrift,
427
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
428
+ )
429
+ METRIC_THRESHOLD =
430
+ T.let(
431
+ :metricThreshold,
432
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
433
+ )
434
+ NEW_CATEGORY_COUNT =
435
+ T.let(
436
+ :newCategoryCount,
437
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
438
+ )
439
+ NEW_LABEL_COUNT =
440
+ T.let(
441
+ :newLabelCount,
442
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
443
+ )
444
+ NULL_ROW_COUNT =
445
+ T.let(
446
+ :nullRowCount,
447
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
448
+ )
449
+ ROW_COUNT =
450
+ T.let(
451
+ :rowCount,
452
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
453
+ )
454
+ PP_SCORE_VALUE_VALIDATION =
455
+ T.let(
456
+ :ppScoreValueValidation,
457
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
458
+ )
459
+ QUASI_CONSTANT_FEATURE =
460
+ T.let(
461
+ :quasiConstantFeature,
462
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
463
+ )
464
+ QUASI_CONSTANT_FEATURE_COUNT =
465
+ T.let(
466
+ :quasiConstantFeatureCount,
467
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
468
+ )
469
+ SQL_QUERY =
470
+ T.let(
471
+ :sqlQuery,
472
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
473
+ )
474
+ DTYPE_VALIDATION =
475
+ T.let(
476
+ :dtypeValidation,
477
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
478
+ )
479
+ SENTENCE_LENGTH =
480
+ T.let(
481
+ :sentenceLength,
482
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
483
+ )
484
+ SIZE_RATIO =
485
+ T.let(
486
+ :sizeRatio,
487
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
488
+ )
489
+ SPECIAL_CHARACTERS_RATIO =
490
+ T.let(
491
+ :specialCharactersRatio,
492
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
493
+ )
494
+ STRING_VALIDATION =
495
+ T.let(
496
+ :stringValidation,
497
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
498
+ )
499
+ TRAIN_VAL_LEAKAGE_ROW_COUNT =
500
+ T.let(
501
+ :trainValLeakageRowCount,
502
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
503
+ )
504
+
505
+ sig do
506
+ override.returns(
507
+ T::Array[
508
+ Openlayer::Models::Projects::TestListResponse::Item::Subtype::TaggedSymbol
509
+ ]
510
+ )
511
+ end
512
+ def self.values
513
+ end
514
+ end
515
+
516
+ class Threshold < Openlayer::Internal::Type::BaseModel
517
+ OrHash =
518
+ T.type_alias do
519
+ T.any(
520
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold,
521
+ Openlayer::Internal::AnyHash
522
+ )
523
+ end
524
+
525
+ # The insight name to be evaluated.
526
+ sig do
527
+ returns(
528
+ T.nilable(
529
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
530
+ )
531
+ )
532
+ end
533
+ attr_reader :insight_name
534
+
535
+ sig do
536
+ params(
537
+ insight_name:
538
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::OrSymbol
539
+ ).void
540
+ end
541
+ attr_writer :insight_name
542
+
543
+ # The insight parameters. Required only for some test subtypes. For example, for
544
+ # tests that require a column name, the insight parameters will be [{'name':
545
+ # 'column_name', 'value': 'Age'}]
546
+ sig do
547
+ returns(
548
+ T.nilable(
549
+ T::Array[
550
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightParameter
551
+ ]
552
+ )
553
+ )
554
+ end
555
+ attr_accessor :insight_parameters
556
+
557
+ # The measurement to be evaluated.
558
+ sig { returns(T.nilable(String)) }
559
+ attr_reader :measurement
560
+
561
+ sig { params(measurement: String).void }
562
+ attr_writer :measurement
563
+
564
+ # The operator to be used for the evaluation.
565
+ sig do
566
+ returns(
567
+ T.nilable(
568
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
569
+ )
570
+ )
571
+ end
572
+ attr_reader :operator
573
+
574
+ sig do
575
+ params(
576
+ operator:
577
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::OrSymbol
578
+ ).void
579
+ end
580
+ attr_writer :operator
581
+
582
+ # Whether to use automatic anomaly detection or manual thresholds
583
+ sig do
584
+ returns(
585
+ T.nilable(
586
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::TaggedSymbol
587
+ )
588
+ )
589
+ end
590
+ attr_reader :threshold_mode
591
+
592
+ sig do
593
+ params(
594
+ threshold_mode:
595
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::OrSymbol
596
+ ).void
597
+ end
598
+ attr_writer :threshold_mode
599
+
600
+ # The value to be compared.
601
+ sig do
602
+ returns(
603
+ T.nilable(
604
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Value::Variants
605
+ )
606
+ )
607
+ end
608
+ attr_reader :value
609
+
610
+ sig do
611
+ params(
612
+ value:
613
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Value::Variants
614
+ ).void
615
+ end
616
+ attr_writer :value
617
+
618
+ sig do
619
+ params(
620
+ insight_name:
621
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::OrSymbol,
622
+ insight_parameters:
623
+ T.nilable(
624
+ T::Array[
625
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightParameter::OrHash
626
+ ]
627
+ ),
628
+ measurement: String,
629
+ operator:
630
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::OrSymbol,
631
+ threshold_mode:
632
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::OrSymbol,
633
+ value:
634
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Value::Variants
635
+ ).returns(T.attached_class)
636
+ end
637
+ def self.new(
638
+ # The insight name to be evaluated.
639
+ insight_name: nil,
640
+ # The insight parameters. Required only for some test subtypes. For example, for
641
+ # tests that require a column name, the insight parameters will be [{'name':
642
+ # 'column_name', 'value': 'Age'}]
643
+ insight_parameters: nil,
644
+ # The measurement to be evaluated.
645
+ measurement: nil,
646
+ # The operator to be used for the evaluation.
647
+ operator: nil,
648
+ # Whether to use automatic anomaly detection or manual thresholds
649
+ threshold_mode: nil,
650
+ # The value to be compared.
651
+ value: nil
652
+ )
653
+ end
654
+
655
+ sig do
656
+ override.returns(
657
+ {
658
+ insight_name:
659
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol,
660
+ insight_parameters:
661
+ T.nilable(
662
+ T::Array[
663
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightParameter
664
+ ]
665
+ ),
666
+ measurement: String,
667
+ operator:
668
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol,
669
+ threshold_mode:
670
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::TaggedSymbol,
671
+ value:
672
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Value::Variants
673
+ }
674
+ )
675
+ end
676
+ def to_hash
677
+ end
678
+
679
+ # The insight name to be evaluated.
680
+ module InsightName
681
+ extend Openlayer::Internal::Type::Enum
682
+
683
+ TaggedSymbol =
684
+ T.type_alias do
685
+ T.all(
686
+ Symbol,
687
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName
688
+ )
689
+ end
690
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
691
+
692
+ CHARACTER_LENGTH =
693
+ T.let(
694
+ :characterLength,
695
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
696
+ )
697
+ CLASS_IMBALANCE =
698
+ T.let(
699
+ :classImbalance,
700
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
701
+ )
702
+ EXPECT_COLUMN_A_TO_BE_IN_COLUMN_B =
703
+ T.let(
704
+ :expectColumnAToBeInColumnB,
705
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
706
+ )
707
+ COLUMN_AVERAGE =
708
+ T.let(
709
+ :columnAverage,
710
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
711
+ )
712
+ COLUMN_DRIFT =
713
+ T.let(
714
+ :columnDrift,
715
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
716
+ )
717
+ COLUMN_VALUES_MATCH =
718
+ T.let(
719
+ :columnValuesMatch,
720
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
721
+ )
722
+ CONFIDENCE_DISTRIBUTION =
723
+ T.let(
724
+ :confidenceDistribution,
725
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
726
+ )
727
+ CONFLICTING_LABEL_ROW_COUNT =
728
+ T.let(
729
+ :conflictingLabelRowCount,
730
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
731
+ )
732
+ CONTAINS_PII =
733
+ T.let(
734
+ :containsPii,
735
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
736
+ )
737
+ CONTAINS_VALID_URL =
738
+ T.let(
739
+ :containsValidUrl,
740
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
741
+ )
742
+ CORRELATED_FEATURES =
743
+ T.let(
744
+ :correlatedFeatures,
745
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
746
+ )
747
+ CUSTOM_METRIC =
748
+ T.let(
749
+ :customMetric,
750
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
751
+ )
752
+ DUPLICATE_ROW_COUNT =
753
+ T.let(
754
+ :duplicateRowCount,
755
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
756
+ )
757
+ EMPTY_FEATURES =
758
+ T.let(
759
+ :emptyFeatures,
760
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
761
+ )
762
+ FEATURE_DRIFT =
763
+ T.let(
764
+ :featureDrift,
765
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
766
+ )
767
+ FEATURE_PROFILE =
768
+ T.let(
769
+ :featureProfile,
770
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
771
+ )
772
+ GREAT_EXPECTATIONS =
773
+ T.let(
774
+ :greatExpectations,
775
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
776
+ )
777
+ GROUP_BY_COLUMN_STATS_CHECK =
778
+ T.let(
779
+ :groupByColumnStatsCheck,
780
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
781
+ )
782
+ ILL_FORMED_ROW_COUNT =
783
+ T.let(
784
+ :illFormedRowCount,
785
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
786
+ )
787
+ IS_CODE =
788
+ T.let(
789
+ :isCode,
790
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
791
+ )
792
+ IS_JSON =
793
+ T.let(
794
+ :isJson,
795
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
796
+ )
797
+ LLM_RUBRIC_V2 =
798
+ T.let(
799
+ :llmRubricV2,
800
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
801
+ )
802
+ LABEL_DRIFT =
803
+ T.let(
804
+ :labelDrift,
805
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
806
+ )
807
+ METRICS =
808
+ T.let(
809
+ :metrics,
810
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
811
+ )
812
+ NEW_CATEGORIES =
813
+ T.let(
814
+ :newCategories,
815
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
816
+ )
817
+ NEW_LABELS =
818
+ T.let(
819
+ :newLabels,
820
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
821
+ )
822
+ NULL_ROW_COUNT =
823
+ T.let(
824
+ :nullRowCount,
825
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
826
+ )
827
+ PP_SCORE =
828
+ T.let(
829
+ :ppScore,
830
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
831
+ )
832
+ QUASI_CONSTANT_FEATURES =
833
+ T.let(
834
+ :quasiConstantFeatures,
835
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
836
+ )
837
+ SENTENCE_LENGTH =
838
+ T.let(
839
+ :sentenceLength,
840
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
841
+ )
842
+ SIZE_RATIO =
843
+ T.let(
844
+ :sizeRatio,
845
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
846
+ )
847
+ SPECIAL_CHARACTERS =
848
+ T.let(
849
+ :specialCharacters,
850
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
851
+ )
852
+ STRING_VALIDATION =
853
+ T.let(
854
+ :stringValidation,
855
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
856
+ )
857
+ TRAIN_VAL_LEAKAGE_ROW_COUNT =
858
+ T.let(
859
+ :trainValLeakageRowCount,
860
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
861
+ )
862
+
863
+ sig do
864
+ override.returns(
865
+ T::Array[
866
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightName::TaggedSymbol
867
+ ]
868
+ )
869
+ end
870
+ def self.values
871
+ end
872
+ end
873
+
874
+ class InsightParameter < Openlayer::Internal::Type::BaseModel
875
+ OrHash =
876
+ T.type_alias do
877
+ T.any(
878
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::InsightParameter,
879
+ Openlayer::Internal::AnyHash
880
+ )
881
+ end
882
+
883
+ # The name of the insight filter.
884
+ sig { returns(String) }
885
+ attr_accessor :name
886
+
887
+ sig { returns(T.anything) }
888
+ attr_accessor :value
889
+
890
+ sig do
891
+ params(name: String, value: T.anything).returns(
892
+ T.attached_class
893
+ )
894
+ end
895
+ def self.new(
896
+ # The name of the insight filter.
897
+ name:,
898
+ value:
899
+ )
900
+ end
901
+
902
+ sig { override.returns({ name: String, value: T.anything }) }
903
+ def to_hash
904
+ end
905
+ end
906
+
907
+ # The operator to be used for the evaluation.
908
+ module Operator
909
+ extend Openlayer::Internal::Type::Enum
910
+
911
+ TaggedSymbol =
912
+ T.type_alias do
913
+ T.all(
914
+ Symbol,
915
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator
916
+ )
917
+ end
918
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
919
+
920
+ IS =
921
+ T.let(
922
+ :is,
923
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
924
+ )
925
+ GREATER =
926
+ T.let(
927
+ :">",
928
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
929
+ )
930
+ GREATER_OR_EQUALS =
931
+ T.let(
932
+ :">=",
933
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
934
+ )
935
+ LESS =
936
+ T.let(
937
+ :"<",
938
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
939
+ )
940
+ LESS_OR_EQUALS =
941
+ T.let(
942
+ :"<=",
943
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
944
+ )
945
+ NOT_EQUALS =
946
+ T.let(
947
+ :"!=",
948
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
949
+ )
950
+
951
+ sig do
952
+ override.returns(
953
+ T::Array[
954
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Operator::TaggedSymbol
955
+ ]
956
+ )
957
+ end
958
+ def self.values
959
+ end
960
+ end
961
+
962
+ # Whether to use automatic anomaly detection or manual thresholds
963
+ module ThresholdMode
964
+ extend Openlayer::Internal::Type::Enum
965
+
966
+ TaggedSymbol =
967
+ T.type_alias do
968
+ T.all(
969
+ Symbol,
970
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode
971
+ )
972
+ end
973
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
974
+
975
+ AUTOMATIC =
976
+ T.let(
977
+ :automatic,
978
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::TaggedSymbol
979
+ )
980
+ MANUAL =
981
+ T.let(
982
+ :manual,
983
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::TaggedSymbol
984
+ )
985
+
986
+ sig do
987
+ override.returns(
988
+ T::Array[
989
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::ThresholdMode::TaggedSymbol
990
+ ]
991
+ )
992
+ end
993
+ def self.values
994
+ end
995
+ end
996
+
997
+ # The value to be compared.
998
+ module Value
999
+ extend Openlayer::Internal::Type::Union
1000
+
1001
+ Variants =
1002
+ T.type_alias do
1003
+ T.any(Float, T::Boolean, String, T::Array[String])
1004
+ end
1005
+
1006
+ sig do
1007
+ override.returns(
1008
+ T::Array[
1009
+ Openlayer::Models::Projects::TestListResponse::Item::Threshold::Value::Variants
1010
+ ]
1011
+ )
1012
+ end
1013
+ def self.variants
1014
+ end
1015
+
1016
+ StringArray =
1017
+ T.let(
1018
+ Openlayer::Internal::Type::ArrayOf[String],
1019
+ Openlayer::Internal::Type::Converter
1020
+ )
1021
+ end
1022
+ end
1023
+
1024
+ # The test type.
1025
+ module Type
1026
+ extend Openlayer::Internal::Type::Enum
1027
+
1028
+ TaggedSymbol =
1029
+ T.type_alias do
1030
+ T.all(
1031
+ Symbol,
1032
+ Openlayer::Models::Projects::TestListResponse::Item::Type
1033
+ )
1034
+ end
1035
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1036
+
1037
+ INTEGRITY =
1038
+ T.let(
1039
+ :integrity,
1040
+ Openlayer::Models::Projects::TestListResponse::Item::Type::TaggedSymbol
1041
+ )
1042
+ CONSISTENCY =
1043
+ T.let(
1044
+ :consistency,
1045
+ Openlayer::Models::Projects::TestListResponse::Item::Type::TaggedSymbol
1046
+ )
1047
+ PERFORMANCE =
1048
+ T.let(
1049
+ :performance,
1050
+ Openlayer::Models::Projects::TestListResponse::Item::Type::TaggedSymbol
1051
+ )
1052
+
1053
+ sig do
1054
+ override.returns(
1055
+ T::Array[
1056
+ Openlayer::Models::Projects::TestListResponse::Item::Type::TaggedSymbol
1057
+ ]
1058
+ )
1059
+ end
1060
+ def self.values
1061
+ end
1062
+ end
1063
+ end
1064
+ end
1065
+ end
1066
+ end
1067
+ end