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
@@ -884,7 +884,6 @@ module Openlayer
884
884
 
885
885
  WEB = :web
886
886
  API = :api
887
- NULL = :null
888
887
 
889
888
  # @!method self.values
890
889
  # @return [Array<Symbol>]
@@ -897,7 +897,6 @@ module Openlayer
897
897
 
898
898
  WEB = :web
899
899
  API = :api
900
- NULL = :null
901
900
 
902
901
  # @!method self.values
903
902
  # @return [Array<Symbol>]
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Storage
6
+ # @see Openlayer::Resources::Storage::PresignedURL#retrieve
7
+ class PresignedURLRetrieveParams < Openlayer::Internal::Type::BaseModel
8
+ extend Openlayer::Internal::Type::RequestParameters::Converter
9
+ include Openlayer::Internal::Type::RequestParameters
10
+
11
+ # @!attribute storage_uri
12
+ # The object's storage uri.
13
+ #
14
+ # @return [String]
15
+ required :storage_uri, String
16
+
17
+ # @!method initialize(storage_uri:, request_options: {})
18
+ # @param storage_uri [String] The object's storage uri.
19
+ #
20
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Storage
6
+ # @see Openlayer::Resources::Storage::PresignedURL#retrieve
7
+ class PresignedURLRetrieveResponse < Openlayer::Internal::Type::BaseModel
8
+ # @!attribute url
9
+ # The presigned url. Short-lived -- download promptly.
10
+ #
11
+ # @return [String]
12
+ required :url, String
13
+
14
+ # @!method initialize(url:)
15
+ # @param url [String] The presigned url. Short-lived -- download promptly.
16
+ end
17
+ end
18
+ end
19
+ end
@@ -39,10 +39,14 @@ module Openlayer
39
39
  mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
40
40
  end
41
41
 
42
+ BackgroundTaskRetrieveParams = Openlayer::Models::BackgroundTaskRetrieveParams
43
+
42
44
  CommitRetrieveParams = Openlayer::Models::CommitRetrieveParams
43
45
 
44
46
  Commits = Openlayer::Models::Commits
45
47
 
48
+ Governance = Openlayer::Models::Governance
49
+
46
50
  InferencePipelineDeleteParams = Openlayer::Models::InferencePipelineDeleteParams
47
51
 
