openlayer 0.15.0 → 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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -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 +0 -1
  55. data/lib/openlayer/models/inference_pipeline_update_response.rb +0 -1
  56. data/lib/openlayer/models/project_create_response.rb +0 -1
  57. data/lib/openlayer/models/project_list_response.rb +0 -1
  58. data/lib/openlayer/models/project_update_response.rb +0 -1
  59. data/lib/openlayer/models/projects/inference_pipeline_create_params.rb +0 -1
  60. data/lib/openlayer/models/projects/inference_pipeline_create_response.rb +0 -1
  61. data/lib/openlayer/models/projects/inference_pipeline_list_response.rb +0 -1
  62. data/lib/openlayer/models/storage/presigned_url_retrieve_params.rb +24 -0
  63. data/lib/openlayer/models/storage/presigned_url_retrieve_response.rb +19 -0
  64. data/lib/openlayer/models.rb +4 -0
  65. data/lib/openlayer/resources/background_tasks.rb +38 -0
  66. data/lib/openlayer/resources/governance/frameworks/documents.rb +80 -0
  67. data/lib/openlayer/resources/governance/frameworks/sections.rb +72 -0
  68. data/lib/openlayer/resources/governance/frameworks/subsections.rb +69 -0
  69. data/lib/openlayer/resources/governance/frameworks.rb +344 -0
  70. data/lib/openlayer/resources/governance/rule_results.rb +212 -0
  71. data/lib/openlayer/resources/governance/rule_stats.rb +47 -0
  72. data/lib/openlayer/resources/governance/rule_tags.rb +47 -0
  73. data/lib/openlayer/resources/governance/rules.rb +241 -0
  74. data/lib/openlayer/resources/governance.rb +34 -0
  75. data/lib/openlayer/resources/storage/presigned_url.rb +32 -0
  76. data/lib/openlayer/version.rb +1 -1
  77. data/lib/openlayer.rb +61 -0
  78. data/rbi/openlayer/client.rbi +6 -0
  79. data/rbi/openlayer/models/background_task_retrieve_params.rbi +38 -0
  80. data/rbi/openlayer/models/background_task_retrieve_response.rbi +102 -0
  81. data/rbi/openlayer/models/governance/framework_create_params.rbi +298 -0
  82. data/rbi/openlayer/models/governance/framework_create_response.rbi +730 -0
  83. data/rbi/openlayer/models/governance/framework_export_params.rbi +54 -0
  84. data/rbi/openlayer/models/governance/framework_export_response.rbi +48 -0
  85. data/rbi/openlayer/models/governance/framework_list_params.rbi +310 -0
  86. data/rbi/openlayer/models/governance/framework_list_project_rule_stats_params.rbi +178 -0
  87. data/rbi/openlayer/models/governance/framework_list_project_rule_stats_response.rbi +440 -0
  88. data/rbi/openlayer/models/governance/framework_list_projects_params.rbi +68 -0
  89. data/rbi/openlayer/models/governance/framework_list_projects_response.rbi +498 -0
  90. data/rbi/openlayer/models/governance/framework_list_response.rbi +771 -0
  91. data/rbi/openlayer/models/governance/framework_list_rules_params.rbi +68 -0
  92. data/rbi/openlayer/models/governance/framework_list_rules_response.rbi +1298 -0
  93. data/rbi/openlayer/models/governance/framework_retrieve_params.rbi +40 -0
  94. data/rbi/openlayer/models/governance/framework_retrieve_response.rbi +730 -0
  95. data/rbi/openlayer/models/governance/framework_update_params.rbi +425 -0
  96. data/rbi/openlayer/models/governance/framework_update_response.rbi +730 -0
  97. data/rbi/openlayer/models/governance/frameworks/document_list_params.rbi +70 -0
  98. data/rbi/openlayer/models/governance/frameworks/document_list_response.rbi +1012 -0
  99. data/rbi/openlayer/models/governance/frameworks/document_retrieve_params.rbi +50 -0
  100. data/rbi/openlayer/models/governance/frameworks/document_retrieve_response.rbi +968 -0
  101. data/rbi/openlayer/models/governance/frameworks/section_list_rules_params.rbi +193 -0
  102. data/rbi/openlayer/models/governance/frameworks/section_list_rules_response.rbi +1302 -0
  103. data/rbi/openlayer/models/governance/frameworks/subsection_list_rules_params.rbi +182 -0
  104. data/rbi/openlayer/models/governance/frameworks/subsection_list_rules_response.rbi +1302 -0
  105. data/rbi/openlayer/models/governance/rule_create_params.rbi +276 -0
  106. data/rbi/openlayer/models/governance/rule_create_response.rbi +1253 -0
  107. data/rbi/openlayer/models/governance/rule_delete_params.rbi +40 -0
  108. data/rbi/openlayer/models/governance/rule_list_params.rbi +486 -0
  109. data/rbi/openlayer/models/governance/rule_list_response.rbi +1294 -0
  110. data/rbi/openlayer/models/governance/rule_result_create_evidence_params.rbi +88 -0
  111. data/rbi/openlayer/models/governance/rule_result_create_evidence_response.rbi +108 -0
  112. data/rbi/openlayer/models/governance/rule_result_list_evidence_params.rbi +68 -0
  113. data/rbi/openlayer/models/governance/rule_result_list_evidence_response.rbi +151 -0
  114. data/rbi/openlayer/models/governance/rule_result_list_params.rbi +322 -0
  115. data/rbi/openlayer/models/governance/rule_result_list_response.rbi +567 -0
  116. data/rbi/openlayer/models/governance/rule_result_retrieve_params.rbi +43 -0
  117. data/rbi/openlayer/models/governance/rule_result_retrieve_response.rbi +524 -0
  118. data/rbi/openlayer/models/governance/rule_result_update_params.rbi +373 -0
  119. data/rbi/openlayer/models/governance/rule_result_update_response.rbi +524 -0
  120. data/rbi/openlayer/models/governance/rule_retrieve_params.rbi +40 -0
  121. data/rbi/openlayer/models/governance/rule_retrieve_response.rbi +1253 -0
  122. data/rbi/openlayer/models/governance/rule_stat_retrieve_params.rbi +68 -0
  123. data/rbi/openlayer/models/governance/rule_stat_retrieve_response.rbi +874 -0
  124. data/rbi/openlayer/models/governance/rule_tag_list_params.rbi +68 -0
  125. data/rbi/openlayer/models/governance/rule_tag_list_response.rbi +139 -0
  126. data/rbi/openlayer/models/governance/rule_update_params.rbi +106 -0
  127. data/rbi/openlayer/models/governance/rule_update_response.rbi +1253 -0
  128. data/rbi/openlayer/models/inference_pipeline_retrieve_response.rbi +0 -5
  129. data/rbi/openlayer/models/inference_pipeline_update_response.rbi +0 -5
  130. data/rbi/openlayer/models/project_create_response.rbi +0 -5
  131. data/rbi/openlayer/models/project_list_response.rbi +0 -5
  132. data/rbi/openlayer/models/project_update_response.rbi +0 -5
  133. data/rbi/openlayer/models/projects/inference_pipeline_create_params.rbi +0 -5
  134. data/rbi/openlayer/models/projects/inference_pipeline_create_response.rbi +0 -5
  135. data/rbi/openlayer/models/projects/inference_pipeline_list_response.rbi +0 -5
  136. data/rbi/openlayer/models/storage/presigned_url_retrieve_params.rbi +45 -0
  137. data/rbi/openlayer/models/storage/presigned_url_retrieve_response.rbi +32 -0
  138. data/rbi/openlayer/models.rbi +4 -0
  139. data/rbi/openlayer/resources/background_tasks.rbi +30 -0
  140. data/rbi/openlayer/resources/governance/frameworks/documents.rbi +65 -0
  141. data/rbi/openlayer/resources/governance/frameworks/sections.rbi +60 -0
  142. data/rbi/openlayer/resources/governance/frameworks/subsections.rbi +56 -0
  143. data/rbi/openlayer/resources/governance/frameworks.rbi +314 -0
  144. data/rbi/openlayer/resources/governance/rule_results.rbi +193 -0
  145. data/rbi/openlayer/resources/governance/rule_stats.rbi +38 -0
  146. data/rbi/openlayer/resources/governance/rule_tags.rbi +38 -0
  147. data/rbi/openlayer/resources/governance/rules.rbi +233 -0
  148. data/rbi/openlayer/resources/governance.rbi +27 -0
  149. data/rbi/openlayer/resources/storage/presigned_url.rbi +23 -0
  150. data/sig/openlayer/client.rbs +4 -0
  151. data/sig/openlayer/models/background_task_retrieve_params.rbs +23 -0
  152. data/sig/openlayer/models/background_task_retrieve_response.rbs +55 -0
  153. data/sig/openlayer/models/governance/framework_create_params.rbs +124 -0
  154. data/sig/openlayer/models/governance/framework_create_response.rbs +293 -0
  155. data/sig/openlayer/models/governance/framework_export_params.rbs +30 -0
  156. data/sig/openlayer/models/governance/framework_export_response.rbs +21 -0
  157. data/sig/openlayer/models/governance/framework_list_params.rbs +145 -0
  158. data/sig/openlayer/models/governance/framework_list_project_rule_stats_params.rbs +87 -0
  159. data/sig/openlayer/models/governance/framework_list_project_rule_stats_response.rbs +232 -0
  160. data/sig/openlayer/models/governance/framework_list_projects_params.rbs +38 -0
  161. data/sig/openlayer/models/governance/framework_list_projects_response.rbs +248 -0
  162. data/sig/openlayer/models/governance/framework_list_response.rbs +314 -0
  163. data/sig/openlayer/models/governance/framework_list_rules_params.rbs +38 -0
  164. data/sig/openlayer/models/governance/framework_list_rules_response.rbs +547 -0
  165. data/sig/openlayer/models/governance/framework_retrieve_params.rbs +25 -0
  166. data/sig/openlayer/models/governance/framework_retrieve_response.rbs +293 -0
  167. data/sig/openlayer/models/governance/framework_update_params.rbs +175 -0
  168. data/sig/openlayer/models/governance/framework_update_response.rbs +293 -0
  169. data/sig/openlayer/models/governance/frameworks/document_list_params.rbs +40 -0
  170. data/sig/openlayer/models/governance/frameworks/document_list_response.rbs +435 -0
  171. data/sig/openlayer/models/governance/frameworks/document_retrieve_params.rbs +32 -0
  172. data/sig/openlayer/models/governance/frameworks/document_retrieve_response.rbs +418 -0
  173. data/sig/openlayer/models/governance/frameworks/section_list_rules_params.rbs +102 -0
  174. data/sig/openlayer/models/governance/frameworks/section_list_rules_response.rbs +549 -0
  175. data/sig/openlayer/models/governance/frameworks/subsection_list_rules_params.rbs +95 -0
  176. data/sig/openlayer/models/governance/frameworks/subsection_list_rules_response.rbs +549 -0
  177. data/sig/openlayer/models/governance/rule_create_params.rbs +120 -0
  178. data/sig/openlayer/models/governance/rule_create_response.rbs +530 -0
  179. data/sig/openlayer/models/governance/rule_delete_params.rbs +25 -0
  180. data/sig/openlayer/models/governance/rule_list_params.rbs +228 -0
  181. data/sig/openlayer/models/governance/rule_list_response.rbs +547 -0
  182. data/sig/openlayer/models/governance/rule_result_create_evidence_params.rbs +53 -0
  183. data/sig/openlayer/models/governance/rule_result_create_evidence_response.rbs +62 -0
  184. data/sig/openlayer/models/governance/rule_result_list_evidence_params.rbs +38 -0
  185. data/sig/openlayer/models/governance/rule_result_list_evidence_response.rbs +79 -0
  186. data/sig/openlayer/models/governance/rule_result_list_params.rbs +156 -0
  187. data/sig/openlayer/models/governance/rule_result_list_response.rbs +252 -0
  188. data/sig/openlayer/models/governance/rule_result_retrieve_params.rbs +26 -0
  189. data/sig/openlayer/models/governance/rule_result_retrieve_response.rbs +235 -0
  190. data/sig/openlayer/models/governance/rule_result_update_params.rbs +165 -0
  191. data/sig/openlayer/models/governance/rule_result_update_response.rbs +235 -0
  192. data/sig/openlayer/models/governance/rule_retrieve_params.rbs +25 -0
  193. data/sig/openlayer/models/governance/rule_retrieve_response.rbs +530 -0
  194. data/sig/openlayer/models/governance/rule_stat_retrieve_params.rbs +38 -0
  195. data/sig/openlayer/models/governance/rule_stat_retrieve_response.rbs +434 -0
  196. data/sig/openlayer/models/governance/rule_tag_list_params.rbs +38 -0
  197. data/sig/openlayer/models/governance/rule_tag_list_response.rbs +74 -0
  198. data/sig/openlayer/models/governance/rule_update_params.rbs +62 -0
  199. data/sig/openlayer/models/governance/rule_update_response.rbs +530 -0
  200. data/sig/openlayer/models/inference_pipeline_retrieve_response.rbs +1 -2
  201. data/sig/openlayer/models/inference_pipeline_update_response.rbs +1 -2
  202. data/sig/openlayer/models/project_create_response.rbs +1 -2
  203. data/sig/openlayer/models/project_list_response.rbs +1 -2
  204. data/sig/openlayer/models/project_update_response.rbs +1 -2
  205. data/sig/openlayer/models/projects/inference_pipeline_create_params.rbs +1 -2
  206. data/sig/openlayer/models/projects/inference_pipeline_create_response.rbs +1 -2
  207. data/sig/openlayer/models/projects/inference_pipeline_list_response.rbs +1 -2
  208. data/sig/openlayer/models/storage/presigned_url_retrieve_params.rbs +25 -0
  209. data/sig/openlayer/models/storage/presigned_url_retrieve_response.rbs +15 -0
  210. data/sig/openlayer/models.rbs +4 -0
  211. data/sig/openlayer/resources/background_tasks.rbs +12 -0
  212. data/sig/openlayer/resources/governance/frameworks/documents.rbs +24 -0
  213. data/sig/openlayer/resources/governance/frameworks/sections.rbs +23 -0
  214. data/sig/openlayer/resources/governance/frameworks/subsections.rbs +22 -0
  215. data/sig/openlayer/resources/governance/frameworks.rbs +88 -0
  216. data/sig/openlayer/resources/governance/rule_results.rbs +57 -0
  217. data/sig/openlayer/resources/governance/rule_stats.rbs +16 -0
  218. data/sig/openlayer/resources/governance/rule_tags.rbs +16 -0
  219. data/sig/openlayer/resources/governance/rules.rbs +68 -0
  220. data/sig/openlayer/resources/governance.rbs +17 -0
  221. data/sig/openlayer/resources/storage/presigned_url.rbs +5 -0
  222. metadata +185 -2
