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,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
@@ -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