48
52
  InferencePipelineRetrieveParams = Openlayer::Models::InferencePipelineRetrieveParams
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class BackgroundTasks
6
+ # Retrieve a background task's status, progress and results.
7
+ #
8
+ # Endpoints that cannot answer within one request queue a task and hand back its
9
+ # id -- for example `POST /frameworks/{frameworkId}/export`. Poll this endpoint
10
+ # until `complete` is `true`, then read what the task produced from `outputs`.
11
+ #
12
+ # @overload retrieve(task_id, request_options: {})
13
+ #
14
+ # @param task_id [String] The background task id.
15
+ #
16
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
17
+ #
18
+ # @return [Openlayer::Models::BackgroundTaskRetrieveResponse]
19
+ #
20
+ # @see Openlayer::Models::BackgroundTaskRetrieveParams
21
+ def retrieve(task_id, params = {})
22
+ @client.request(
23
+ method: :get,
24
+ path: ["background-tasks/%1$s", task_id],
25
+ model: Openlayer::Models::BackgroundTaskRetrieveResponse,
26
+ options: params[:request_options]
27
+ )
28
+ end
29
+
30
+ # @api private
31
+ #
32
+ # @param client [Openlayer::Client]
33
+ def initialize(client:)
34
+ @client = client
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ class Documents
8
+ # Retrieve a framework document, including its sections, subsections, and the
9
+ # rules mapped to each.
10
+ #
11
+ # Each section and subsection carries a `ruleCount`, so you can tell which
12
+ # requirements have rules mapped to them before drilling in.
13
+ #
14
+ # @overload retrieve(document_id, framework_id:, request_options: {})
15
+ #
16
+ # @param document_id [String] The framework document id.
17
+ #
18
+ # @param framework_id [String] The framework id.
19
+ #
20
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
21
+ #
22
+ # @return [Openlayer::Models::Governance::Frameworks::DocumentRetrieveResponse]
23
+ #
24
+ # @see Openlayer::Models::Governance::Frameworks::DocumentRetrieveParams
25
+ def retrieve(document_id, params)
26
+ parsed, options = Openlayer::Governance::Frameworks::DocumentRetrieveParams.dump_request(params)
27
+ framework_id =
28
+ parsed.delete(:framework_id) do
29
+ raise ArgumentError.new("missing required path argument #{_1}")
30
+ end
31
+ @client.request(
32
+ method: :get,
33
+ path: ["frameworks/%1$s/documents/%2$s", framework_id, document_id],
34
+ model: Openlayer::Models::Governance::Frameworks::DocumentRetrieveResponse,
35
+ options: options
36
+ )
37
+ end
38
+
39
+ # List the documents attached to a framework.
40
+ #
41
+ # A document holds the text of the standard the framework is based on, split into
42
+ # sections and subsections. Retrieve a single document to get that structure,
43
+ # along with the rules mapped to each part of it.
44
+ #
45
+ # @overload list(framework_id, page: nil, per_page: nil, request_options: {})
46
+ #
47
+ # @param framework_id [String] The framework id.
48
+ #
49
+ # @param page [Integer] The page to return in a paginated query.
50
+ #
51
+ # @param per_page [Integer] Maximum number of items to return per page.
52
+ #
53
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
54
+ #
55
+ # @return [Openlayer::Models::Governance::Frameworks::DocumentListResponse]
56
+ #
57
+ # @see Openlayer::Models::Governance::Frameworks::DocumentListParams
58
+ def list(framework_id, params = {})
59
+ parsed, options = Openlayer::Governance::Frameworks::DocumentListParams.dump_request(params)
60
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
61
+ @client.request(
62
+ method: :get,
63
+ path: ["frameworks/%1$s/documents", framework_id],
64
+ query: query.transform_keys(per_page: "perPage"),
65
+ model: Openlayer::Models::Governance::Frameworks::DocumentListResponse,
66
+ options: options
67
+ )
68
+ end
69
+
70
+ # @api private
71
+ #
72
+ # @param client [Openlayer::Client]
73
+ def initialize(client:)
74
+ @client = client
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ class Sections
8
+ # Some parameter documentations has been truncated, see
9
+ # {Openlayer::Models::Governance::Frameworks::SectionListRulesParams} for more
10
+ # details.
11
+ #
12
+ # List the rules mapped to a section of a framework document.
13
+ #
14
+ # Pass `includeSubsectionRules=true` to also return the rules mapped to the
15
+ # section's subsections, which is how you get every rule covering a requirement
16
+ # and everything under it.
17
+ #
18
+ # @overload list_rules(section_id, framework_id:, include_results: nil, include_subsection_rules: nil, page: nil, per_page: nil, project_id: nil, status: nil, request_options: {})
19
+ #
20
+ # @param section_id [String] Path param: The framework document section id.
21
+ #
22
+ # @param framework_id [String] Path param: The framework id.
23
+ #
24
+ # @param include_results [Boolean] Query param: Whether to include each rule's results inline, in a `results` array
25
+ #
26
+ # @param include_subsection_rules [Boolean] Query param: Whether to also include the rules mapped to the section's subsectio
27
+ #
28
+ # @param page [Integer] Query param: The page to return in a paginated query.
29
+ #
30
+ # @param per_page [Integer] Query param: Maximum number of items to return per page.
31
+ #
32
+ # @param project_id [String] Query param: Only include items that apply to this project.
33
+ #
34
+ # @param status [Symbol, Openlayer::Models::Governance::Frameworks::SectionListRulesParams::Status] Query param: Only include items whose rule result has this compliance status.
35
+ #
36
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
37
+ #
38
+ # @return [Openlayer::Models::Governance::Frameworks::SectionListRulesResponse]
39
+ #
40
+ # @see Openlayer::Models::Governance::Frameworks::SectionListRulesParams
41
+ def list_rules(section_id, params)
42
+ parsed, options = Openlayer::Governance::Frameworks::SectionListRulesParams.dump_request(params)
43
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
44
+ framework_id =
45
+ parsed.delete(:framework_id) do
46
+ raise ArgumentError.new("missing required path argument #{_1}")
47
+ end
48
+ @client.request(
49
+ method: :get,
50
+ path: ["frameworks/%1$s/sections/%2$s/rules", framework_id, section_id],
51
+ query: query.transform_keys(
52
+ include_results: "includeResults",
53
+ include_subsection_rules: "includeSubsectionRules",
54
+ per_page: "perPage",
55
+ project_id: "projectId"
56
+ ),
57
+ model: Openlayer::Models::Governance::Frameworks::SectionListRulesResponse,
58
+ options: options
59
+ )
60
+ end
61
+
62
+ # @api private
63
+ #
64
+ # @param client [Openlayer::Client]
65
+ def initialize(client:)
66
+ @client = client
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ class Subsections
8
+ # Some parameter documentations has been truncated, see
9
+ # {Openlayer::Models::Governance::Frameworks::SubsectionListRulesParams} for more
10
+ # details.
11
+ #
12
+ # List the rules mapped to a subsection of a framework document.
13
+ #
14
+ # A subsection is usually the level at which a standard states an individual
15
+ # requirement, so this is the endpoint to use when you want to show which rules
16
+ # cover a specific clause.
17
+ #
18
+ # @overload list_rules(subsection_id, framework_id:, include_results: nil, page: nil, per_page: nil, project_id: nil, status: nil, request_options: {})
19
+ #
20
+ # @param subsection_id [String] Path param: The framework document subsection id.
21
+ #
22
+ # @param framework_id [String] Path param: The framework id.
23
+ #
24
+ # @param include_results [Boolean] Query param: Whether to include each rule's results inline, in a `results` array
25
+ #
26
+ # @param page [Integer] Query param: The page to return in a paginated query.
27
+ #
28
+ # @param per_page [Integer] Query param: Maximum number of items to return per page.
29
+ #
30
+ # @param project_id [String] Query param: Only include items that apply to this project.
31
+ #
32
+ # @param status [Symbol, Openlayer::Models::Governance::Frameworks::SubsectionListRulesParams::Status] Query param: Only include items whose rule result has this compliance status.
33
+ #
34
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
35
+ #
36
+ # @return [Openlayer::Models::Governance::Frameworks::SubsectionListRulesResponse]
37
+ #
38
+ # @see Openlayer::Models::Governance::Frameworks::SubsectionListRulesParams
39
+ def list_rules(subsection_id, params)
40
+ parsed, options = Openlayer::Governance::Frameworks::SubsectionListRulesParams.dump_request(params)
41
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
42
+ framework_id =
43
+ parsed.delete(:framework_id) do
44
+ raise ArgumentError.new("missing required path argument #{_1}")
45
+ end
46
+ @client.request(
47
+ method: :get,
48
+ path: ["frameworks/%1$s/subsections/%2$s/rules", framework_id, subsection_id],
49
+ query: query.transform_keys(
50
+ include_results: "includeResults",
51
+ per_page: "perPage",
52
+ project_id: "projectId"
53
+ ),
54
+ model: Openlayer::Models::Governance::Frameworks::SubsectionListRulesResponse,
55
+ options: options
56
+ )
57
+ end
58
+
59
+ # @api private
60
+ #
61
+ # @param client [Openlayer::Client]
62
+ def initialize(client:)
63
+ @client = client
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,344 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Resources
5
+ class Governance
6
+ class Frameworks
7
+ # @return [Openlayer::Resources::Governance::Frameworks::Documents]
8
+ attr_reader :documents
9
+
10
+ # @return [Openlayer::Resources::Governance::Frameworks::Sections]
11
+ attr_reader :sections
12
+
13
+ # @return [Openlayer::Resources::Governance::Frameworks::Subsections]
14
+ attr_reader :subsections
15
+
16
+ # Some parameter documentations has been truncated, see
17
+ # {Openlayer::Models::Governance::FrameworkCreateParams} for more details.
18
+ #
19
+ # Create a custom governance framework in a workspace.
20
+ #
21
+ # Use this to track compliance against an internal policy, or against a standard
22
+ # Openlayer does not ship as a built-in framework. A new framework starts with no
23
+ # rules -- add them from the Openlayer app, or map an existing rule to it.
24
+ #
25
+ # A framework is created disabled unless you pass `enabled: true`. While it is
26
+ # disabled its rules are not evaluated and do not count towards compliance.
27
+ #
28
+ # @overload create(workspace_id, name:, description: nil, enabled: nil, project_selector: nil, tags: nil, request_options: {})
29
+ #
30
+ # @param workspace_id [String] The workspace id.
31
+ #
32
+ # @param name [String] The framework name.
33
+ #
34
+ # @param description [String, nil] A short description of the framework.
35
+ #
36
+ # @param enabled [Boolean] Whether the framework is active. Rules of a disabled framework are not evaluated
37
+ #
38
+ # @param project_selector [Openlayer::Models::Governance::FrameworkCreateParams::ProjectSelector, nil] Determines which projects the framework applies to. An empty or `null` `match` a
39
+ #
40
+ # @param tags [Array<String>] Free-form labels on the framework.
41
+ #
42
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
43
+ #
44
+ # @return [Openlayer::Models::Governance::FrameworkCreateResponse]
45
+ #
46
+ # @see Openlayer::Models::Governance::FrameworkCreateParams
47
+ def create(workspace_id, params)
48
+ parsed, options = Openlayer::Governance::FrameworkCreateParams.dump_request(params)
49
+ @client.request(
50
+ method: :post,
51
+ path: ["workspaces/%1$s/frameworks", workspace_id],
52
+ body: parsed,
53
+ model: Openlayer::Models::Governance::FrameworkCreateResponse,
54
+ options: options
55
+ )
56
+ end
57
+
58
+ # Retrieve a governance framework by its id.
59
+ #
60
+ # @overload retrieve(framework_id, request_options: {})
61
+ #
62
+ # @param framework_id [String] The framework id.
63
+ #
64
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
65
+ #
66
+ # @return [Openlayer::Models::Governance::FrameworkRetrieveResponse]
67
+ #
68
+ # @see Openlayer::Models::Governance::FrameworkRetrieveParams
69
+ def retrieve(framework_id, params = {})
70
+ @client.request(
71
+ method: :get,
72
+ path: ["frameworks/%1$s", framework_id],
73
+ model: Openlayer::Models::Governance::FrameworkRetrieveResponse,
74
+ options: params[:request_options]
75
+ )
76
+ end
77
+
78
+ # Some parameter documentations has been truncated, see
79
+ # {Openlayer::Models::Governance::FrameworkUpdateParams} for more details.
80
+ #
81
+ # Update a governance framework.
82
+ #
83
+ # The most common use is activating or deactivating a framework for the workspace
84
+ # by setting `enabled`. Rules of a disabled framework are not evaluated and do not
85
+ # count towards compliance.
86
+ #
87
+ # Frameworks that ship with Openlayer report `immutable: true`. For those, only
88
+ # `enabled`, `tags`, and `projectSelector` can be changed -- their name and
89
+ # definition are managed by Openlayer.
90
+ #
91
+ # Only the fields you send are changed.
92
+ #
93
+ # @overload update(framework_id, avatar: nil, description: nil, enabled: nil, extended_description: nil, href: nil, name: nil, project_selector: nil, tags: nil, request_options: {})
94
+ #
95
+ # @param framework_id [String] The framework id.
96
+ #
97
+ # @param avatar [Openlayer::Models::Governance::FrameworkUpdateParams::Avatar, nil] The icon shown for the framework.
98
+ #
99
+ # @param description [String, nil] A short description of the framework.
100
+ #
101
+ # @param enabled [Boolean] Whether the framework is active. Rules of a disabled framework are not evaluated
102
+ #
103
+ # @param extended_description [Hash{Symbol=>Object}, nil] A longer, rich-text description, as a TipTap JSON document.
104
+ #
105
+ # @param href [String, nil] A link to the external standard or regulation the framework is based on.
106
+ #
107
+ # @param name [String] The framework name.
108
+ #
109
+ # @param project_selector [Openlayer::Models::Governance::FrameworkUpdateParams::ProjectSelector, nil] Determines which projects the framework applies to. An empty or `null` `match` a
110
+ #
111
+ # @param tags [Array<String>] Free-form labels on the framework.
112
+ #
113
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
114
+ #
115
+ # @return [Openlayer::Models::Governance::FrameworkUpdateResponse]
116
+ #
117
+ # @see Openlayer::Models::Governance::FrameworkUpdateParams
118
+ def update(framework_id, params = {})
119
+ parsed, options = Openlayer::Governance::FrameworkUpdateParams.dump_request(params)
120
+ @client.request(
121
+ method: :put,
122
+ path: ["frameworks/%1$s", framework_id],
123
+ body: parsed,
124
+ model: Openlayer::Models::Governance::FrameworkUpdateResponse,
125
+ options: options
126
+ )
127
+ end
128
+
129
+ # Some parameter documentations has been truncated, see
130
+ # {Openlayer::Models::Governance::FrameworkListParams} for more details.
131
+ #
132
+ # List the governance frameworks in a workspace.
133
+ #
134
+ # A framework is a set of rules -- drawn from a regulation, a standard, or your
135
+ # own internal policy -- that Openlayer tracks compliance against. Use this
136
+ # endpoint to find the framework you want to report on, then read its rules and
137
+ # rule results.
138
+ #
139
+ # @overload list(workspace_id, asc: nil, completion_operator: nil, completion_value: nil, enabled: nil, include_rule_stats: nil, page: nil, per_page: nil, project_id: nil, search_query: nil, sort_column: nil, tags: nil, request_options: {})
140
+ #
141
+ # @param workspace_id [String] The workspace id.
142
+ #
143
+ # @param asc [Boolean] Whether to sort in ascending order.
144
+ #
145
+ # @param completion_operator [Symbol, Openlayer::Models::Governance::FrameworkListParams::CompletionOperator] How to compare each framework's completion percentage with `completionValue`. Mu
146
+ #
147
+ # @param completion_value [Integer] The completion percentage to compare against, from 0 to 100.
148
+ #
149
+ # @param enabled [Boolean] Only include frameworks that are enabled (or disabled).
150
+ #
151
+ # @param include_rule_stats [Boolean] Whether to include a `ruleStats` object on each framework, with its rule result
152
+ #
153
+ # @param page [Integer] The page to return in a paginated query.
154
+ #
155
+ # @param per_page [Integer] Maximum number of items to return per page.
156
+ #
157
+ # @param project_id [String] Only include items that apply to this project.
158
+ #
159
+ # @param search_query [String] Filter by a free-text search over names and descriptions.
160
+ #
161
+ # @param sort_column [Symbol, Openlayer::Models::Governance::FrameworkListParams::SortColumn] The column to sort on.
162
+ #
163
+ # @param tags [Array<String>] Only include frameworks carrying all of these tags.
164
+ #
165
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
166
+ #
167
+ # @return [Openlayer::Models::Governance::FrameworkListResponse]
168
+ #
169
+ # @see Openlayer::Models::Governance::FrameworkListParams
170
+ def list(workspace_id, params = {})
171
+ parsed, options = Openlayer::Governance::FrameworkListParams.dump_request(params)
172
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
173
+ @client.request(
174
+ method: :get,
175
+ path: ["workspaces/%1$s/frameworks", workspace_id],
176
+ query: query.transform_keys(
177
+ completion_operator: "completionOperator",
178
+ completion_value: "completionValue",
179
+ include_rule_stats: "includeRuleStats",
180
+ per_page: "perPage",
181
+ project_id: "projectId",
182
+ search_query: "searchQuery",
183
+ sort_column: "sortColumn"
184
+ ),
185
+ model: Openlayer::Models::Governance::FrameworkListResponse,
186
+ options: options
187
+ )
188
+ end
189
+
190
+ # Export a framework's evidence and progress as an audit-ready zip archive.
191
+ #
192
+ # The archive holds every evidence file uploaded against the framework's
193
+ # evidence-based rules, a markdown report of the framework's progress and the
194
+ # status of all its rules (broken down by documentation section when the framework
195
+ # has documents), and CSV manifests of rules and evidence with SHA-256 checksums.
196
+ #
197
+ # Send `projectId` to export one project's compliance with the framework. Omit it
198
+ # for the workspace-wide view across every project in the framework, including
199
+ # workspace-scoped rules.
200
+ #
201
+ # The export runs as a background task, so this returns `202` immediately. To
202
+ # collect the archive:
203
+ #
204
+ # 1. Poll `GET /background-tasks/{taskId}` with the returned `taskResultId` until
205
+ # `complete` is `true`.
206
+ # 2. Read `outputs.storageUri` off that task.
207
+ # 3. Exchange it for a download link at
208
+ # `GET /storage/presigned-url?storageUri=<uri>`.
209
+ #
210
+ # Rate limited to 2 requests per minute per framework. Asking for an export while
211
+ # an identical one is still queued returns that task rather than starting a second
212
+ # one.
213
+ #
214
+ # @overload export(framework_id, project_id: nil, request_options: {})
215
+ #
216
+ # @param framework_id [String] The framework id.
217
+ #
218
+ # @param project_id [String, nil] Scope the export to this project. It must belong to the framework.
219
+ #
220
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
221
+ #
222
+ # @return [Openlayer::Models::Governance::FrameworkExportResponse]
223
+ #
224
+ # @see Openlayer::Models::Governance::FrameworkExportParams
225
+ def export(framework_id, params = {})
226
+ parsed, options = Openlayer::Governance::FrameworkExportParams.dump_request(params)
227
+ @client.request(
228
+ method: :post,
229
+ path: ["frameworks/%1$s/export", framework_id],
230
+ body: parsed,
231
+ model: Openlayer::Models::Governance::FrameworkExportResponse,
232
+ options: options
233
+ )
234
+ end
235
+
236
+ # Get a compliance roll-up for a framework, one row per project it applies to.
237
+ #
238
+ # Each row counts the project's rule results by status, so you can report on where
239
+ # a framework is complete and where it is not without fetching every individual
240
+ # rule result.
241
+ #
242
+ # @overload list_project_rule_stats(framework_id, asc: nil, page: nil, per_page: nil, sort_column: nil, request_options: {})
243
+ #
244
+ # @param framework_id [String] The framework id.
245
+ #
246
+ # @param asc [Boolean] Whether to sort in ascending order.
247
+ #
248
+ # @param page [Integer] The page to return in a paginated query.
249
+ #
250
+ # @param per_page [Integer] Maximum number of items to return per page.
251
+ #
252
+ # @param sort_column [Symbol, Openlayer::Models::Governance::FrameworkListProjectRuleStatsParams::SortColumn] The column to sort on.
253
+ #
254
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
255
+ #
256
+ # @return [Openlayer::Models::Governance::FrameworkListProjectRuleStatsResponse]
257
+ #
258
+ # @see Openlayer::Models::Governance::FrameworkListProjectRuleStatsParams
259
+ def list_project_rule_stats(framework_id, params = {})
260
+ parsed, options = Openlayer::Governance::FrameworkListProjectRuleStatsParams.dump_request(params)
261
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
262
+ @client.request(
263
+ method: :get,
264
+ path: ["frameworks/%1$s/project-rule-stats", framework_id],
265
+ query: query.transform_keys(per_page: "perPage", sort_column: "sortColumn"),
266
+ model: Openlayer::Models::Governance::FrameworkListProjectRuleStatsResponse,
267
+ options: options
268
+ )
269
+ end
270
+
271
+ # List the projects a framework applies to.
272
+ #
273
+ # Which projects a framework covers is determined by its `projectSelector`. A
274
+ # framework with an empty selector applies to every project in the workspace.
275
+ #
276
+ # @overload list_projects(framework_id, page: nil, per_page: nil, request_options: {})
277
+ #
278
+ # @param framework_id [String] The framework id.
279
+ #
280
+ # @param page [Integer] The page to return in a paginated query.
281
+ #
282
+ # @param per_page [Integer] Maximum number of items to return per page.
283
+ #
284
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
285
+ #
286
+ # @return [Openlayer::Models::Governance::FrameworkListProjectsResponse]
287
+ #
288
+ # @see Openlayer::Models::Governance::FrameworkListProjectsParams
289
+ def list_projects(framework_id, params = {})
290
+ parsed, options = Openlayer::Governance::FrameworkListProjectsParams.dump_request(params)
291
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
292
+ @client.request(
293
+ method: :get,
294
+ path: ["frameworks/%1$s/projects", framework_id],
295
+ query: query.transform_keys(per_page: "perPage"),
296
+ model: Openlayer::Models::Governance::FrameworkListProjectsResponse,
297
+ options: options
298
+ )
299
+ end
300
+
301
+ # List the rules that belong to a framework.
302
+ #
303
+ # To read the compliance status of these rules, use
304
+ # [List rule results](/api-reference/rest/governance/list-rule-results) with the
305
+ # `frameworkId` filter, or fetch the results of an individual rule.
306
+ #
307
+ # @overload list_rules(framework_id, page: nil, per_page: nil, request_options: {})
308
+ #
309
+ # @param framework_id [String] The framework id.
310
+ #
311
+ # @param page [Integer] The page to return in a paginated query.
312
+ #
313
+ # @param per_page [Integer] Maximum number of items to return per page.
314
+ #
315
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
316
+ #
317
+ # @return [Openlayer::Models::Governance::FrameworkListRulesResponse]
318
+ #
319
+ # @see Openlayer::Models::Governance::FrameworkListRulesParams
320
+ def list_rules(framework_id, params = {})
321
+ parsed, options = Openlayer::Governance::FrameworkListRulesParams.dump_request(params)
322
+ query = Openlayer::Internal::Util.encode_query_params(parsed)
323
+ @client.request(
324
+ method: :get,
325
+ path: ["frameworks/%1$s/rules", framework_id],
326
+ query: query.transform_keys(per_page: "perPage"),
327
+ model: Openlayer::Models::Governance::FrameworkListRulesResponse,
328
+ options: options
329
+ )
330
+ end
331
+
332
+ # @api private
333
+ #
334
+ # @param client [Openlayer::Client]
335
+ def initialize(client:)
336
+ @client = client
337
+ @documents = Openlayer::Resources::Governance::Frameworks::Documents.new(client: client)
338
+ @sections = Openlayer::Resources::Governance::Frameworks::Sections.new(client: client)
339
+ @subsections = Openlayer::Resources::Governance::Frameworks::Subsections.new(client: client)
340
+ end
341
+ end
342
+ end
343
+ end
344
+ end