@@ -0,0 +1,212 @@
1
+ # frozen_string_literal: true
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
+ #
13
+ # @overload retrieve(rule_result_id, request_options: {})
14
+ #
15
+ # @param rule_result_id [String] The rule result id.
16
+ #
17
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
18
+ #
19
+ # @return [Openlayer::Models::Governance::RuleResultRetrieveResponse]
20
+ #
21
+ # @see Openlayer::Models::Governance::RuleResultRetrieveParams
22
+ def retrieve(rule_result_id, params = {})
23
+ @client.request(
24
+ method: :get,
25
+ path: ["rule-results/%1$s", rule_result_id],
26
+ model: Openlayer::Models::Governance::RuleResultRetrieveResponse,
27
+ options: params[:request_options]
28
+ )
29
+ end
30
+
31
+ # Update a rule result. Only the fields you send are changed.
32
+ #
33
+ # Use this to assign an owner, or to exclude a single result from compliance
34
+ # without deactivating the rule everywhere. `deactivatedReason` is required when
35
+ # setting `deactivated` to `true`.
36
+ #
37
+ # A result's `status` is computed by Openlayer and cannot be set directly.
38
+ #
39
+ # @overload update(rule_result_id, assignee_id: nil, blocked_by: nil, blocking: nil, deactivated: nil, deactivated_reason: nil, request_options: {})
40
+ #
41
+ # @param rule_result_id [String] The rule result id.
42
+ #
43
+ # @param assignee_id [String, nil] The user responsible for this result.
44
+ #
45
+ # @param blocked_by [Array<Openlayer::Models::Governance::RuleResultUpdateParams::BlockedBy>] Rule results that must pass before this one can be satisfied.
46
+ #
47
+ # @param blocking [Array<Openlayer::Models::Governance::RuleResultUpdateParams::Blocking>] Rule results that this one blocks.
48
+ #
49
+ # @param deactivated [Boolean] Whether this result is excluded from compliance calculations.
50
+ #
51
+ # @param deactivated_reason [String, nil] Why the result was excluded.
52
+ #
53
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
54
+ #
55
+ # @return [Openlayer::Models::Governance::RuleResultUpdateResponse]
56
+ #
57
+ # @see Openlayer::Models::Governance::RuleResultUpdateParams
58
+ def update(rule_result_id, params = {})
59
+ parsed, options = Openlayer::Governance::RuleResultUpdateParams.dump_request(params)
60
+ @client.request(
61
+ method: :patch,
62
+ path: ["rule-results/%1$s", rule_result_id],
63
+ body: parsed,
64
+ model: Openlayer::Models::Governance::RuleResultUpdateResponse,
65
+ options: options
66
+ )
67
+ end
68
+
69
+ # List rule results across a workspace.
70
+ #
71
+ # A rule result is the compliance status of one rule for one entity: a project for
72
+ # project-scoped rules, or the workspace itself for workspace-scoped rules. This
73
+ # is the endpoint to poll or export when you want your current compliance state,
74
+ # filtered to a framework, a project, or a status.
75
+ #
76
+ # @overload list(workspace_id, enabled_framework_only: nil, framework_id: nil, include_unframed: nil, page: nil, per_page: nil, project_id: nil, rule_id: nil, scope: nil, search_query: nil, status: nil, type: nil, request_options: {})
77
+ #
78
+ # @param workspace_id [String] The workspace id.
79
+ #
80
+ # @param enabled_framework_only [Boolean] Only include items belonging to at least one enabled framework.
81
+ #
82
+ # @param framework_id [String] Only include items belonging to this framework.
83
+ #
84
+ # @param include_unframed [Boolean] Whether to include rules that are not part of any framework.
85
+ #
86
+ # @param page [Integer] The page to return in a paginated query.
87
+ #
88
+ # @param per_page [Integer] Maximum number of items to return per page.
89
+ #
90
+ # @param project_id [String] Only include items that apply to this project.
91
+ #
92
+ # @param rule_id [String] Only include results of this rule.
93
+ #
94
+ # @param scope [Symbol, Openlayer::Models::Governance::RuleResultListParams::Scope] Only include rules with this scope.
95
+ #
96
+ # @param search_query [String] Filter by a free-text search over names and descriptions.
97
+ #
98
+ # @param status [Symbol, Openlayer::Models::Governance::RuleResultListParams::Status] Only include items whose rule result has this compliance status.
99
+ #
100
+ # @param type [Symbol, Openlayer::Models::Governance::RuleResultListParams::Type] Only include rules of this type.
101
+ #
102
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
103
+ #
104
+ # @return [Openlayer::Models::Governance::RuleResultListResponse]
105
+ #
106
+ # @see Openlayer::Models::Governance::RuleResultListParams
107
+ def list(workspace_id, params = {})
108
+ parsed, options = Openlayer::Governance::RuleResultListParams.dump_request(params)
109
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
110
+ @client.request(
111
+ method: :get,
112
+ path: ["workspaces/%1$s/rule-results", workspace_id],
113
+ query: query.transform_keys(
114
+ enabled_framework_only: "enabledFrameworkOnly",
115
+ framework_id: "frameworkId",
116
+ include_unframed: "includeUnframed",
117
+ per_page: "perPage",
118
+ project_id: "projectId",
119
+ rule_id: "ruleId",
120
+ search_query: "searchQuery"
121
+ ),
122
+ model: Openlayer::Models::Governance::RuleResultListResponse,
123
+ options: options
124
+ )
125
+ end
126
+
127
+ # Some parameter documentations has been truncated, see
128
+ # {Openlayer::Models::Governance::RuleResultCreateEvidenceParams} for more
129
+ # details.
130
+ #
131
+ # Attach evidence to a rule result, satisfying an evidence rule.
132
+ #
133
+ # Send the field that matches the rule's `evidenceType`: `storageUri` for an
134
+ # uploaded document, `text` for a written statement, or `url` for a link.
135
+ #
136
+ # For a document, upload the file first with `POST /storage/presigned-url` and
137
+ # send the resulting storage URI as `storageUri`.
138
+ #
139
+ # Attaching evidence re-evaluates the rule result. If the rule sets
140
+ # `renewalCadenceDays`, the renewal window restarts from this evidence.
141
+ #
142
+ # @overload create_evidence(rule_result_id, description: nil, name: nil, storage_uri: nil, text: nil, url: nil, request_options: {})
143
+ #
144
+ # @param rule_result_id [String] The rule result id.
145
+ #
146
+ # @param description [String, nil] A description of what the evidence shows.
147
+ #
148
+ # @param name [String, nil] The evidence name.
149
+ #
150
+ # @param storage_uri [String, nil] Where the uploaded file is stored. Set when the rule's `evidenceType` is `docume
151
+ #
152
+ # @param text [String, nil] The evidence text. Set when the rule's `evidenceType` is `text`.
153
+ #
154
+ # @param url [String, nil] A link to the evidence. Set when the rule's `evidenceType` is `url`.
155
+ #
156
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
157
+ #
158
+ # @return [Openlayer::Models::Governance::RuleResultCreateEvidenceResponse]
159
+ #
160
+ # @see Openlayer::Models::Governance::RuleResultCreateEvidenceParams
161
+ def create_evidence(rule_result_id, params = {})
162
+ parsed, options = Openlayer::Governance::RuleResultCreateEvidenceParams.dump_request(params)
163
+ @client.request(
164
+ method: :post,
165
+ path: ["rule-results/%1$s/evidence", rule_result_id],
166
+ body: parsed,
167
+ model: Openlayer::Models::Governance::RuleResultCreateEvidenceResponse,
168
+ options: options
169
+ )
170
+ end
171
+
172
+ # List the evidence attached to a rule result.
173
+ #
174
+ # Which field carries the evidence depends on the rule's `evidenceType`:
175
+ # `storageUri` for uploaded documents, `text` for written statements, and `url`
176
+ # for links.
177
+ #
178
+ # @overload list_evidence(rule_result_id, page: nil, per_page: nil, request_options: {})
179
+ #
180
+ # @param rule_result_id [String] The rule result id.
181
+ #
182
+ # @param page [Integer] The page to return in a paginated query.
183
+ #
184
+ # @param per_page [Integer] Maximum number of items to return per page.
185
+ #
186
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
187
+ #
188
+ # @return [Openlayer::Models::Governance::RuleResultListEvidenceResponse]
189
+ #
190
+ # @see Openlayer::Models::Governance::RuleResultListEvidenceParams
191
+ def list_evidence(rule_result_id, params = {})
192
+ parsed, options = Openlayer::Governance::RuleResultListEvidenceParams.dump_request(params)
193
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
194
+ @client.request(
195
+ method: :get,
196
+ path: ["rule-results/%1$s/evidence", rule_result_id],
197
+ query: query.transform_keys(per_page: "perPage"),
198
+ model: Openlayer::Models::Governance::RuleResultListEvidenceResponse,
199
+ options: options
200
+ )
201
+ end
202
+
203
+ # @api private
204
+ #
205
+ # @param client [Openlayer::Client]
206
+ def initialize(client:)
207
+ @client = client
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
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
+ #
13
+ # @overload retrieve(workspace_id, framework_id: nil, project_id: nil, request_options: {})
14
+ #
15
+ # @param workspace_id [String] The workspace id.
16
+ #
17
+ # @param framework_id [String] Only include items belonging to this framework.
18
+ #
19
+ # @param project_id [String] Only include items that apply to this project.
20
+ #
21
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [Openlayer::Models::Governance::RuleStatRetrieveResponse]
24
+ #
25
+ # @see Openlayer::Models::Governance::RuleStatRetrieveParams
26
+ def retrieve(workspace_id, params = {})
27
+ parsed, options = Openlayer::Governance::RuleStatRetrieveParams.dump_request(params)
28
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
29
+ @client.request(
30
+ method: :get,
31
+ path: ["workspaces/%1$s/rule-stats", workspace_id],
32
+ query: query.transform_keys(framework_id: "frameworkId", project_id: "projectId"),
33
+ model: Openlayer::Models::Governance::RuleStatRetrieveResponse,
34
+ options: options
35
+ )
36
+ end
37
+
38
+ # @api private
39
+ #
40
+ # @param client [Openlayer::Client]
41
+ def initialize(client:)
42
+ @client = client
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
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
+ #
13
+ # @overload list(workspace_id, page: nil, per_page: nil, request_options: {})
14
+ #
15
+ # @param workspace_id [String] The workspace id.
16
+ #
17
+ # @param page [Integer] The page to return in a paginated query.
18
+ #
19
+ # @param per_page [Integer] Maximum number of items to return per page.
20
+ #
21
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [Openlayer::Models::Governance::RuleTagListResponse]
24
+ #
25
+ # @see Openlayer::Models::Governance::RuleTagListParams
26
+ def list(workspace_id, params = {})
27
+ parsed, options = Openlayer::Governance::RuleTagListParams.dump_request(params)
28
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
29
+ @client.request(
30
+ method: :get,
31
+ path: ["workspaces/%1$s/rule-tags", workspace_id],
32
+ query: query.transform_keys(per_page: "perPage"),
33
+ model: Openlayer::Models::Governance::RuleTagListResponse,
34
+ options: options
35
+ )
36
+ end
37
+
38
+ # @api private
39
+ #
40
+ # @param client [Openlayer::Client]
41
+ def initialize(client:)
42
+ @client = client
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,241 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Rules
7
+ # Some parameter documentations has been truncated, see
8
+ # {Openlayer::Models::Governance::RuleCreateParams} for more details.
9
+ #
10
+ # Create a governance rule in a workspace.
11
+ #
12
+ # A rule is one requirement. Its `type` decides how it is satisfied, and the two
13
+ # types accept different fields:
14
+ #
15
+ # - `platform` rules are evaluated automatically from the state of your workspace.
16
+ # Set `automationType` to the signal to check. Their `scope` must be `project`,
17
+ # and `evidenceType` and `renewalCadenceDays` must be omitted or `null`.
18
+ # - `evidence` rules are satisfied by attaching evidence. Set `evidenceType` to
19
+ # the kind of evidence that satisfies them. `automationType` and
20
+ # `automationParams` must be omitted or `null`.
21
+ #
22
+ # A new rule belongs to no framework. Map it to one from the Openlayer app.
23
+ #
24
+ # @overload create(workspace_id, name:, scope:, type:, assignee_id: nil, automation_params: nil, automation_type: nil, deactivated: nil, description: nil, evidence_type: nil, renewal_cadence_days: nil, tag_ids: nil, request_options: {})
25
+ #
26
+ # @param workspace_id [String] The workspace id.
27
+ #
28
+ # @param name [String] The rule name.
29
+ #
30
+ # @param scope [Symbol, Openlayer::Models::Governance::RuleCreateParams::Scope] Whether the rule is evaluated once for the whole workspace, or once per project
31
+ #
32
+ # @param type [Symbol, Openlayer::Models::Governance::RuleCreateParams::Type] `platform` rules are evaluated automatically from the state of your Openlayer wo
33
+ #
34
+ # @param assignee_id [String, nil] The user responsible for satisfying the rule.
35
+ #
36
+ # @param automation_params [Hash{Symbol=>Object}, nil] Configuration for the platform check, when the automation takes parameters.
37
+ #
38
+ # @param automation_type [String, nil] Which workspace signal a platform rule checks, for example `monitoring_mode_enab
39
+ #
40
+ # @param deactivated [Boolean] Whether the rule is excluded from compliance calculations.
41
+ #
42
+ # @param description [String, nil] What the rule requires.
43
+ #
44
+ # @param evidence_type [Symbol, Openlayer::Models::Governance::RuleCreateParams::EvidenceType, nil] The kind of evidence that satisfies the rule. `null` for platform rules.
45
+ #
46
+ # @param renewal_cadence_days [Integer, nil] How often evidence must be renewed, in days. Once evidence is older than this, t
47
+ #
48
+ # @param tag_ids [Array<String>, nil] The ids of the rule tags to associate with the rule. Replaces the rule's tags. R
49
+ #
50
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
51
+ #
52
+ # @return [Openlayer::Models::Governance::RuleCreateResponse]
53
+ #
54
+ # @see Openlayer::Models::Governance::RuleCreateParams
55
+ def create(workspace_id, params)
56
+ parsed, options = Openlayer::Governance::RuleCreateParams.dump_request(params)
57
+ @client.request(
58
+ method: :post,
59
+ path: ["workspaces/%1$s/rules", workspace_id],
60
+ body: parsed,
61
+ model: Openlayer::Models::Governance::RuleCreateResponse,
62
+ options: options
63
+ )
64
+ end
65
+
66
+ # Retrieve a governance rule by its id, including the frameworks it belongs to and
67
+ # its tags.
68
+ #
69
+ # @overload retrieve(rule_id, request_options: {})
70
+ #
71
+ # @param rule_id [String] The rule id.
72
+ #
73
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
74
+ #
75
+ # @return [Openlayer::Models::Governance::RuleRetrieveResponse]
76
+ #
77
+ # @see Openlayer::Models::Governance::RuleRetrieveParams
78
+ def retrieve(rule_id, params = {})
79
+ @client.request(
80
+ method: :get,
81
+ path: ["rules/%1$s", rule_id],
82
+ model: Openlayer::Models::Governance::RuleRetrieveResponse,
83
+ options: params[:request_options]
84
+ )
85
+ end
86
+
87
+ # Some parameter documentations has been truncated, see
88
+ # {Openlayer::Models::Governance::RuleUpdateParams} for more details.
89
+ #
90
+ # Update a governance rule. Only the fields you send are changed.
91
+ #
92
+ # Rules that ship with Openlayer report `immutable: true` and cannot be edited.
93
+ #
94
+ # A rule's `scope`, `type`, `evidenceType`, and automation are fixed once it
95
+ # exists -- create a new rule instead of converting one.
96
+ #
97
+ # @overload update(rule_id, assignee_id: nil, deactivated: nil, description: nil, name: nil, renewal_cadence_days: nil, tag_ids: nil, request_options: {})
98
+ #
99
+ # @param rule_id [String] The rule id.
100
+ #
101
+ # @param assignee_id [String, nil] The user responsible for satisfying the rule.
102
+ #
103
+ # @param deactivated [Boolean] Whether the rule is excluded from compliance calculations.
104
+ #
105
+ # @param description [String, nil] What the rule requires.
106
+ #
107
+ # @param name [String] The rule name.
108
+ #
109
+ # @param renewal_cadence_days [Integer, nil] How often evidence must be renewed, in days. Once evidence is older than this, t
110
+ #
111
+ # @param tag_ids [Array<String>, nil] The ids of the rule tags to associate with the rule. Replaces the rule's tags. R
112
+ #
113
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
114
+ #
115
+ # @return [Openlayer::Models::Governance::RuleUpdateResponse]
116
+ #
117
+ # @see Openlayer::Models::Governance::RuleUpdateParams
118
+ def update(rule_id, params = {})
119
+ parsed, options = Openlayer::Governance::RuleUpdateParams.dump_request(params)
120
+ @client.request(
121
+ method: :put,
122
+ path: ["rules/%1$s", rule_id],
123
+ body: parsed,
124
+ model: Openlayer::Models::Governance::RuleUpdateResponse,
125
+ options: options
126
+ )
127
+ end
128
+
129
+ # Some parameter documentations has been truncated, see
130
+ # {Openlayer::Models::Governance::RuleListParams} for more details.
131
+ #
132
+ # List the governance rules in a workspace.
133
+ #
134
+ # A rule is a single requirement Openlayer tracks. `platform` rules are evaluated
135
+ # automatically from the state of your workspace; `evidence` rules are satisfied
136
+ # by attaching evidence. A rule can belong to several frameworks at once, and
137
+ # rules that belong to none are returned too unless you pass
138
+ # `includeUnframed=false`.
139
+ #
140
+ # Pass `includeResults=true` to get each rule's compliance results inline instead
141
+ # of fetching them separately.
142
+ #
143
+ # @overload list(workspace_id, asc: nil, assignee_id: nil, deactivated: nil, enabled_framework_only: nil, framework_id: nil, group: nil, include_results: nil, include_unframed: nil, page: nil, per_page: nil, project_id: nil, scope: nil, search_query: nil, sort_by: nil, status: nil, tags: nil, type: nil, request_options: {})
144
+ #
145
+ # @param workspace_id [String] The workspace id.
146
+ #
147
+ # @param asc [Boolean] Whether to sort in ascending order.
148
+ #
149
+ # @param assignee_id [String] Only include rules assigned to this user.
150
+ #
151
+ # @param deactivated [Boolean] Only include rules that are deactivated (or active).
152
+ #
153
+ # @param enabled_framework_only [Boolean] Only include items belonging to at least one enabled framework.
154
+ #
155
+ # @param framework_id [String] Only include items belonging to this framework.
156
+ #
157
+ # @param group [Symbol, Openlayer::Models::Governance::RuleListParams::Group] Only include rules in one bucket of the compliance workflow. `open` covers rules
158
+ #
159
+ # @param include_results [Boolean] Whether to include each rule's results inline, in a `results` array.
160
+ #
161
+ # @param include_unframed [Boolean] Whether to include rules that are not part of any framework.
162
+ #
163
+ # @param page [Integer] The page to return in a paginated query.
164
+ #
165
+ # @param per_page [Integer] Maximum number of items to return per page.
166
+ #
167
+ # @param project_id [String] Only include items that apply to this project.
168
+ #
169
+ # @param scope [Symbol, Openlayer::Models::Governance::RuleListParams::Scope] Only include rules with this scope.
170
+ #
171
+ # @param search_query [String] Filter by a free-text search over names and descriptions.
172
+ #
173
+ # @param sort_by [Symbol, Openlayer::Models::Governance::RuleListParams::SortBy] The field to sort on.
174
+ #
175
+ # @param status [Symbol, Openlayer::Models::Governance::RuleListParams::Status] Only include items whose rule result has this compliance status.
176
+ #
177
+ # @param tags [Array<String>] Only include rules carrying all of these rule tags. Pass tag ids, which you can
178
+ #
179
+ # @param type [Symbol, Openlayer::Models::Governance::RuleListParams::Type] Only include rules of this type.
180
+ #
181
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
182
+ #
183
+ # @return [Openlayer::Models::Governance::RuleListResponse]
184
+ #
185
+ # @see Openlayer::Models::Governance::RuleListParams
186
+ def list(workspace_id, params = {})
187
+ parsed, options = Openlayer::Governance::RuleListParams.dump_request(params)
188
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
189
+ @client.request(
190
+ method: :get,
191
+ path: ["workspaces/%1$s/rules", workspace_id],
192
+ query: query.transform_keys(
193
+ assignee_id: "assigneeId",
194
+ enabled_framework_only: "enabledFrameworkOnly",
195
+ framework_id: "frameworkId",
196
+ include_results: "includeResults",
197
+ include_unframed: "includeUnframed",
198
+ per_page: "perPage",
199
+ project_id: "projectId",
200
+ search_query: "searchQuery",
201
+ sort_by: "sortBy"
202
+ ),
203
+ model: Openlayer::Models::Governance::RuleListResponse,
204
+ options: 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
+ #
214
+ # @overload delete(rule_id, request_options: {})
215
+ #
216
+ # @param rule_id [String] The rule id.
217
+ #
218
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
219
+ #
220
+ # @return [nil]
221
+ #
222
+ # @see Openlayer::Models::Governance::RuleDeleteParams
223
+ def delete(rule_id, params = {})
224
+ @client.request(
225
+ method: :delete,
226
+ path: ["rules/%1$s", rule_id],
227
+ model: NilClass,
228
+ options: params[:request_options]
229
+ )
230
+ end
231
+
232
+ # @api private
233
+ #
234
+ # @param client [Openlayer::Client]
235
+ def initialize(client:)
236
+ @client = client
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ # @return [Openlayer::Resources::Governance::Frameworks]
7
+ attr_reader :frameworks
8
+
9
+ # @return [Openlayer::Resources::Governance::Rules]
10
+ attr_reader :rules
11
+
12
+ # @return [Openlayer::Resources::Governance::RuleResults]
13
+ attr_reader :rule_results
14
+
15
+ # @return [Openlayer::Resources::Governance::RuleStats]
16
+ attr_reader :rule_stats
17
+
18
+ # @return [Openlayer::Resources::Governance::RuleTags]
19
+ attr_reader :rule_tags
20
+
21
+ # @api private
22
+ #
23
+ # @param client [Openlayer::Client]
24
+ def initialize(client:)
25
+ @client = client
26
+ @frameworks = Openlayer::Resources::Governance::Frameworks.new(client: client)
27
+ @rules = Openlayer::Resources::Governance::Rules.new(client: client)
28
+ @rule_results = Openlayer::Resources::Governance::RuleResults.new(client: client)
29
+ @rule_stats = Openlayer::Resources::Governance::RuleStats.new(client: client)
30
+ @rule_tags = Openlayer::Resources::Governance::RuleTags.new(client: client)
31
+ end
32
+ end
33
+ end
34
+ end
@@ -27,6 +27,38 @@ module Openlayer
27
27
  )
