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