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,1022 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ class InferencePipelineRetrieveResponse < Openlayer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Openlayer::Models::InferencePipelineRetrieveResponse,
10
+ Openlayer::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The inference pipeline description.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :description
17
+
18
+ # The inference pipeline name.
19
+ sig { returns(String) }
20
+ attr_accessor :name
21
+
22
+ sig do
23
+ returns(
24
+ T.nilable(
25
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project
26
+ )
27
+ )
28
+ end
29
+ attr_reader :project
30
+
31
+ sig do
32
+ params(
33
+ project:
34
+ T.nilable(
35
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::OrHash
36
+ )
37
+ ).void
38
+ end
39
+ attr_writer :project
40
+
41
+ sig do
42
+ returns(
43
+ T.nilable(
44
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace
45
+ )
46
+ )
47
+ end
48
+ attr_reader :workspace
49
+
50
+ sig do
51
+ params(
52
+ workspace:
53
+ T.nilable(
54
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::OrHash
55
+ )
56
+ ).void
57
+ end
58
+ attr_writer :workspace
59
+
60
+ # The inference pipeline id.
61
+ sig { returns(String) }
62
+ attr_accessor :id
63
+
64
+ # The creation date.
65
+ sig { returns(Time) }
66
+ attr_accessor :date_created
67
+
68
+ # The last test evaluation date.
69
+ sig { returns(T.nilable(Time)) }
70
+ attr_accessor :date_last_evaluated
71
+
72
+ # The last data sample received date.
73
+ sig { returns(T.nilable(Time)) }
74
+ attr_accessor :date_last_sample_received
75
+
76
+ # The next test evaluation date.
77
+ sig { returns(T.nilable(Time)) }
78
+ attr_accessor :date_of_next_evaluation
79
+
80
+ # The last updated date.
81
+ sig { returns(Time) }
82
+ attr_accessor :date_updated
83
+
84
+ # The number of tests failing.
85
+ sig { returns(Integer) }
86
+ attr_accessor :failing_goal_count
87
+
88
+ sig do
89
+ returns(Openlayer::Models::InferencePipelineRetrieveResponse::Links)
90
+ end
91
+ attr_reader :links
92
+
93
+ sig do
94
+ params(
95
+ links:
96
+ Openlayer::Models::InferencePipelineRetrieveResponse::Links::OrHash
97
+ ).void
98
+ end
99
+ attr_writer :links
100
+
101
+ # The number of tests passing.
102
+ sig { returns(Integer) }
103
+ attr_accessor :passing_goal_count
104
+
105
+ # The project id.
106
+ sig { returns(String) }
107
+ attr_accessor :project_id
108
+
109
+ # The status of test evaluation for the inference pipeline.
110
+ sig do
111
+ returns(
112
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
113
+ )
114
+ end
115
+ attr_accessor :status
116
+
117
+ # The status message of test evaluation for the inference pipeline.
118
+ sig { returns(T.nilable(String)) }
119
+ attr_accessor :status_message
120
+
121
+ # The total number of tests.
122
+ sig { returns(Integer) }
123
+ attr_accessor :total_goal_count
124
+
125
+ # The workspace id.
126
+ sig { returns(T.nilable(String)) }
127
+ attr_reader :workspace_id
128
+
129
+ sig { params(workspace_id: String).void }
130
+ attr_writer :workspace_id
131
+
132
+ sig do
133
+ params(
134
+ id: String,
135
+ date_created: Time,
136
+ date_last_evaluated: T.nilable(Time),
137
+ date_last_sample_received: T.nilable(Time),
138
+ date_of_next_evaluation: T.nilable(Time),
139
+ date_updated: Time,
140
+ description: T.nilable(String),
141
+ failing_goal_count: Integer,
142
+ links:
143
+ Openlayer::Models::InferencePipelineRetrieveResponse::Links::OrHash,
144
+ name: String,
145
+ passing_goal_count: Integer,
146
+ project_id: String,
147
+ status:
148
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::OrSymbol,
149
+ status_message: T.nilable(String),
150
+ total_goal_count: Integer,
151
+ project:
152
+ T.nilable(
153
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::OrHash
154
+ ),
155
+ workspace:
156
+ T.nilable(
157
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::OrHash
158
+ ),
159
+ workspace_id: String
160
+ ).returns(T.attached_class)
161
+ end
162
+ def self.new(
163
+ # The inference pipeline id.
164
+ id:,
165
+ # The creation date.
166
+ date_created:,
167
+ # The last test evaluation date.
168
+ date_last_evaluated:,
169
+ # The last data sample received date.
170
+ date_last_sample_received:,
171
+ # The next test evaluation date.
172
+ date_of_next_evaluation:,
173
+ # The last updated date.
174
+ date_updated:,
175
+ # The inference pipeline description.
176
+ description:,
177
+ # The number of tests failing.
178
+ failing_goal_count:,
179
+ links:,
180
+ # The inference pipeline name.
181
+ name:,
182
+ # The number of tests passing.
183
+ passing_goal_count:,
184
+ # The project id.
185
+ project_id:,
186
+ # The status of test evaluation for the inference pipeline.
187
+ status:,
188
+ # The status message of test evaluation for the inference pipeline.
189
+ status_message:,
190
+ # The total number of tests.
191
+ total_goal_count:,
192
+ project: nil,
193
+ workspace: nil,
194
+ # The workspace id.
195
+ workspace_id: nil
196
+ )
197
+ end
198
+
199
+ sig do
200
+ override.returns(
201
+ {
202
+ id: String,
203
+ date_created: Time,
204
+ date_last_evaluated: T.nilable(Time),
205
+ date_last_sample_received: T.nilable(Time),
206
+ date_of_next_evaluation: T.nilable(Time),
207
+ date_updated: Time,
208
+ description: T.nilable(String),
209
+ failing_goal_count: Integer,
210
+ links: Openlayer::Models::InferencePipelineRetrieveResponse::Links,
211
+ name: String,
212
+ passing_goal_count: Integer,
213
+ project_id: String,
214
+ status:
215
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol,
216
+ status_message: T.nilable(String),
217
+ total_goal_count: Integer,
218
+ project:
219
+ T.nilable(
220
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project
221
+ ),
222
+ workspace:
223
+ T.nilable(
224
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace
225
+ ),
226
+ workspace_id: String
227
+ }
228
+ )
229
+ end
230
+ def to_hash
231
+ end
232
+
233
+ class Links < Openlayer::Internal::Type::BaseModel
234
+ OrHash =
235
+ T.type_alias do
236
+ T.any(
237
+ Openlayer::Models::InferencePipelineRetrieveResponse::Links,
238
+ Openlayer::Internal::AnyHash
239
+ )
240
+ end
241
+
242
+ sig { returns(String) }
243
+ attr_accessor :app
244
+
245
+ sig { params(app: String).returns(T.attached_class) }
246
+ def self.new(app:)
247
+ end
248
+
249
+ sig { override.returns({ app: String }) }
250
+ def to_hash
251
+ end
252
+ end
253
+
254
+ # The status of test evaluation for the inference pipeline.
255
+ module Status
256
+ extend Openlayer::Internal::Type::Enum
257
+
258
+ TaggedSymbol =
259
+ T.type_alias do
260
+ T.all(
261
+ Symbol,
262
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status
263
+ )
264
+ end
265
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
266
+
267
+ QUEUED =
268
+ T.let(
269
+ :queued,
270
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
271
+ )
272
+ RUNNING =
273
+ T.let(
274
+ :running,
275
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
276
+ )
277
+ PAUSED =
278
+ T.let(
279
+ :paused,
280
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
281
+ )
282
+ FAILED =
283
+ T.let(
284
+ :failed,
285
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
286
+ )
287
+ COMPLETED =
288
+ T.let(
289
+ :completed,
290
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
291
+ )
292
+ UNKNOWN =
293
+ T.let(
294
+ :unknown,
295
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
296
+ )
297
+
298
+ sig do
299
+ override.returns(
300
+ T::Array[
301
+ Openlayer::Models::InferencePipelineRetrieveResponse::Status::TaggedSymbol
302
+ ]
303
+ )
304
+ end
305
+ def self.values
306
+ end
307
+ end
308
+
309
+ class Project < Openlayer::Internal::Type::BaseModel
310
+ OrHash =
311
+ T.type_alias do
312
+ T.any(
313
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project,
314
+ Openlayer::Internal::AnyHash
315
+ )
316
+ end
317
+
318
+ # The project name.
319
+ sig { returns(String) }
320
+ attr_accessor :name
321
+
322
+ # The task type of the project.
323
+ sig do
324
+ returns(
325
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol
326
+ )
327
+ end
328
+ attr_accessor :task_type
329
+
330
+ # The project description.
331
+ sig { returns(T.nilable(String)) }
332
+ attr_accessor :description
333
+
334
+ # The project id.
335
+ sig { returns(String) }
336
+ attr_accessor :id
337
+
338
+ # The project creator id.
339
+ sig { returns(T.nilable(String)) }
340
+ attr_accessor :creator_id
341
+
342
+ # The project creation date.
343
+ sig { returns(Time) }
344
+ attr_accessor :date_created
345
+
346
+ # The project last updated date.
347
+ sig { returns(Time) }
348
+ attr_accessor :date_updated
349
+
350
+ # The number of tests in the development mode of the project.
351
+ sig { returns(Integer) }
352
+ attr_accessor :development_goal_count
353
+
354
+ # The total number of tests in the project.
355
+ sig { returns(Integer) }
356
+ attr_accessor :goal_count
357
+
358
+ # The number of inference pipelines in the project.
359
+ sig { returns(Integer) }
360
+ attr_accessor :inference_pipeline_count
361
+
362
+ # Links to the project.
363
+ sig do
364
+ returns(
365
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Links
366
+ )
367
+ end
368
+ attr_reader :links
369
+
370
+ sig do
371
+ params(
372
+ links:
373
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Links::OrHash
374
+ ).void
375
+ end
376
+ attr_writer :links
377
+
378
+ # The number of tests in the monitoring mode of the project.
379
+ sig { returns(Integer) }
380
+ attr_accessor :monitoring_goal_count
381
+
382
+ # The source of the project.
383
+ sig do
384
+ returns(
385
+ T.nilable(
386
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::TaggedSymbol
387
+ )
388
+ )
389
+ end
390
+ attr_accessor :source
391
+
392
+ # The number of versions (commits) in the project.
393
+ sig { returns(Integer) }
394
+ attr_accessor :version_count
395
+
396
+ # The workspace id.
397
+ sig { returns(T.nilable(String)) }
398
+ attr_accessor :workspace_id
399
+
400
+ sig do
401
+ returns(
402
+ T.nilable(
403
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::GitRepo
404
+ )
405
+ )
406
+ end
407
+ attr_reader :git_repo
408
+
409
+ sig do
410
+ params(
411
+ git_repo:
412
+ T.nilable(
413
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::GitRepo::OrHash
414
+ )
415
+ ).void
416
+ end
417
+ attr_writer :git_repo
418
+
419
+ sig do
420
+ params(
421
+ id: String,
422
+ creator_id: T.nilable(String),
423
+ date_created: Time,
424
+ date_updated: Time,
425
+ development_goal_count: Integer,
426
+ goal_count: Integer,
427
+ inference_pipeline_count: Integer,
428
+ links:
429
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Links::OrHash,
430
+ monitoring_goal_count: Integer,
431
+ name: String,
432
+ source:
433
+ T.nilable(
434
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::OrSymbol
435
+ ),
436
+ task_type:
437
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::OrSymbol,
438
+ version_count: Integer,
439
+ workspace_id: T.nilable(String),
440
+ description: T.nilable(String),
441
+ git_repo:
442
+ T.nilable(
443
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::GitRepo::OrHash
444
+ )
445
+ ).returns(T.attached_class)
446
+ end
447
+ def self.new(
448
+ # The project id.
449
+ id:,
450
+ # The project creator id.
451
+ creator_id:,
452
+ # The project creation date.
453
+ date_created:,
454
+ # The project last updated date.
455
+ date_updated:,
456
+ # The number of tests in the development mode of the project.
457
+ development_goal_count:,
458
+ # The total number of tests in the project.
459
+ goal_count:,
460
+ # The number of inference pipelines in the project.
461
+ inference_pipeline_count:,
462
+ # Links to the project.
463
+ links:,
464
+ # The number of tests in the monitoring mode of the project.
465
+ monitoring_goal_count:,
466
+ # The project name.
467
+ name:,
468
+ # The source of the project.
469
+ source:,
470
+ # The task type of the project.
471
+ task_type:,
472
+ # The number of versions (commits) in the project.
473
+ version_count:,
474
+ # The workspace id.
475
+ workspace_id:,
476
+ # The project description.
477
+ description: nil,
478
+ git_repo: nil
479
+ )
480
+ end
481
+
482
+ sig do
483
+ override.returns(
484
+ {
485
+ id: String,
486
+ creator_id: T.nilable(String),
487
+ date_created: Time,
488
+ date_updated: Time,
489
+ development_goal_count: Integer,
490
+ goal_count: Integer,
491
+ inference_pipeline_count: Integer,
492
+ links:
493
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Links,
494
+ monitoring_goal_count: Integer,
495
+ name: String,
496
+ source:
497
+ T.nilable(
498
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::TaggedSymbol
499
+ ),
500
+ task_type:
501
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol,
502
+ version_count: Integer,
503
+ workspace_id: T.nilable(String),
504
+ description: T.nilable(String),
505
+ git_repo:
506
+ T.nilable(
507
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::GitRepo
508
+ )
509
+ }
510
+ )
511
+ end
512
+ def to_hash
513
+ end
514
+
515
+ class Links < Openlayer::Internal::Type::BaseModel
516
+ OrHash =
517
+ T.type_alias do
518
+ T.any(
519
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Links,
520
+ Openlayer::Internal::AnyHash
521
+ )
522
+ end
523
+
524
+ sig { returns(String) }
525
+ attr_accessor :app
526
+
527
+ # Links to the project.
528
+ sig { params(app: String).returns(T.attached_class) }
529
+ def self.new(app:)
530
+ end
531
+
532
+ sig { override.returns({ app: String }) }
533
+ def to_hash
534
+ end
535
+ end
536
+
537
+ # The source of the project.
538
+ module Source
539
+ extend Openlayer::Internal::Type::Enum
540
+
541
+ TaggedSymbol =
542
+ T.type_alias do
543
+ T.all(
544
+ Symbol,
545
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source
546
+ )
547
+ end
548
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
549
+
550
+ WEB =
551
+ T.let(
552
+ :web,
553
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::TaggedSymbol
554
+ )
555
+ API =
556
+ T.let(
557
+ :api,
558
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::TaggedSymbol
559
+ )
560
+ NULL =
561
+ T.let(
562
+ :null,
563
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::TaggedSymbol
564
+ )
565
+
566
+ sig do
567
+ override.returns(
568
+ T::Array[
569
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::Source::TaggedSymbol
570
+ ]
571
+ )
572
+ end
573
+ def self.values
574
+ end
575
+ end
576
+
577
+ # The task type of the project.
578
+ module TaskType
579
+ extend Openlayer::Internal::Type::Enum
580
+
581
+ TaggedSymbol =
582
+ T.type_alias do
583
+ T.all(
584
+ Symbol,
585
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType
586
+ )
587
+ end
588
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
589
+
590
+ LLM_BASE =
591
+ T.let(
592
+ :"llm-base",
593
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol
594
+ )
595
+ TABULAR_CLASSIFICATION =
596
+ T.let(
597
+ :"tabular-classification",
598
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol
599
+ )
600
+ TABULAR_REGRESSION =
601
+ T.let(
602
+ :"tabular-regression",
603
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol
604
+ )
605
+ TEXT_CLASSIFICATION =
606
+ T.let(
607
+ :"text-classification",
608
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol
609
+ )
610
+
611
+ sig do
612
+ override.returns(
613
+ T::Array[
614
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::TaskType::TaggedSymbol
615
+ ]
616
+ )
617
+ end
618
+ def self.values
619
+ end
620
+ end
621
+
622
+ class GitRepo < Openlayer::Internal::Type::BaseModel
623
+ OrHash =
624
+ T.type_alias do
625
+ T.any(
626
+ Openlayer::Models::InferencePipelineRetrieveResponse::Project::GitRepo,
627
+ Openlayer::Internal::AnyHash
628
+ )
629
+ end
630
+
631
+ sig { returns(String) }
632
+ attr_accessor :git_account_id
633
+
634
+ sig { returns(Integer) }
635
+ attr_accessor :git_id
636
+
637
+ sig { returns(T.nilable(String)) }
638
+ attr_reader :branch
639
+
640
+ sig { params(branch: String).void }
641
+ attr_writer :branch
642
+
643
+ sig { returns(T.nilable(String)) }
644
+ attr_reader :root_dir
645
+
646
+ sig { params(root_dir: String).void }
647
+ attr_writer :root_dir
648
+
649
+ sig { returns(String) }
650
+ attr_accessor :id
651
+
652
+ sig { returns(Time) }
653
+ attr_accessor :date_connected
654
+
655
+ sig { returns(Time) }
656
+ attr_accessor :date_updated
657
+
658
+ sig { returns(String) }
659
+ attr_accessor :name
660
+
661
+ sig { returns(T::Boolean) }
662
+ attr_accessor :private
663
+
664
+ sig { returns(String) }
665
+ attr_accessor :project_id
666
+
667
+ sig { returns(String) }
668
+ attr_accessor :slug
669
+
670
+ sig { returns(String) }
671
+ attr_accessor :url
672
+
673
+ sig do
674
+ params(
675
+ id: String,
676
+ date_connected: Time,
677
+ date_updated: Time,
678
+ git_account_id: String,
679
+ git_id: Integer,
680
+ name: String,
681
+ private: T::Boolean,
682
+ project_id: String,
683
+ slug: String,
684
+ url: String,
685
+ branch: String,
686
+ root_dir: String
687
+ ).returns(T.attached_class)
688
+ end
689
+ def self.new(
690
+ id:,
691
+ date_connected:,
692
+ date_updated:,
693
+ git_account_id:,
694
+ git_id:,
695
+ name:,
696
+ private:,
697
+ project_id:,
698
+ slug:,
699
+ url:,
700
+ branch: nil,
701
+ root_dir: nil
702
+ )
703
+ end
704
+
705
+ sig do
706
+ override.returns(
707
+ {
708
+ id: String,
709
+ date_connected: Time,
710
+ date_updated: Time,
711
+ git_account_id: String,
712
+ git_id: Integer,
713
+ name: String,
714
+ private: T::Boolean,
715
+ project_id: String,
716
+ slug: String,
717
+ url: String,
718
+ branch: String,
719
+ root_dir: String
720
+ }
721
+ )
722
+ end
723
+ def to_hash
724
+ end
725
+ end
726
+ end
727
+
728
+ class Workspace < Openlayer::Internal::Type::BaseModel
729
+ OrHash =
730
+ T.type_alias do
731
+ T.any(
732
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace,
733
+ Openlayer::Internal::AnyHash
734
+ )
735
+ end
736
+
737
+ # The workspace name.
738
+ sig { returns(String) }
739
+ attr_accessor :name
740
+
741
+ # The workspace slug.
742
+ sig { returns(String) }
743
+ attr_accessor :slug
744
+
745
+ # Whether the workspace only allows SAML authentication.
746
+ sig { returns(T.nilable(T::Boolean)) }
747
+ attr_reader :saml_only_access
748
+
749
+ sig { params(saml_only_access: T::Boolean).void }
750
+ attr_writer :saml_only_access
751
+
752
+ sig { returns(T.nilable(T::Array[String])) }
753
+ attr_reader :wildcard_domains
754
+
755
+ sig { params(wildcard_domains: T::Array[String]).void }
756
+ attr_writer :wildcard_domains
757
+
758
+ # The workspace id.
759
+ sig { returns(String) }
760
+ attr_accessor :id
761
+
762
+ # The workspace creator id.
763
+ sig { returns(T.nilable(String)) }
764
+ attr_accessor :creator_id
765
+
766
+ # The workspace creation date.
767
+ sig { returns(Time) }
768
+ attr_accessor :date_created
769
+
770
+ # The workspace last updated date.
771
+ sig { returns(Time) }
772
+ attr_accessor :date_updated
773
+
774
+ # The number of invites in the workspace.
775
+ sig { returns(Integer) }
776
+ attr_accessor :invite_count
777
+
778
+ # The number of members in the workspace.
779
+ sig { returns(Integer) }
780
+ attr_accessor :member_count
781
+
782
+ # The end date of the current billing period.
783
+ sig { returns(T.nilable(Time)) }
784
+ attr_accessor :period_end_date
785
+
786
+ # The start date of the current billing period.
787
+ sig { returns(T.nilable(Time)) }
788
+ attr_accessor :period_start_date
789
+
790
+ # The number of projects in the workspace.
791
+ sig { returns(Integer) }
792
+ attr_accessor :project_count
793
+
794
+ sig do
795
+ returns(
796
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
797
+ )
798
+ end
799
+ attr_accessor :status
800
+
801
+ sig do
802
+ returns(
803
+ T.nilable(
804
+ T::Array[
805
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::MonthlyUsage
806
+ ]
807
+ )
808
+ )
809
+ end
810
+ attr_reader :monthly_usage
811
+
812
+ sig do
813
+ params(
814
+ monthly_usage:
815
+ T::Array[
816
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::MonthlyUsage::OrHash
817
+ ]
818
+ ).void
819
+ end
820
+ attr_writer :monthly_usage
821
+
822
+ sig do
823
+ params(
824
+ id: String,
825
+ creator_id: T.nilable(String),
826
+ date_created: Time,
827
+ date_updated: Time,
828
+ invite_count: Integer,
829
+ member_count: Integer,
830
+ name: String,
831
+ period_end_date: T.nilable(Time),
832
+ period_start_date: T.nilable(Time),
833
+ project_count: Integer,
834
+ slug: String,
835
+ status:
836
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::OrSymbol,
837
+ monthly_usage:
838
+ T::Array[
839
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::MonthlyUsage::OrHash
840
+ ],
841
+ saml_only_access: T::Boolean,
842
+ wildcard_domains: T::Array[String]
843
+ ).returns(T.attached_class)
844
+ end
845
+ def self.new(
846
+ # The workspace id.
847
+ id:,
848
+ # The workspace creator id.
849
+ creator_id:,
850
+ # The workspace creation date.
851
+ date_created:,
852
+ # The workspace last updated date.
853
+ date_updated:,
854
+ # The number of invites in the workspace.
855
+ invite_count:,
856
+ # The number of members in the workspace.
857
+ member_count:,
858
+ # The workspace name.
859
+ name:,
860
+ # The end date of the current billing period.
861
+ period_end_date:,
862
+ # The start date of the current billing period.
863
+ period_start_date:,
864
+ # The number of projects in the workspace.
865
+ project_count:,
866
+ # The workspace slug.
867
+ slug:,
868
+ status:,
869
+ monthly_usage: nil,
870
+ # Whether the workspace only allows SAML authentication.
871
+ saml_only_access: nil,
872
+ wildcard_domains: nil
873
+ )
874
+ end
875
+
876
+ sig do
877
+ override.returns(
878
+ {
879
+ id: String,
880
+ creator_id: T.nilable(String),
881
+ date_created: Time,
882
+ date_updated: Time,
883
+ invite_count: Integer,
884
+ member_count: Integer,
885
+ name: String,
886
+ period_end_date: T.nilable(Time),
887
+ period_start_date: T.nilable(Time),
888
+ project_count: Integer,
889
+ slug: String,
890
+ status:
891
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol,
892
+ invite_code: String,
893
+ monthly_usage:
894
+ T::Array[
895
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::MonthlyUsage
896
+ ],
897
+ saml_only_access: T::Boolean,
898
+ wildcard_domains: T::Array[String]
899
+ }
900
+ )
901
+ end
902
+ def to_hash
903
+ end
904
+
905
+ module Status
906
+ extend Openlayer::Internal::Type::Enum
907
+
908
+ TaggedSymbol =
909
+ T.type_alias do
910
+ T.all(
911
+ Symbol,
912
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status
913
+ )
914
+ end
915
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
916
+
917
+ ACTIVE =
918
+ T.let(
919
+ :active,
920
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
921
+ )
922
+ PAST_DUE =
923
+ T.let(
924
+ :past_due,
925
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
926
+ )
927
+ UNPAID =
928
+ T.let(
929
+ :unpaid,
930
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
931
+ )
932
+ CANCELED =
933
+ T.let(
934
+ :canceled,
935
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
936
+ )
937
+ INCOMPLETE =
938
+ T.let(
939
+ :incomplete,
940
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
941
+ )
942
+ INCOMPLETE_EXPIRED =
943
+ T.let(
944
+ :incomplete_expired,
945
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
946
+ )
947
+ TRIALING =
948
+ T.let(
949
+ :trialing,
950
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
951
+ )
952
+ PAUSED =
953
+ T.let(
954
+ :paused,
955
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
956
+ )
957
+
958
+ sig do
959
+ override.returns(
960
+ T::Array[
961
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::Status::TaggedSymbol
962
+ ]
963
+ )
964
+ end
965
+ def self.values
966
+ end
967
+ end
968
+
969
+ class MonthlyUsage < Openlayer::Internal::Type::BaseModel
970
+ OrHash =
971
+ T.type_alias do
972
+ T.any(
973
+ Openlayer::Models::InferencePipelineRetrieveResponse::Workspace::MonthlyUsage,
974
+ Openlayer::Internal::AnyHash
975
+ )
976
+ end
977
+
978
+ sig { returns(T.nilable(Integer)) }
979
+ attr_accessor :execution_time_ms
980
+
981
+ sig { returns(T.nilable(Date)) }
982
+ attr_reader :month_year
983
+
984
+ sig { params(month_year: Date).void }
985
+ attr_writer :month_year
986
+
987
+ sig { returns(T.nilable(Integer)) }
988
+ attr_reader :prediction_count
989
+
990
+ sig { params(prediction_count: Integer).void }
991
+ attr_writer :prediction_count
992
+
993
+ sig do
994
+ params(
995
+ execution_time_ms: T.nilable(Integer),
996
+ month_year: Date,
997
+ prediction_count: Integer
998
+ ).returns(T.attached_class)
999
+ end
1000
+ def self.new(
1001
+ execution_time_ms: nil,
1002
+ month_year: nil,
1003
+ prediction_count: nil
1004
+ )
1005
+ end
1006
+
1007
+ sig do
1008
+ override.returns(
1009
+ {
1010
+ execution_time_ms: T.nilable(Integer),
1011
+ month_year: Date,
1012
+ prediction_count: Integer
1013
+ }
1014
+ )
1015
+ end
1016
+ def to_hash
1017
+ end
1018
+ end
1019
+ end
1020
+ end
1021
+ end
1022
+ end