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,193 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class RuleResults
7
+ # Retrieve a rule result by its id.
8
+ #
9
+ # Alongside the status, the response carries the evaluation and renewal dates that
10
+ # explain it: `dateLastEvaluated` and `dateOfNextEvaluation` for platform rules,
11
+ # `dateOfLatestEvidence` and `dateOfRenewal` for evidence rules.
12
+ sig do
13
+ params(
14
+ rule_result_id: String,
15
+ request_options: Openlayer::RequestOptions::OrHash
16
+ ).returns(Openlayer::Models::Governance::RuleResultRetrieveResponse)
17
+ end
18
+ def retrieve(
19
+ # The rule result id.
20
+ rule_result_id,
21
+ request_options: {}
22
+ )
23
+ end
24
+
25
+ # Update a rule result. Only the fields you send are changed.
26
+ #
27
+ # Use this to assign an owner, or to exclude a single result from compliance
28
+ # without deactivating the rule everywhere. `deactivatedReason` is required when
29
+ # setting `deactivated` to `true`.
30
+ #
31
+ # A result's `status` is computed by Openlayer and cannot be set directly.
32
+ sig do
33
+ params(
34
+ rule_result_id: String,
35
+ assignee_id: T.nilable(String),
36
+ blocked_by:
37
+ T::Array[
38
+ Openlayer::Governance::RuleResultUpdateParams::BlockedBy::OrHash
39
+ ],
40
+ blocking:
41
+ T::Array[
42
+ Openlayer::Governance::RuleResultUpdateParams::Blocking::OrHash
43
+ ],
44
+ deactivated: T::Boolean,
45
+ deactivated_reason: T.nilable(String),
46
+ request_options: Openlayer::RequestOptions::OrHash
47
+ ).returns(Openlayer::Models::Governance::RuleResultUpdateResponse)
48
+ end
49
+ def update(
50
+ # The rule result id.
51
+ rule_result_id,
52
+ # The user responsible for this result.
53
+ assignee_id: nil,
54
+ # Rule results that must pass before this one can be satisfied.
55
+ blocked_by: nil,
56
+ # Rule results that this one blocks.
57
+ blocking: nil,
58
+ # Whether this result is excluded from compliance calculations.
59
+ deactivated: nil,
60
+ # Why the result was excluded.
61
+ deactivated_reason: nil,
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ # List rule results across a workspace.
67
+ #
68
+ # A rule result is the compliance status of one rule for one entity: a project for
69
+ # project-scoped rules, or the workspace itself for workspace-scoped rules. This
70
+ # is the endpoint to poll or export when you want your current compliance state,
71
+ # filtered to a framework, a project, or a status.
72
+ sig do
73
+ params(
74
+ workspace_id: String,
75
+ enabled_framework_only: T::Boolean,
76
+ framework_id: String,
77
+ include_unframed: T::Boolean,
78
+ page: Integer,
79
+ per_page: Integer,
80
+ project_id: String,
81
+ rule_id: String,
82
+ scope: Openlayer::Governance::RuleResultListParams::Scope::OrSymbol,
83
+ search_query: String,
84
+ status:
85
+ Openlayer::Governance::RuleResultListParams::Status::OrSymbol,
86
+ type: Openlayer::Governance::RuleResultListParams::Type::OrSymbol,
87
+ request_options: Openlayer::RequestOptions::OrHash
88
+ ).returns(Openlayer::Models::Governance::RuleResultListResponse)
89
+ end
90
+ def list(
91
+ # The workspace id.
92
+ workspace_id,
93
+ # Only include items belonging to at least one enabled framework.
94
+ enabled_framework_only: nil,
95
+ # Only include items belonging to this framework.
96
+ framework_id: nil,
97
+ # Whether to include rules that are not part of any framework.
98
+ include_unframed: nil,
99
+ # The page to return in a paginated query.
100
+ page: nil,
101
+ # Maximum number of items to return per page.
102
+ per_page: nil,
103
+ # Only include items that apply to this project.
104
+ project_id: nil,
105
+ # Only include results of this rule.
106
+ rule_id: nil,
107
+ # Only include rules with this scope.
108
+ scope: nil,
109
+ # Filter by a free-text search over names and descriptions.
110
+ search_query: nil,
111
+ # Only include items whose rule result has this compliance status.
112
+ status: nil,
113
+ # Only include rules of this type.
114
+ type: nil,
115
+ request_options: {}
116
+ )
117
+ end
118
+
119
+ # Attach evidence to a rule result, satisfying an evidence rule.
120
+ #
121
+ # Send the field that matches the rule's `evidenceType`: `storageUri` for an
122
+ # uploaded document, `text` for a written statement, or `url` for a link.
123
+ #
124
+ # For a document, upload the file first with `POST /storage/presigned-url` and
125
+ # send the resulting storage URI as `storageUri`.
126
+ #
127
+ # Attaching evidence re-evaluates the rule result. If the rule sets
128
+ # `renewalCadenceDays`, the renewal window restarts from this evidence.
129
+ sig do
130
+ params(
131
+ rule_result_id: String,
132
+ description: T.nilable(String),
133
+ name: T.nilable(String),
134
+ storage_uri: T.nilable(String),
135
+ text: T.nilable(String),
136
+ url: T.nilable(String),
137
+ request_options: Openlayer::RequestOptions::OrHash
138
+ ).returns(
139
+ Openlayer::Models::Governance::RuleResultCreateEvidenceResponse
140
+ )
141
+ end
142
+ def create_evidence(
143
+ # The rule result id.
144
+ rule_result_id,
145
+ # A description of what the evidence shows.
146
+ description: nil,
147
+ # The evidence name.
148
+ name: nil,
149
+ # Where the uploaded file is stored. Set when the rule's `evidenceType` is
150
+ # `document`.
151
+ storage_uri: nil,
152
+ # The evidence text. Set when the rule's `evidenceType` is `text`.
153
+ text: nil,
154
+ # A link to the evidence. Set when the rule's `evidenceType` is `url`.
155
+ url: nil,
156
+ request_options: {}
157
+ )
158
+ end
159
+
160
+ # List the evidence attached to a rule result.
161
+ #
162
+ # Which field carries the evidence depends on the rule's `evidenceType`:
163
+ # `storageUri` for uploaded documents, `text` for written statements, and `url`
164
+ # for links.
165
+ sig do
166
+ params(
167
+ rule_result_id: String,
168
+ page: Integer,
169
+ per_page: Integer,
170
+ request_options: Openlayer::RequestOptions::OrHash
171
+ ).returns(
172
+ Openlayer::Models::Governance::RuleResultListEvidenceResponse
173
+ )
174
+ end
175
+ def list_evidence(
176
+ # The rule result id.
177
+ rule_result_id,
178
+ # The page to return in a paginated query.
179
+ page: nil,
180
+ # Maximum number of items to return per page.
181
+ per_page: nil,
182
+ request_options: {}
183
+ )
184
+ end
185
+
186
+ # @api private
187
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
188
+ def self.new(client:)
189
+ end
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class RuleStats
7
+ # Get a compliance roll-up for a workspace: how many rules exist, and how many of
8
+ # their results are passing, failing, pending, or due for renewal.
9
+ #
10
+ # Counts respect the filters you pass, so `frameworkId` gives you a single
11
+ # framework's overall compliance and `projectId` gives you a single project's.
12
+ sig do
13
+ params(
14
+ workspace_id: String,
15
+ framework_id: String,
16
+ project_id: String,
17
+ request_options: Openlayer::RequestOptions::OrHash
18
+ ).returns(Openlayer::Models::Governance::RuleStatRetrieveResponse)
19
+ end
20
+ def retrieve(
21
+ # The workspace id.
22
+ workspace_id,
23
+ # Only include items belonging to this framework.
24
+ framework_id: nil,
25
+ # Only include items that apply to this project.
26
+ project_id: nil,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ # @api private
32
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
33
+ def self.new(client:)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class RuleTags
7
+ # List the rule tags in a workspace.
8
+ #
9
+ # Tags group rules across frameworks, for example by team or by control family.
10
+ # Use the ids returned here with the `tags` filter on
11
+ # [List rules](/api-reference/rest/governance/list-rules).
12
+ sig do
13
+ params(
14
+ workspace_id: String,
15
+ page: Integer,
16
+ per_page: Integer,
17
+ request_options: Openlayer::RequestOptions::OrHash
18
+ ).returns(Openlayer::Models::Governance::RuleTagListResponse)
19
+ end
20
+ def list(
21
+ # The workspace id.
22
+ workspace_id,
23
+ # The page to return in a paginated query.
24
+ page: nil,
25
+ # Maximum number of items to return per page.
26
+ per_page: nil,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ # @api private
32
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
33
+ def self.new(client:)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,233 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Rules
7
+ # Create a governance rule in a workspace.
8
+ #
9
+ # A rule is one requirement. Its `type` decides how it is satisfied, and the two
10
+ # types accept different fields:
11
+ #
12
+ # - `platform` rules are evaluated automatically from the state of your workspace.
13
+ # Set `automationType` to the signal to check. Their `scope` must be `project`,
14
+ # and `evidenceType` and `renewalCadenceDays` must be omitted or `null`.
15
+ # - `evidence` rules are satisfied by attaching evidence. Set `evidenceType` to
16
+ # the kind of evidence that satisfies them. `automationType` and
17
+ # `automationParams` must be omitted or `null`.
18
+ #
19
+ # A new rule belongs to no framework. Map it to one from the Openlayer app.
20
+ sig do
21
+ params(
22
+ workspace_id: String,
23
+ name: String,
24
+ scope: Openlayer::Governance::RuleCreateParams::Scope::OrSymbol,
25
+ type: Openlayer::Governance::RuleCreateParams::Type::OrSymbol,
26
+ assignee_id: T.nilable(String),
27
+ automation_params: T.nilable(T::Hash[Symbol, T.anything]),
28
+ automation_type: T.nilable(String),
29
+ deactivated: T::Boolean,
30
+ description: T.nilable(String),
31
+ evidence_type:
32
+ T.nilable(
33
+ Openlayer::Governance::RuleCreateParams::EvidenceType::OrSymbol
34
+ ),
35
+ renewal_cadence_days: T.nilable(Integer),
36
+ tag_ids: T.nilable(T::Array[String]),
37
+ request_options: Openlayer::RequestOptions::OrHash
38
+ ).returns(Openlayer::Models::Governance::RuleCreateResponse)
39
+ end
40
+ def create(
41
+ # The workspace id.
42
+ workspace_id,
43
+ # The rule name.
44
+ name:,
45
+ # Whether the rule is evaluated once for the whole workspace, or once per project
46
+ # the rule's frameworks apply to.
47
+ scope:,
48
+ # `platform` rules are evaluated automatically from the state of your Openlayer
49
+ # workspace. `evidence` rules are satisfied by attaching evidence.
50
+ type:,
51
+ # The user responsible for satisfying the rule.
52
+ assignee_id: nil,
53
+ # Configuration for the platform check, when the automation takes parameters.
54
+ automation_params: nil,
55
+ # Which workspace signal a platform rule checks, for example
56
+ # `monitoring_mode_enabled`, `test_setup`, or `project_owner_set`. `null` for
57
+ # evidence rules.
58
+ automation_type: nil,
59
+ # Whether the rule is excluded from compliance calculations.
60
+ deactivated: nil,
61
+ # What the rule requires.
62
+ description: nil,
63
+ # The kind of evidence that satisfies the rule. `null` for platform rules.
64
+ evidence_type: nil,
65
+ # How often evidence must be renewed, in days. Once evidence is older than this,
66
+ # the rule result becomes `due_soon` and then `failing`.
67
+ renewal_cadence_days: nil,
68
+ # The ids of the rule tags to associate with the rule. Replaces the rule's tags.
69
+ # Read them back from `tags`, and list the tags available in the workspace with
70
+ # `GET /workspaces/{workspaceId}/rule-tags`.
71
+ tag_ids: nil,
72
+ request_options: {}
73
+ )
74
+ end
75
+
76
+ # Retrieve a governance rule by its id, including the frameworks it belongs to and
77
+ # its tags.
78
+ sig do
79
+ params(
80
+ rule_id: String,
81
+ request_options: Openlayer::RequestOptions::OrHash
82
+ ).returns(Openlayer::Models::Governance::RuleRetrieveResponse)
83
+ end
84
+ def retrieve(
85
+ # The rule id.
86
+ rule_id,
87
+ request_options: {}
88
+ )
89
+ end
90
+
91
+ # Update a governance rule. Only the fields you send are changed.
92
+ #
93
+ # Rules that ship with Openlayer report `immutable: true` and cannot be edited.
94
+ #
95
+ # A rule's `scope`, `type`, `evidenceType`, and automation are fixed once it
96
+ # exists -- create a new rule instead of converting one.
97
+ sig do
98
+ params(
99
+ rule_id: String,
100
+ assignee_id: T.nilable(String),
101
+ deactivated: T::Boolean,
102
+ description: T.nilable(String),
103
+ name: String,
104
+ renewal_cadence_days: T.nilable(Integer),
105
+ tag_ids: T.nilable(T::Array[String]),
106
+ request_options: Openlayer::RequestOptions::OrHash
107
+ ).returns(Openlayer::Models::Governance::RuleUpdateResponse)
108
+ end
109
+ def update(
110
+ # The rule id.
111
+ rule_id,
112
+ # The user responsible for satisfying the rule.
113
+ assignee_id: nil,
114
+ # Whether the rule is excluded from compliance calculations.
115
+ deactivated: nil,
116
+ # What the rule requires.
117
+ description: nil,
118
+ # The rule name.
119
+ name: nil,
120
+ # How often evidence must be renewed, in days. Once evidence is older than this,
121
+ # the rule result becomes `due_soon` and then `failing`.
122
+ renewal_cadence_days: nil,
123
+ # The ids of the rule tags to associate with the rule. Replaces the rule's tags.
124
+ # Read them back from `tags`, and list the tags available in the workspace with
125
+ # `GET /workspaces/{workspaceId}/rule-tags`.
126
+ tag_ids: nil,
127
+ request_options: {}
128
+ )
129
+ end
130
+
131
+ # List the governance rules in a workspace.
132
+ #
133
+ # A rule is a single requirement Openlayer tracks. `platform` rules are evaluated
134
+ # automatically from the state of your workspace; `evidence` rules are satisfied
135
+ # by attaching evidence. A rule can belong to several frameworks at once, and
136
+ # rules that belong to none are returned too unless you pass
137
+ # `includeUnframed=false`.
138
+ #
139
+ # Pass `includeResults=true` to get each rule's compliance results inline instead
140
+ # of fetching them separately.
141
+ sig do
142
+ params(
143
+ workspace_id: String,
144
+ asc: T::Boolean,
145
+ assignee_id: String,
146
+ deactivated: T::Boolean,
147
+ enabled_framework_only: T::Boolean,
148
+ framework_id: String,
149
+ group: Openlayer::Governance::RuleListParams::Group::OrSymbol,
150
+ include_results: T::Boolean,
151
+ include_unframed: T::Boolean,
152
+ page: Integer,
153
+ per_page: Integer,
154
+ project_id: String,
155
+ scope: Openlayer::Governance::RuleListParams::Scope::OrSymbol,
156
+ search_query: String,
157
+ sort_by: Openlayer::Governance::RuleListParams::SortBy::OrSymbol,
158
+ status: Openlayer::Governance::RuleListParams::Status::OrSymbol,
159
+ tags: T::Array[String],
160
+ type: Openlayer::Governance::RuleListParams::Type::OrSymbol,
161
+ request_options: Openlayer::RequestOptions::OrHash
162
+ ).returns(Openlayer::Models::Governance::RuleListResponse)
163
+ end
164
+ def list(
165
+ # The workspace id.
166
+ workspace_id,
167
+ # Whether to sort in ascending order.
168
+ asc: nil,
169
+ # Only include rules assigned to this user.
170
+ assignee_id: nil,
171
+ # Only include rules that are deactivated (or active).
172
+ deactivated: nil,
173
+ # Only include items belonging to at least one enabled framework.
174
+ enabled_framework_only: nil,
175
+ # Only include items belonging to this framework.
176
+ framework_id: nil,
177
+ # Only include rules in one bucket of the compliance workflow. `open` covers rules
178
+ # that still need attention, `done` covers rules that are fully satisfied, and
179
+ # `excluded` covers rules that have been deactivated.
180
+ group: nil,
181
+ # Whether to include each rule's results inline, in a `results` array.
182
+ include_results: nil,
183
+ # Whether to include rules that are not part of any framework.
184
+ include_unframed: nil,
185
+ # The page to return in a paginated query.
186
+ page: nil,
187
+ # Maximum number of items to return per page.
188
+ per_page: nil,
189
+ # Only include items that apply to this project.
190
+ project_id: nil,
191
+ # Only include rules with this scope.
192
+ scope: nil,
193
+ # Filter by a free-text search over names and descriptions.
194
+ search_query: nil,
195
+ # The field to sort on.
196
+ sort_by: nil,
197
+ # Only include items whose rule result has this compliance status.
198
+ status: nil,
199
+ # Only include rules carrying all of these rule tags. Pass tag ids, which you can
200
+ # look up with [List rule tags](/api-reference/rest/governance/list-rule-tags).
201
+ tags: nil,
202
+ # Only include rules of this type.
203
+ type: nil,
204
+ request_options: {}
205
+ )
206
+ end
207
+
208
+ # Delete a governance rule and its rule results.
209
+ #
210
+ # Only rules you created can be deleted. Rules that ship with Openlayer report
211
+ # `immutable: true` and cannot be deleted -- exclude one from compliance by
212
+ # setting `deactivated` with `PUT /rules/{ruleId}` instead.
213
+ sig do
214
+ params(
215
+ rule_id: String,
216
+ request_options: Openlayer::RequestOptions::OrHash
217
+ ).void
218
+ end
219
+ def delete(
220
+ # The rule id.
221
+ rule_id,
222
+ request_options: {}
223
+ )
224
+ end
225
+
226
+ # @api private
227
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
228
+ def self.new(client:)
229
+ end
230
+ end
231
+ end
232
+ end
233
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ sig { returns(Openlayer::Resources::Governance::Frameworks) }
7
+ attr_reader :frameworks
8
+
9
+ sig { returns(Openlayer::Resources::Governance::Rules) }
10
+ attr_reader :rules
11
+
12
+ sig { returns(Openlayer::Resources::Governance::RuleResults) }
13
+ attr_reader :rule_results
14
+
15
+ sig { returns(Openlayer::Resources::Governance::RuleStats) }
16
+ attr_reader :rule_stats
17
+
18
+ sig { returns(Openlayer::Resources::Governance::RuleTags) }
19
+ attr_reader :rule_tags
20
+
21
+ # @api private
22
+ sig { params(client: Openlayer::Client).returns(T.attached_class) }
23
+ def self.new(client:)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -17,7 +17,11 @@ module Openlayer
17
17
  params(
18
18
  name: String,
19
19
  task_type: Openlayer::ProjectCreateParams::TaskType::OrSymbol,
20
+ data_retention_days: T.nilable(Integer),
20
21
  description: T.nilable(String),
22
+ model_developer: T.nilable(String),
23
+ model_types: T.nilable(T::Array[String]),
24
+ purpose: T.nilable(String),
21
25
  request_options: Openlayer::RequestOptions::OrHash
22
26
  ).returns(Openlayer::Models::ProjectCreateResponse)
23
27
  end
@@ -26,8 +30,50 @@ module Openlayer
26
30
  name:,
27
31
  # The task type of the project.
28
32
  task_type:,
33
+ # Number of days to retain monitoring data for this project. Null means data is
34
+ # retained indefinitely.
35
+ data_retention_days: nil,
29
36
  # The project description.
30
37
  description: nil,
38
+ # Who developed the model used in this project.
39
+ model_developer: nil,
40
+ # The kinds of model used in this project.
41
+ model_types: nil,
42
+ # What the system in this project is intended to do.
43
+ purpose: nil,
44
+ request_options: {}
45
+ )
46
+ end
47
+
48
+ # Update a project's metadata.
49
+ sig do
50
+ params(
51
+ project_id: String,
52
+ data_retention_days: T.nilable(Integer),
53
+ description: T.nilable(String),
54
+ model_developer: T.nilable(String),
55
+ model_types: T.nilable(T::Array[String]),
56
+ name: String,
57
+ purpose: T.nilable(String),
58
+ request_options: Openlayer::RequestOptions::OrHash
59
+ ).returns(Openlayer::Models::ProjectUpdateResponse)
60
+ end
61
+ def update(
62
+ # The project id.
63
+ project_id,
64
+ # Number of days to retain monitoring data for this project. Null means data is
65
+ # retained indefinitely.
66
+ data_retention_days: nil,
67
+ # The project description.
68
+ description: nil,
69
+ # Who developed the model used in this project.
70
+ model_developer: nil,
71
+ # The kinds of model used in this project.
72
+ model_types: nil,
73
+ # The project name.
74
+ name: nil,
75
+ # What the system in this project is intended to do.
76
+ purpose: nil,
31
77
  request_options: {}
32
78
  )
33
79
  end
@@ -18,6 +18,29 @@ module Openlayer
18
18
  )
19
19
  end
20
20
 
21
+ # Exchange a `storageUri` for a short-lived presigned url you can download the
22
+ # object from.
23
+ #
24
+ # Use it to collect anything the platform stored on your behalf -- for example the
25
+ # archive a framework export leaves behind, whose `storageUri` comes back in the
26
+ # background task's `outputs`.
27
+ #
28
+ # The workspace is taken from the API key, so there is nothing else to send. The
29
+ # url is only issued for objects your workspace owns, and `404` covers both "no
30
+ # such object" and "not yours".
31
+ sig do
32
+ params(
33
+ storage_uri: String,
34
+ request_options: Openlayer::RequestOptions::OrHash
35
+ ).returns(Openlayer::Models::Storage::PresignedURLRetrieveResponse)
36
+ end
37
+ def retrieve(
38
+ # The object's storage uri.
39
+ storage_uri:,
40
+ request_options: {}
41
+ )
42
+ end
43
+
21
44
  # @api private
22
45
  sig { params(client: Openlayer::Client).returns(T.attached_class) }
23
46
  def self.new(client:)
@@ -22,6 +22,10 @@ module Openlayer
22
22
 
23
23
  attr_reader tests: Openlayer::Resources::Tests
24
24
 
25
+ attr_reader background_tasks: Openlayer::Resources::BackgroundTasks
26
+
27
+ attr_reader governance: Openlayer::Resources::Governance
28
+
25
29
  private def auth_headers: -> ::Hash[String, String]
26
30
 
27
31
  def initialize: (
@@ -0,0 +1,23 @@
1
+ module Openlayer
2
+ module Models
3
+ type background_task_retrieve_params =
4
+ { task_id: String } & Openlayer::Internal::Type::request_parameters
5
+
6
+ class BackgroundTaskRetrieveParams < Openlayer::Internal::Type::BaseModel
7
+ extend Openlayer::Internal::Type::RequestParameters::Converter
8
+ include Openlayer::Internal::Type::RequestParameters
9
+
10
+ attr_accessor task_id: String
11
+
12
+ def initialize: (
13
+ task_id: String,
14
+ ?request_options: Openlayer::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> {
18
+ task_id: String,
19
+ request_options: Openlayer::RequestOptions
20
+ }
21
+ end
22
+ end
23
+ end