openlayer 0.14.1 → 0.16.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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +1 -1
  4. data/lib/openlayer/client.rb +8 -0
  5. data/lib/openlayer/models/background_task_retrieve_params.rb +20 -0
  6. data/lib/openlayer/models/background_task_retrieve_response.rb +81 -0
  7. data/lib/openlayer/models/governance/framework_create_params.rb +143 -0
  8. data/lib/openlayer/models/governance/framework_create_response.rb +407 -0
  9. data/lib/openlayer/models/governance/framework_export_params.rb +31 -0
  10. data/lib/openlayer/models/governance/framework_export_response.rb +32 -0
  11. data/lib/openlayer/models/governance/framework_list_params.rb +148 -0
  12. data/lib/openlayer/models/governance/framework_list_project_rule_stats_params.rb +74 -0
  13. data/lib/openlayer/models/governance/framework_list_project_rule_stats_response.rb +277 -0
  14. data/lib/openlayer/models/governance/framework_list_projects_params.rb +39 -0
  15. data/lib/openlayer/models/governance/framework_list_projects_response.rb +315 -0
  16. data/lib/openlayer/models/governance/framework_list_response.rb +418 -0
  17. data/lib/openlayer/models/governance/framework_list_rules_params.rb +39 -0
  18. data/lib/openlayer/models/governance/framework_list_rules_response.rb +656 -0
  19. data/lib/openlayer/models/governance/framework_retrieve_params.rb +22 -0
  20. data/lib/openlayer/models/governance/framework_retrieve_response.rb +407 -0
  21. data/lib/openlayer/models/governance/framework_update_params.rb +200 -0
  22. data/lib/openlayer/models/governance/framework_update_response.rb +407 -0
  23. data/lib/openlayer/models/governance/frameworks/document_list_params.rb +41 -0
  24. data/lib/openlayer/models/governance/frameworks/document_list_response.rb +572 -0
  25. data/lib/openlayer/models/governance/frameworks/document_retrieve_params.rb +30 -0
  26. data/lib/openlayer/models/governance/frameworks/document_retrieve_response.rb +561 -0
  27. data/lib/openlayer/models/governance/frameworks/section_list_rules_params.rb +96 -0
  28. data/lib/openlayer/models/governance/frameworks/section_list_rules_response.rb +660 -0
  29. data/lib/openlayer/models/governance/frameworks/subsection_list_rules_params.rb +88 -0
  30. data/lib/openlayer/models/governance/frameworks/subsection_list_rules_response.rb +660 -0
  31. data/lib/openlayer/models/governance/rule_create_params.rb +164 -0
  32. data/lib/openlayer/models/governance/rule_create_response.rb +638 -0
  33. data/lib/openlayer/models/governance/rule_delete_params.rb +22 -0
  34. data/lib/openlayer/models/governance/rule_list_params.rb +231 -0
  35. data/lib/openlayer/models/governance/rule_list_response.rb +654 -0
  36. data/lib/openlayer/models/governance/rule_result_create_evidence_params.rb +68 -0
  37. data/lib/openlayer/models/governance/rule_result_create_evidence_response.rb +90 -0
  38. data/lib/openlayer/models/governance/rule_result_list_evidence_params.rb +39 -0
  39. data/lib/openlayer/models/governance/rule_result_list_evidence_response.rb +101 -0
  40. data/lib/openlayer/models/governance/rule_result_list_params.rb +149 -0
  41. data/lib/openlayer/models/governance/rule_result_list_response.rb +255 -0
  42. data/lib/openlayer/models/governance/rule_result_retrieve_params.rb +22 -0
  43. data/lib/openlayer/models/governance/rule_result_retrieve_response.rb +243 -0
  44. data/lib/openlayer/models/governance/rule_result_update_params.rb +140 -0
  45. data/lib/openlayer/models/governance/rule_result_update_response.rb +242 -0
  46. data/lib/openlayer/models/governance/rule_retrieve_params.rb +22 -0
  47. data/lib/openlayer/models/governance/rule_retrieve_response.rb +642 -0
  48. data/lib/openlayer/models/governance/rule_stat_retrieve_params.rb +39 -0
  49. data/lib/openlayer/models/governance/rule_stat_retrieve_response.rb +504 -0
  50. data/lib/openlayer/models/governance/rule_tag_list_params.rb +39 -0
  51. data/lib/openlayer/models/governance/rule_tag_list_response.rb +88 -0
  52. data/lib/openlayer/models/governance/rule_update_params.rb +77 -0
  53. data/lib/openlayer/models/governance/rule_update_response.rb +638 -0
  54. data/lib/openlayer/models/inference_pipeline_retrieve_response.rb +38 -2
  55. data/lib/openlayer/models/inference_pipeline_update_response.rb +37 -2
  56. data/lib/openlayer/models/project_create_params.rb +37 -1
  57. data/lib/openlayer/models/project_create_response.rb +37 -2
  58. data/lib/openlayer/models/project_list_response.rb +37 -2
  59. data/lib/openlayer/models/project_update_params.rb +73 -0
  60. data/lib/openlayer/models/project_update_response.rb +297 -0
  61. data/lib/openlayer/models/projects/inference_pipeline_create_params.rb +38 -2
  62. data/lib/openlayer/models/projects/inference_pipeline_create_response.rb +38 -2
  63. data/lib/openlayer/models/projects/inference_pipeline_list_response.rb +41 -2
  64. data/lib/openlayer/models/storage/presigned_url_retrieve_params.rb +24 -0
  65. data/lib/openlayer/models/storage/presigned_url_retrieve_response.rb +19 -0
  66. data/lib/openlayer/models.rb +6 -0
  67. data/lib/openlayer/resources/background_tasks.rb +38 -0
  68. data/lib/openlayer/resources/governance/frameworks/documents.rb +80 -0
  69. data/lib/openlayer/resources/governance/frameworks/sections.rb +72 -0
  70. data/lib/openlayer/resources/governance/frameworks/subsections.rb +69 -0
  71. data/lib/openlayer/resources/governance/frameworks.rb +344 -0
  72. data/lib/openlayer/resources/governance/rule_results.rb +212 -0
  73. data/lib/openlayer/resources/governance/rule_stats.rb +47 -0
  74. data/lib/openlayer/resources/governance/rule_tags.rb +47 -0
  75. data/lib/openlayer/resources/governance/rules.rb +241 -0
  76. data/lib/openlayer/resources/governance.rb +34 -0
  77. data/lib/openlayer/resources/projects.rb +49 -1
  78. data/lib/openlayer/resources/storage/presigned_url.rb +32 -0
  79. data/lib/openlayer/version.rb +1 -1
  80. data/lib/openlayer.rb +63 -0
  81. data/rbi/openlayer/client.rbi +6 -0
  82. data/rbi/openlayer/models/background_task_retrieve_params.rbi +38 -0
  83. data/rbi/openlayer/models/background_task_retrieve_response.rbi +102 -0
  84. data/rbi/openlayer/models/governance/framework_create_params.rbi +298 -0
  85. data/rbi/openlayer/models/governance/framework_create_response.rbi +730 -0
  86. data/rbi/openlayer/models/governance/framework_export_params.rbi +54 -0
  87. data/rbi/openlayer/models/governance/framework_export_response.rbi +48 -0
  88. data/rbi/openlayer/models/governance/framework_list_params.rbi +310 -0
  89. data/rbi/openlayer/models/governance/framework_list_project_rule_stats_params.rbi +178 -0
  90. data/rbi/openlayer/models/governance/framework_list_project_rule_stats_response.rbi +440 -0
  91. data/rbi/openlayer/models/governance/framework_list_projects_params.rbi +68 -0
  92. data/rbi/openlayer/models/governance/framework_list_projects_response.rbi +498 -0
  93. data/rbi/openlayer/models/governance/framework_list_response.rbi +771 -0
  94. data/rbi/openlayer/models/governance/framework_list_rules_params.rbi +68 -0
  95. data/rbi/openlayer/models/governance/framework_list_rules_response.rbi +1298 -0
  96. data/rbi/openlayer/models/governance/framework_retrieve_params.rbi +40 -0
  97. data/rbi/openlayer/models/governance/framework_retrieve_response.rbi +730 -0
  98. data/rbi/openlayer/models/governance/framework_update_params.rbi +425 -0
  99. data/rbi/openlayer/models/governance/framework_update_response.rbi +730 -0
  100. data/rbi/openlayer/models/governance/frameworks/document_list_params.rbi +70 -0
  101. data/rbi/openlayer/models/governance/frameworks/document_list_response.rbi +1012 -0
  102. data/rbi/openlayer/models/governance/frameworks/document_retrieve_params.rbi +50 -0
  103. data/rbi/openlayer/models/governance/frameworks/document_retrieve_response.rbi +968 -0
  104. data/rbi/openlayer/models/governance/frameworks/section_list_rules_params.rbi +193 -0
  105. data/rbi/openlayer/models/governance/frameworks/section_list_rules_response.rbi +1302 -0
  106. data/rbi/openlayer/models/governance/frameworks/subsection_list_rules_params.rbi +182 -0
  107. data/rbi/openlayer/models/governance/frameworks/subsection_list_rules_response.rbi +1302 -0
  108. data/rbi/openlayer/models/governance/rule_create_params.rbi +276 -0
  109. data/rbi/openlayer/models/governance/rule_create_response.rbi +1253 -0
  110. data/rbi/openlayer/models/governance/rule_delete_params.rbi +40 -0
  111. data/rbi/openlayer/models/governance/rule_list_params.rbi +486 -0
  112. data/rbi/openlayer/models/governance/rule_list_response.rbi +1294 -0
  113. data/rbi/openlayer/models/governance/rule_result_create_evidence_params.rbi +88 -0
  114. data/rbi/openlayer/models/governance/rule_result_create_evidence_response.rbi +108 -0
  115. data/rbi/openlayer/models/governance/rule_result_list_evidence_params.rbi +68 -0
  116. data/rbi/openlayer/models/governance/rule_result_list_evidence_response.rbi +151 -0
  117. data/rbi/openlayer/models/governance/rule_result_list_params.rbi +322 -0
  118. data/rbi/openlayer/models/governance/rule_result_list_response.rbi +567 -0
  119. data/rbi/openlayer/models/governance/rule_result_retrieve_params.rbi +43 -0
  120. data/rbi/openlayer/models/governance/rule_result_retrieve_response.rbi +524 -0
  121. data/rbi/openlayer/models/governance/rule_result_update_params.rbi +373 -0
  122. data/rbi/openlayer/models/governance/rule_result_update_response.rbi +524 -0
  123. data/rbi/openlayer/models/governance/rule_retrieve_params.rbi +40 -0
  124. data/rbi/openlayer/models/governance/rule_retrieve_response.rbi +1253 -0
  125. data/rbi/openlayer/models/governance/rule_stat_retrieve_params.rbi +68 -0
  126. data/rbi/openlayer/models/governance/rule_stat_retrieve_response.rbi +874 -0
  127. data/rbi/openlayer/models/governance/rule_tag_list_params.rbi +68 -0
  128. data/rbi/openlayer/models/governance/rule_tag_list_response.rbi +139 -0
  129. data/rbi/openlayer/models/governance/rule_update_params.rbi +106 -0
  130. data/rbi/openlayer/models/governance/rule_update_response.rbi +1253 -0
  131. data/rbi/openlayer/models/inference_pipeline_retrieve_response.rbi +37 -8
  132. data/rbi/openlayer/models/inference_pipeline_update_response.rbi +37 -8
  133. data/rbi/openlayer/models/project_create_params.rbi +34 -0
  134. data/rbi/openlayer/models/project_create_response.rbi +39 -8
  135. data/rbi/openlayer/models/project_list_response.rbi +39 -8
  136. data/rbi/openlayer/models/project_update_params.rbi +94 -0
  137. data/rbi/openlayer/models/project_update_response.rbi +432 -0
  138. data/rbi/openlayer/models/projects/inference_pipeline_create_params.rbi +37 -8
  139. data/rbi/openlayer/models/projects/inference_pipeline_create_response.rbi +37 -8
  140. data/rbi/openlayer/models/projects/inference_pipeline_list_response.rbi +37 -8
  141. data/rbi/openlayer/models/storage/presigned_url_retrieve_params.rbi +45 -0
  142. data/rbi/openlayer/models/storage/presigned_url_retrieve_response.rbi +32 -0
  143. data/rbi/openlayer/models.rbi +6 -0
  144. data/rbi/openlayer/resources/background_tasks.rbi +30 -0
  145. data/rbi/openlayer/resources/governance/frameworks/documents.rbi +65 -0
  146. data/rbi/openlayer/resources/governance/frameworks/sections.rbi +60 -0
  147. data/rbi/openlayer/resources/governance/frameworks/subsections.rbi +56 -0
  148. data/rbi/openlayer/resources/governance/frameworks.rbi +314 -0
  149. data/rbi/openlayer/resources/governance/rule_results.rbi +193 -0
  150. data/rbi/openlayer/resources/governance/rule_stats.rbi +38 -0
  151. data/rbi/openlayer/resources/governance/rule_tags.rbi +38 -0
  152. data/rbi/openlayer/resources/governance/rules.rbi +233 -0
  153. data/rbi/openlayer/resources/governance.rbi +27 -0
  154. data/rbi/openlayer/resources/projects.rbi +46 -0
  155. data/rbi/openlayer/resources/storage/presigned_url.rbi +23 -0
  156. data/sig/openlayer/client.rbs +4 -0
  157. data/sig/openlayer/models/background_task_retrieve_params.rbs +23 -0
  158. data/sig/openlayer/models/background_task_retrieve_response.rbs +55 -0
  159. data/sig/openlayer/models/governance/framework_create_params.rbs +124 -0
  160. data/sig/openlayer/models/governance/framework_create_response.rbs +293 -0
  161. data/sig/openlayer/models/governance/framework_export_params.rbs +30 -0
  162. data/sig/openlayer/models/governance/framework_export_response.rbs +21 -0
  163. data/sig/openlayer/models/governance/framework_list_params.rbs +145 -0
  164. data/sig/openlayer/models/governance/framework_list_project_rule_stats_params.rbs +87 -0
  165. data/sig/openlayer/models/governance/framework_list_project_rule_stats_response.rbs +232 -0
  166. data/sig/openlayer/models/governance/framework_list_projects_params.rbs +38 -0
  167. data/sig/openlayer/models/governance/framework_list_projects_response.rbs +248 -0
  168. data/sig/openlayer/models/governance/framework_list_response.rbs +314 -0
  169. data/sig/openlayer/models/governance/framework_list_rules_params.rbs +38 -0
  170. data/sig/openlayer/models/governance/framework_list_rules_response.rbs +547 -0
  171. data/sig/openlayer/models/governance/framework_retrieve_params.rbs +25 -0
  172. data/sig/openlayer/models/governance/framework_retrieve_response.rbs +293 -0
  173. data/sig/openlayer/models/governance/framework_update_params.rbs +175 -0
  174. data/sig/openlayer/models/governance/framework_update_response.rbs +293 -0
  175. data/sig/openlayer/models/governance/frameworks/document_list_params.rbs +40 -0
  176. data/sig/openlayer/models/governance/frameworks/document_list_response.rbs +435 -0
  177. data/sig/openlayer/models/governance/frameworks/document_retrieve_params.rbs +32 -0
  178. data/sig/openlayer/models/governance/frameworks/document_retrieve_response.rbs +418 -0
  179. data/sig/openlayer/models/governance/frameworks/section_list_rules_params.rbs +102 -0
  180. data/sig/openlayer/models/governance/frameworks/section_list_rules_response.rbs +549 -0
  181. data/sig/openlayer/models/governance/frameworks/subsection_list_rules_params.rbs +95 -0
  182. data/sig/openlayer/models/governance/frameworks/subsection_list_rules_response.rbs +549 -0
  183. data/sig/openlayer/models/governance/rule_create_params.rbs +120 -0
  184. data/sig/openlayer/models/governance/rule_create_response.rbs +530 -0
  185. data/sig/openlayer/models/governance/rule_delete_params.rbs +25 -0
  186. data/sig/openlayer/models/governance/rule_list_params.rbs +228 -0
  187. data/sig/openlayer/models/governance/rule_list_response.rbs +547 -0
  188. data/sig/openlayer/models/governance/rule_result_create_evidence_params.rbs +53 -0
  189. data/sig/openlayer/models/governance/rule_result_create_evidence_response.rbs +62 -0
  190. data/sig/openlayer/models/governance/rule_result_list_evidence_params.rbs +38 -0
  191. data/sig/openlayer/models/governance/rule_result_list_evidence_response.rbs +79 -0
  192. data/sig/openlayer/models/governance/rule_result_list_params.rbs +156 -0
  193. data/sig/openlayer/models/governance/rule_result_list_response.rbs +252 -0
  194. data/sig/openlayer/models/governance/rule_result_retrieve_params.rbs +26 -0
  195. data/sig/openlayer/models/governance/rule_result_retrieve_response.rbs +235 -0
  196. data/sig/openlayer/models/governance/rule_result_update_params.rbs +165 -0
  197. data/sig/openlayer/models/governance/rule_result_update_response.rbs +235 -0
  198. data/sig/openlayer/models/governance/rule_retrieve_params.rbs +25 -0
  199. data/sig/openlayer/models/governance/rule_retrieve_response.rbs +530 -0
  200. data/sig/openlayer/models/governance/rule_stat_retrieve_params.rbs +38 -0
  201. data/sig/openlayer/models/governance/rule_stat_retrieve_response.rbs +434 -0
  202. data/sig/openlayer/models/governance/rule_tag_list_params.rbs +38 -0
  203. data/sig/openlayer/models/governance/rule_tag_list_response.rbs +74 -0
  204. data/sig/openlayer/models/governance/rule_update_params.rbs +62 -0
  205. data/sig/openlayer/models/governance/rule_update_response.rbs +530 -0
  206. data/sig/openlayer/models/inference_pipeline_retrieve_response.rbs +24 -5
  207. data/sig/openlayer/models/inference_pipeline_update_response.rbs +24 -5
  208. data/sig/openlayer/models/project_create_params.rbs +21 -1
  209. data/sig/openlayer/models/project_create_response.rbs +24 -5
  210. data/sig/openlayer/models/project_list_response.rbs +24 -5
  211. data/sig/openlayer/models/project_update_params.rbs +58 -0
  212. data/sig/openlayer/models/project_update_response.rbs +229 -0
  213. data/sig/openlayer/models/projects/inference_pipeline_create_params.rbs +24 -5
  214. data/sig/openlayer/models/projects/inference_pipeline_create_response.rbs +24 -5
  215. data/sig/openlayer/models/projects/inference_pipeline_list_response.rbs +24 -5
  216. data/sig/openlayer/models/storage/presigned_url_retrieve_params.rbs +25 -0
  217. data/sig/openlayer/models/storage/presigned_url_retrieve_response.rbs +15 -0
  218. data/sig/openlayer/models.rbs +6 -0
  219. data/sig/openlayer/resources/background_tasks.rbs +12 -0
  220. data/sig/openlayer/resources/governance/frameworks/documents.rbs +24 -0
  221. data/sig/openlayer/resources/governance/frameworks/sections.rbs +23 -0
  222. data/sig/openlayer/resources/governance/frameworks/subsections.rbs +22 -0
  223. data/sig/openlayer/resources/governance/frameworks.rbs +88 -0
  224. data/sig/openlayer/resources/governance/rule_results.rbs +57 -0
  225. data/sig/openlayer/resources/governance/rule_stats.rbs +16 -0
  226. data/sig/openlayer/resources/governance/rule_tags.rbs +16 -0
  227. data/sig/openlayer/resources/governance/rules.rbs +68 -0
  228. data/sig/openlayer/resources/governance.rbs +17 -0
  229. data/sig/openlayer/resources/projects.rbs +15 -0
  230. data/sig/openlayer/resources/storage/presigned_url.rbs +5 -0
  231. metadata +191 -2
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Storage
6
+ class PresignedURLRetrieveParams < Openlayer::Internal::Type::BaseModel
7
+ extend Openlayer::Internal::Type::RequestParameters::Converter
8
+ include Openlayer::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Openlayer::Storage::PresignedURLRetrieveParams,
14
+ Openlayer::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The object's storage uri.
19
+ sig { returns(String) }
20
+ attr_accessor :storage_uri
21
+
22
+ sig do
23
+ params(
24
+ storage_uri: String,
25
+ request_options: Openlayer::RequestOptions::OrHash
26
+ ).returns(T.attached_class)
27
+ end
28
+ def self.new(
29
+ # The object's storage uri.
30
+ storage_uri:,
31
+ request_options: {}
32
+ )
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ { storage_uri: String, request_options: Openlayer::RequestOptions }
38
+ )
39
+ end
40
+ def to_hash
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Storage
6
+ class PresignedURLRetrieveResponse < Openlayer::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Openlayer::Models::Storage::PresignedURLRetrieveResponse,
11
+ Openlayer::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The presigned url. Short-lived -- download promptly.
16
+ sig { returns(String) }
17
+ attr_accessor :url
18
+
19
+ sig { params(url: String).returns(T.attached_class) }
20
+ def self.new(
21
+ # The presigned url. Short-lived -- download promptly.
22
+ url:
23
+ )
24
+ end
25
+
26
+ sig { override.returns({ url: String }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,10 +1,14 @@
1
1
  # typed: strong
2
2
 
3
3
  module Openlayer
4
+ BackgroundTaskRetrieveParams = Openlayer::Models::BackgroundTaskRetrieveParams
5
+
4
6
  CommitRetrieveParams = Openlayer::Models::CommitRetrieveParams
5
7
 
6
8
  Commits = Openlayer::Models::Commits
7
9
 
10
+ Governance = Openlayer::Models::Governance
11
+
8
12
  InferencePipelineDeleteParams =
9
13
  Openlayer::Models::InferencePipelineDeleteParams
10
14
 
@@ -30,6 +34,8 @@ module Openlayer
30
34
 
31
35
  Projects = Openlayer::Models::Projects
32
36
 
37
+ ProjectUpdateParams = Openlayer::Models::ProjectUpdateParams
38
+
33
39
  Storage = Openlayer::Models::Storage
34
40
 
35
41
  TestEvaluateParams = Openlayer::Models::TestEvaluateParams
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class BackgroundTasks
6
+ # Retrieve a background task's status, progress and results.
7
+ #
8
+ # Endpoints that cannot answer within one request queue a task and hand back its
9
+ # id -- for example `POST /frameworks/{frameworkId}/export`. Poll this endpoint
10
+ # until `complete` is `true`, then read what the task produced from `outputs`.
11
+ sig do
12
+ params(
13
+ task_id: String,
14
+ request_options: Openlayer::RequestOptions::OrHash
15
+ ).returns(Openlayer::Models::BackgroundTaskRetrieveResponse)
16
+ end
17
+ def retrieve(
18
+ # The background task id.
19
+ task_id,
20
+ request_options: {}
21
+ )
22
+ end
23
+
24
+ # @api private
25
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
26
+ def self.new(client:)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,65 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ class Documents
8
+ # Retrieve a framework document, including its sections, subsections, and the
9
+ # rules mapped to each.
10
+ #
11
+ # Each section and subsection carries a `ruleCount`, so you can tell which
12
+ # requirements have rules mapped to them before drilling in.
13
+ sig do
14
+ params(
15
+ document_id: String,
16
+ framework_id: String,
17
+ request_options: Openlayer::RequestOptions::OrHash
18
+ ).returns(
19
+ Openlayer::Models::Governance::Frameworks::DocumentRetrieveResponse
20
+ )
21
+ end
22
+ def retrieve(
23
+ # The framework document id.
24
+ document_id,
25
+ # The framework id.
26
+ framework_id:,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ # List the documents attached to a framework.
32
+ #
33
+ # A document holds the text of the standard the framework is based on, split into
34
+ # sections and subsections. Retrieve a single document to get that structure,
35
+ # along with the rules mapped to each part of it.
36
+ sig do
37
+ params(
38
+ framework_id: String,
39
+ page: Integer,
40
+ per_page: Integer,
41
+ request_options: Openlayer::RequestOptions::OrHash
42
+ ).returns(
43
+ Openlayer::Models::Governance::Frameworks::DocumentListResponse
44
+ )
45
+ end
46
+ def list(
47
+ # The framework id.
48
+ framework_id,
49
+ # The page to return in a paginated query.
50
+ page: nil,
51
+ # Maximum number of items to return per page.
52
+ per_page: nil,
53
+ request_options: {}
54
+ )
55
+ end
56
+
57
+ # @api private
58
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
59
+ def self.new(client:)
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ class Sections
8
+ # List the rules mapped to a section of a framework document.
9
+ #
10
+ # Pass `includeSubsectionRules=true` to also return the rules mapped to the
11
+ # section's subsections, which is how you get every rule covering a requirement
12
+ # and everything under it.
13
+ sig do
14
+ params(
15
+ section_id: String,
16
+ framework_id: String,
17
+ include_results: T::Boolean,
18
+ include_subsection_rules: T::Boolean,
19
+ page: Integer,
20
+ per_page: Integer,
21
+ project_id: String,
22
+ status:
23
+ Openlayer::Governance::Frameworks::SectionListRulesParams::Status::OrSymbol,
24
+ request_options: Openlayer::RequestOptions::OrHash
25
+ ).returns(
26
+ Openlayer::Models::Governance::Frameworks::SectionListRulesResponse
27
+ )
28
+ end
29
+ def list_rules(
30
+ # Path param: The framework document section id.
31
+ section_id,
32
+ # Path param: The framework id.
33
+ framework_id:,
34
+ # Query param: Whether to include each rule's results inline, in a `results`
35
+ # array.
36
+ include_results: nil,
37
+ # Query param: Whether to also include the rules mapped to the section's
38
+ # subsections.
39
+ include_subsection_rules: nil,
40
+ # Query param: The page to return in a paginated query.
41
+ page: nil,
42
+ # Query param: Maximum number of items to return per page.
43
+ per_page: nil,
44
+ # Query param: Only include items that apply to this project.
45
+ project_id: nil,
46
+ # Query param: Only include items whose rule result has this compliance status.
47
+ status: nil,
48
+ request_options: {}
49
+ )
50
+ end
51
+
52
+ # @api private
53
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
54
+ def self.new(client:)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ class Subsections
8
+ # List the rules mapped to a subsection of a framework document.
9
+ #
10
+ # A subsection is usually the level at which a standard states an individual
11
+ # requirement, so this is the endpoint to use when you want to show which rules
12
+ # cover a specific clause.
13
+ sig do
14
+ params(
15
+ subsection_id: String,
16
+ framework_id: String,
17
+ include_results: T::Boolean,
18
+ page: Integer,
19
+ per_page: Integer,
20
+ project_id: String,
21
+ status:
22
+ Openlayer::Governance::Frameworks::SubsectionListRulesParams::Status::OrSymbol,
23
+ request_options: Openlayer::RequestOptions::OrHash
24
+ ).returns(
25
+ Openlayer::Models::Governance::Frameworks::SubsectionListRulesResponse
26
+ )
27
+ end
28
+ def list_rules(
29
+ # Path param: The framework document subsection id.
30
+ subsection_id,
31
+ # Path param: The framework id.
32
+ framework_id:,
33
+ # Query param: Whether to include each rule's results inline, in a `results`
34
+ # array.
35
+ include_results: nil,
36
+ # Query param: The page to return in a paginated query.
37
+ page: nil,
38
+ # Query param: Maximum number of items to return per page.
39
+ per_page: nil,
40
+ # Query param: Only include items that apply to this project.
41
+ project_id: nil,
42
+ # Query param: Only include items whose rule result has this compliance status.
43
+ status: nil,
44
+ request_options: {}
45
+ )
46
+ end
47
+
48
+ # @api private
49
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
50
+ def self.new(client:)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,314 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ sig { returns(Openlayer::Resources::Governance::Frameworks::Documents) }
8
+ attr_reader :documents
9
+
10
+ sig { returns(Openlayer::Resources::Governance::Frameworks::Sections) }
11
+ attr_reader :sections
12
+
13
+ sig do
14
+ returns(Openlayer::Resources::Governance::Frameworks::Subsections)
15
+ end
16
+ attr_reader :subsections
17
+
18
+ # Create a custom governance framework in a workspace.
19
+ #
20
+ # Use this to track compliance against an internal policy, or against a standard
21
+ # Openlayer does not ship as a built-in framework. A new framework starts with no
22
+ # rules -- add them from the Openlayer app, or map an existing rule to it.
23
+ #
24
+ # A framework is created disabled unless you pass `enabled: true`. While it is
25
+ # disabled its rules are not evaluated and do not count towards compliance.
26
+ sig do
27
+ params(
28
+ workspace_id: String,
29
+ name: String,
30
+ description: T.nilable(String),
31
+ enabled: T::Boolean,
32
+ project_selector:
33
+ T.nilable(
34
+ Openlayer::Governance::FrameworkCreateParams::ProjectSelector::OrHash
35
+ ),
36
+ tags: T::Array[String],
37
+ request_options: Openlayer::RequestOptions::OrHash
38
+ ).returns(Openlayer::Models::Governance::FrameworkCreateResponse)
39
+ end
40
+ def create(
41
+ # The workspace id.
42
+ workspace_id,
43
+ # The framework name.
44
+ name:,
45
+ # A short description of the framework.
46
+ description: nil,
47
+ # Whether the framework is active. Rules of a disabled framework are not evaluated
48
+ # and do not count towards compliance.
49
+ enabled: nil,
50
+ # Determines which projects the framework applies to. An empty or `null` `match`
51
+ # array applies the framework to every project in the workspace.
52
+ project_selector: nil,
53
+ # Free-form labels on the framework.
54
+ tags: nil,
55
+ request_options: {}
56
+ )
57
+ end
58
+
59
+ # Retrieve a governance framework by its id.
60
+ sig do
61
+ params(
62
+ framework_id: String,
63
+ request_options: Openlayer::RequestOptions::OrHash
64
+ ).returns(Openlayer::Models::Governance::FrameworkRetrieveResponse)
65
+ end
66
+ def retrieve(
67
+ # The framework id.
68
+ framework_id,
69
+ request_options: {}
70
+ )
71
+ end
72
+
73
+ # Update a governance framework.
74
+ #
75
+ # The most common use is activating or deactivating a framework for the workspace
76
+ # by setting `enabled`. Rules of a disabled framework are not evaluated and do not
77
+ # count towards compliance.
78
+ #
79
+ # Frameworks that ship with Openlayer report `immutable: true`. For those, only
80
+ # `enabled`, `tags`, and `projectSelector` can be changed -- their name and
81
+ # definition are managed by Openlayer.
82
+ #
83
+ # Only the fields you send are changed.
84
+ sig do
85
+ params(
86
+ framework_id: String,
87
+ avatar:
88
+ T.nilable(
89
+ Openlayer::Governance::FrameworkUpdateParams::Avatar::OrHash
90
+ ),
91
+ description: T.nilable(String),
92
+ enabled: T::Boolean,
93
+ extended_description: T.nilable(T::Hash[Symbol, T.anything]),
94
+ href: T.nilable(String),
95
+ name: String,
96
+ project_selector:
97
+ T.nilable(
98
+ Openlayer::Governance::FrameworkUpdateParams::ProjectSelector::OrHash
99
+ ),
100
+ tags: T::Array[String],
101
+ request_options: Openlayer::RequestOptions::OrHash
102
+ ).returns(Openlayer::Models::Governance::FrameworkUpdateResponse)
103
+ end
104
+ def update(
105
+ # The framework id.
106
+ framework_id,
107
+ # The icon shown for the framework.
108
+ avatar: nil,
109
+ # A short description of the framework.
110
+ description: nil,
111
+ # Whether the framework is active. Rules of a disabled framework are not evaluated
112
+ # and do not count towards compliance.
113
+ enabled: nil,
114
+ # A longer, rich-text description, as a TipTap JSON document.
115
+ extended_description: nil,
116
+ # A link to the external standard or regulation the framework is based on.
117
+ href: nil,
118
+ # The framework name.
119
+ name: nil,
120
+ # Determines which projects the framework applies to. An empty or `null` `match`
121
+ # array applies the framework to every project in the workspace.
122
+ project_selector: nil,
123
+ # Free-form labels on the framework.
124
+ tags: nil,
125
+ request_options: {}
126
+ )
127
+ end
128
+
129
+ # List the governance frameworks in a workspace.
130
+ #
131
+ # A framework is a set of rules -- drawn from a regulation, a standard, or your
132
+ # own internal policy -- that Openlayer tracks compliance against. Use this
133
+ # endpoint to find the framework you want to report on, then read its rules and
134
+ # rule results.
135
+ sig do
136
+ params(
137
+ workspace_id: String,
138
+ asc: T::Boolean,
139
+ completion_operator:
140
+ Openlayer::Governance::FrameworkListParams::CompletionOperator::OrSymbol,
141
+ completion_value: Integer,
142
+ enabled: T::Boolean,
143
+ include_rule_stats: T::Boolean,
144
+ page: Integer,
145
+ per_page: Integer,
146
+ project_id: String,
147
+ search_query: String,
148
+ sort_column:
149
+ Openlayer::Governance::FrameworkListParams::SortColumn::OrSymbol,
150
+ tags: T::Array[String],
151
+ request_options: Openlayer::RequestOptions::OrHash
152
+ ).returns(Openlayer::Models::Governance::FrameworkListResponse)
153
+ end
154
+ def list(
155
+ # The workspace id.
156
+ workspace_id,
157
+ # Whether to sort in ascending order.
158
+ asc: nil,
159
+ # How to compare each framework's completion percentage with `completionValue`.
160
+ # Must be sent together with `completionValue`.
161
+ completion_operator: nil,
162
+ # The completion percentage to compare against, from 0 to 100.
163
+ completion_value: nil,
164
+ # Only include frameworks that are enabled (or disabled).
165
+ enabled: nil,
166
+ # Whether to include a `ruleStats` object on each framework, with its rule result
167
+ # status counts and its per-project completion buckets. Computed over the returned
168
+ # page only.
169
+ include_rule_stats: nil,
170
+ # The page to return in a paginated query.
171
+ page: nil,
172
+ # Maximum number of items to return per page.
173
+ per_page: nil,
174
+ # Only include items that apply to this project.
175
+ project_id: nil,
176
+ # Filter by a free-text search over names and descriptions.
177
+ search_query: nil,
178
+ # The column to sort on.
179
+ sort_column: nil,
180
+ # Only include frameworks carrying all of these tags.
181
+ tags: nil,
182
+ request_options: {}
183
+ )
184
+ end
185
+
186
+ # Export a framework's evidence and progress as an audit-ready zip archive.
187
+ #
188
+ # The archive holds every evidence file uploaded against the framework's
189
+ # evidence-based rules, a markdown report of the framework's progress and the
190
+ # status of all its rules (broken down by documentation section when the framework
191
+ # has documents), and CSV manifests of rules and evidence with SHA-256 checksums.
192
+ #
193
+ # Send `projectId` to export one project's compliance with the framework. Omit it
194
+ # for the workspace-wide view across every project in the framework, including
195
+ # workspace-scoped rules.
196
+ #
197
+ # The export runs as a background task, so this returns `202` immediately. To
198
+ # collect the archive:
199
+ #
200
+ # 1. Poll `GET /background-tasks/{taskId}` with the returned `taskResultId` until
201
+ # `complete` is `true`.
202
+ # 2. Read `outputs.storageUri` off that task.
203
+ # 3. Exchange it for a download link at
204
+ # `GET /storage/presigned-url?storageUri=<uri>`.
205
+ #
206
+ # Rate limited to 2 requests per minute per framework. Asking for an export while
207
+ # an identical one is still queued returns that task rather than starting a second
208
+ # one.
209
+ sig do
210
+ params(
211
+ framework_id: String,
212
+ project_id: T.nilable(String),
213
+ request_options: Openlayer::RequestOptions::OrHash
214
+ ).returns(Openlayer::Models::Governance::FrameworkExportResponse)
215
+ end
216
+ def export(
217
+ # The framework id.
218
+ framework_id,
219
+ # Scope the export to this project. It must belong to the framework.
220
+ project_id: nil,
221
+ request_options: {}
222
+ )
223
+ end
224
+
225
+ # Get a compliance roll-up for a framework, one row per project it applies to.
226
+ #
227
+ # Each row counts the project's rule results by status, so you can report on where
228
+ # a framework is complete and where it is not without fetching every individual
229
+ # rule result.
230
+ sig do
231
+ params(
232
+ framework_id: String,
233
+ asc: T::Boolean,
234
+ page: Integer,
235
+ per_page: Integer,
236
+ sort_column:
237
+ Openlayer::Governance::FrameworkListProjectRuleStatsParams::SortColumn::OrSymbol,
238
+ request_options: Openlayer::RequestOptions::OrHash
239
+ ).returns(
240
+ Openlayer::Models::Governance::FrameworkListProjectRuleStatsResponse
241
+ )
242
+ end
243
+ def list_project_rule_stats(
244
+ # The framework id.
245
+ framework_id,
246
+ # Whether to sort in ascending order.
247
+ asc: nil,
248
+ # The page to return in a paginated query.
249
+ page: nil,
250
+ # Maximum number of items to return per page.
251
+ per_page: nil,
252
+ # The column to sort on.
253
+ sort_column: nil,
254
+ request_options: {}
255
+ )
256
+ end
257
+
258
+ # List the projects a framework applies to.
259
+ #
260
+ # Which projects a framework covers is determined by its `projectSelector`. A
261
+ # framework with an empty selector applies to every project in the workspace.
262
+ sig do
263
+ params(
264
+ framework_id: String,
265
+ page: Integer,
266
+ per_page: Integer,
267
+ request_options: Openlayer::RequestOptions::OrHash
268
+ ).returns(
269
+ Openlayer::Models::Governance::FrameworkListProjectsResponse
270
+ )
271
+ end
272
+ def list_projects(
273
+ # The framework id.
274
+ framework_id,
275
+ # The page to return in a paginated query.
276
+ page: nil,
277
+ # Maximum number of items to return per page.
278
+ per_page: nil,
279
+ request_options: {}
280
+ )
281
+ end
282
+
283
+ # List the rules that belong to a framework.
284
+ #
285
+ # To read the compliance status of these rules, use
286
+ # [List rule results](/api-reference/rest/governance/list-rule-results) with the
287
+ # `frameworkId` filter, or fetch the results of an individual rule.
288
+ sig do
289
+ params(
290
+ framework_id: String,
291
+ page: Integer,
292
+ per_page: Integer,
293
+ request_options: Openlayer::RequestOptions::OrHash
294
+ ).returns(Openlayer::Models::Governance::FrameworkListRulesResponse)
295
+ end
296
+ def list_rules(
297
+ # The framework id.
298
+ framework_id,
299
+ # The page to return in a paginated query.
300
+ page: nil,
301
+ # Maximum number of items to return per page.
302
+ per_page: nil,
303
+ request_options: {}
304
+ )
305
+ end
306
+
307
+ # @api private
308
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
309
+ def self.new(client:)
310
+ end
311
+ end
312
+ end
313
+ end
314
+ end