28
28
  end
29
29
 
30
+ # Exchange a `storageUri` for a short-lived presigned url you can download the
31
+ # object from.
32
+ #
33
+ # Use it to collect anything the platform stored on your behalf -- for example the
34
+ # archive a framework export leaves behind, whose `storageUri` comes back in the
35
+ # background task's `outputs`.
36
+ #
37
+ # The workspace is taken from the API key, so there is nothing else to send. The
38
+ # url is only issued for objects your workspace owns, and `404` covers both "no
39
+ # such object" and "not yours".
40
+ #
41
+ # @overload retrieve(storage_uri:, request_options: {})
42
+ #
43
+ # @param storage_uri [String] The object's storage uri.
44
+ #
45
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
46
+ #
47
+ # @return [Openlayer::Models::Storage::PresignedURLRetrieveResponse]
48
+ #
49
+ # @see Openlayer::Models::Storage::PresignedURLRetrieveParams
50
+ def retrieve(params)
51
+ parsed, options = Openlayer::Storage::PresignedURLRetrieveParams.dump_request(params)
52
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
53
+ @client.request(
54
+ method: :get,
55
+ path: "storage/presigned-url",
56
+ query: query.transform_keys(storage_uri: "storageUri"),
57
+ model: Openlayer::Models::Storage::PresignedURLRetrieveResponse,
58
+ options: options
59
+ )
60
+ end
61
+
30
62
  # @api private
31
63
  #
32
64
  # @param client [Openlayer::Client]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Openlayer
4
- VERSION = "0.15.0"
4
+ VERSION = "0.16.0"
5
5
  end