noresponse 8.4.1 → 9.0.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 (568) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_response/accounts.rb +794 -126
  3. data/lib/no_response/audit.rb +2132 -0
  4. data/lib/no_response/erasures.rb +328 -0
  5. data/lib/no_response/evaluations.rb +1856 -0
  6. data/lib/no_response/exports.rb +1837 -0
  7. data/lib/no_response/invites.rb +1179 -0
  8. data/lib/no_response/keys.rb +2 -2
  9. data/lib/no_response/keyusage.rb +2 -0
  10. data/lib/no_response/lists.rb +947 -5
  11. data/lib/no_response/members.rb +906 -0
  12. data/lib/no_response/models/operations/addreviewsubject_request.rb +57 -0
  13. data/lib/no_response/models/operations/addreviewsubject_request.rbi +32 -0
  14. data/lib/no_response/models/operations/addreviewsubject_response.rb +32 -0
  15. data/lib/no_response/models/operations/addreviewsubject_response.rbi +20 -0
  16. data/lib/no_response/models/operations/aggregaterequests_response.rb +32 -0
  17. data/lib/no_response/models/operations/aggregaterequests_response.rbi +20 -0
  18. data/lib/no_response/models/operations/aggregatewebhooks_response.rb +32 -0
  19. data/lib/no_response/models/operations/aggregatewebhooks_response.rbi +20 -0
  20. data/lib/no_response/models/operations/cancelcustomerexport_request.rb +43 -0
  21. data/lib/no_response/models/operations/cancelcustomerexport_request.rbi +26 -0
  22. data/lib/no_response/models/operations/cancelcustomerexport_response.rb +32 -0
  23. data/lib/no_response/models/operations/cancelcustomerexport_response.rbi +20 -0
  24. data/lib/no_response/models/operations/cancelpolicyevaluation_request.rb +61 -0
  25. data/lib/no_response/models/operations/cancelpolicyevaluation_request.rbi +32 -0
  26. data/lib/no_response/models/operations/cancelpolicyevaluation_response.rb +32 -0
  27. data/lib/no_response/models/operations/cancelpolicyevaluation_response.rbi +20 -0
  28. data/lib/no_response/models/operations/changelists_request.rb +61 -0
  29. data/lib/no_response/models/operations/changelists_request.rbi +32 -0
  30. data/lib/no_response/models/operations/changelists_response.rb +32 -0
  31. data/lib/no_response/models/operations/changelists_response.rbi +20 -0
  32. data/lib/no_response/models/operations/commentreview_request.rb +57 -0
  33. data/lib/no_response/models/operations/commentreview_request.rbi +32 -0
  34. data/lib/no_response/models/operations/commentreview_response.rb +32 -0
  35. data/lib/no_response/models/operations/commentreview_response.rbi +20 -0
  36. data/lib/no_response/models/operations/configureauditstream_request.rb +52 -0
  37. data/lib/no_response/models/operations/configureauditstream_request.rbi +26 -0
  38. data/lib/no_response/models/operations/configureauditstream_response.rb +32 -0
  39. data/lib/no_response/models/operations/configureauditstream_response.rbi +20 -0
  40. data/lib/no_response/models/operations/createcustomerexport_request.rb +52 -0
  41. data/lib/no_response/models/operations/createcustomerexport_request.rbi +26 -0
  42. data/lib/no_response/models/operations/createcustomerexport_response.rb +32 -0
  43. data/lib/no_response/models/operations/createcustomerexport_response.rbi +20 -0
  44. data/lib/no_response/models/operations/createinvite_request.rb +37 -0
  45. data/lib/no_response/models/operations/createinvite_request.rbi +20 -0
  46. data/lib/no_response/models/operations/createinvite_response.rb +32 -0
  47. data/lib/no_response/models/operations/createinvite_response.rbi +20 -0
  48. data/lib/no_response/models/operations/createpolicyevaluation_request.rb +61 -0
  49. data/lib/no_response/models/operations/createpolicyevaluation_request.rbi +32 -0
  50. data/lib/no_response/models/operations/createpolicyevaluation_response.rb +32 -0
  51. data/lib/no_response/models/operations/createpolicyevaluation_response.rbi +20 -0
  52. data/lib/no_response/models/operations/createreview_request.rb +52 -0
  53. data/lib/no_response/models/operations/createreview_request.rbi +26 -0
  54. data/lib/no_response/models/operations/createreview_response.rb +32 -0
  55. data/lib/no_response/models/operations/createreview_response.rbi +20 -0
  56. data/lib/no_response/models/operations/createreviewview_request.rb +52 -0
  57. data/lib/no_response/models/operations/createreviewview_request.rbi +26 -0
  58. data/lib/no_response/models/operations/createreviewview_response.rb +32 -0
  59. data/lib/no_response/models/operations/createreviewview_response.rbi +20 -0
  60. data/lib/no_response/models/operations/deletereviewsubject_request.rb +62 -0
  61. data/lib/no_response/models/operations/deletereviewsubject_request.rbi +38 -0
  62. data/lib/no_response/models/operations/deletereviewsubject_response.rb +32 -0
  63. data/lib/no_response/models/operations/deletereviewsubject_response.rbi +20 -0
  64. data/lib/no_response/models/operations/deletereviewview_request.rb +57 -0
  65. data/lib/no_response/models/operations/deletereviewview_request.rbi +32 -0
  66. data/lib/no_response/models/operations/deletereviewview_response.rb +28 -0
  67. data/lib/no_response/models/operations/deletereviewview_response.rbi +14 -0
  68. data/lib/no_response/models/operations/downloadcustomerexportchunk_request.rb +45 -0
  69. data/lib/no_response/models/operations/downloadcustomerexportchunk_request.rbi +26 -0
  70. data/lib/no_response/models/operations/downloadcustomerexportchunk_response.rb +32 -0
  71. data/lib/no_response/models/operations/downloadcustomerexportchunk_response.rbi +20 -0
  72. data/lib/no_response/models/operations/environment.rb +15 -0
  73. data/lib/no_response/models/operations/environment.rbi +9 -0
  74. data/lib/no_response/models/operations/exportreview_request.rb +45 -0
  75. data/lib/no_response/models/operations/exportreview_request.rbi +26 -0
  76. data/lib/no_response/models/operations/exportreview_response.rb +32 -0
  77. data/lib/no_response/models/operations/exportreview_response.rbi +20 -0
  78. data/lib/no_response/models/operations/getauditretention_request.rb +41 -0
  79. data/lib/no_response/models/operations/getauditretention_request.rbi +20 -0
  80. data/lib/no_response/models/operations/getauditretention_response.rb +32 -0
  81. data/lib/no_response/models/operations/getauditretention_response.rbi +20 -0
  82. data/lib/no_response/models/operations/getcustomerexport_request.rb +37 -0
  83. data/lib/no_response/models/operations/getcustomerexport_request.rbi +20 -0
  84. data/lib/no_response/models/operations/getcustomerexport_response.rb +32 -0
  85. data/lib/no_response/models/operations/getcustomerexport_response.rbi +20 -0
  86. data/lib/no_response/models/operations/geterasurereceipt_request.rb +28 -0
  87. data/lib/no_response/models/operations/geterasurereceipt_request.rbi +14 -0
  88. data/lib/no_response/models/operations/geterasurereceipt_response.rb +32 -0
  89. data/lib/no_response/models/operations/geterasurereceipt_response.rbi +20 -0
  90. data/lib/no_response/models/operations/getlistchange_request.rb +45 -0
  91. data/lib/no_response/models/operations/getlistchange_request.rbi +26 -0
  92. data/lib/no_response/models/operations/getlistchange_response.rb +32 -0
  93. data/lib/no_response/models/operations/getlistchange_response.rbi +20 -0
  94. data/lib/no_response/models/operations/getpolicyevaluation_request.rb +51 -0
  95. data/lib/no_response/models/operations/getpolicyevaluation_request.rbi +26 -0
  96. data/lib/no_response/models/operations/getpolicyevaluation_response.rb +32 -0
  97. data/lib/no_response/models/operations/getpolicyevaluation_response.rbi +20 -0
  98. data/lib/no_response/models/operations/getpolicyevaluationresult_request.rb +51 -0
  99. data/lib/no_response/models/operations/getpolicyevaluationresult_request.rbi +26 -0
  100. data/lib/no_response/models/operations/getpolicyevaluationresult_response.rb +34 -0
  101. data/lib/no_response/models/operations/getpolicyevaluationresult_response.rbi +20 -0
  102. data/lib/no_response/models/operations/getreview_request.rb +45 -0
  103. data/lib/no_response/models/operations/getreview_request.rbi +26 -0
  104. data/lib/no_response/models/operations/getreview_response.rb +32 -0
  105. data/lib/no_response/models/operations/getreview_response.rbi +20 -0
  106. data/lib/no_response/models/operations/getusage_request.rb +49 -0
  107. data/lib/no_response/models/operations/getusage_request.rbi +26 -0
  108. data/lib/no_response/models/operations/getusage_response.rb +32 -0
  109. data/lib/no_response/models/operations/getusage_response.rbi +20 -0
  110. data/lib/no_response/models/operations/listaccountcredentials_response.rb +12 -0
  111. data/lib/no_response/models/operations/listaccountdecisions_request.rb +45 -0
  112. data/lib/no_response/models/operations/listaccountdecisions_request.rbi +26 -0
  113. data/lib/no_response/models/operations/listaccountdecisions_response.rb +44 -0
  114. data/lib/no_response/models/operations/listaccountdecisions_response.rbi +20 -0
  115. data/lib/no_response/models/operations/listaccountenforcements_request.rb +45 -0
  116. data/lib/no_response/models/operations/listaccountenforcements_request.rbi +26 -0
  117. data/lib/no_response/models/operations/listaccountenforcements_response.rb +46 -0
  118. data/lib/no_response/models/operations/listaccountenforcements_response.rbi +20 -0
  119. data/lib/no_response/models/operations/listaccountoutcomes_response.rb +12 -0
  120. data/lib/no_response/models/operations/listauditevents_request.rb +140 -0
  121. data/lib/no_response/models/operations/listauditevents_request.rbi +74 -0
  122. data/lib/no_response/models/operations/listauditevents_response.rb +44 -0
  123. data/lib/no_response/models/operations/listauditevents_response.rbi +20 -0
  124. data/lib/no_response/models/operations/listauditstreams_request.rb +41 -0
  125. data/lib/no_response/models/operations/listauditstreams_request.rbi +20 -0
  126. data/lib/no_response/models/operations/listauditstreams_response.rb +32 -0
  127. data/lib/no_response/models/operations/listauditstreams_response.rbi +20 -0
  128. data/lib/no_response/models/operations/listcustomerexports_request.rb +74 -0
  129. data/lib/no_response/models/operations/listcustomerexports_request.rbi +38 -0
  130. data/lib/no_response/models/operations/listcustomerexports_response.rb +44 -0
  131. data/lib/no_response/models/operations/listcustomerexports_response.rbi +20 -0
  132. data/lib/no_response/models/operations/listinvites_request.rb +33 -0
  133. data/lib/no_response/models/operations/listinvites_request.rbi +14 -0
  134. data/lib/no_response/models/operations/listinvites_response.rb +32 -0
  135. data/lib/no_response/models/operations/listinvites_response.rbi +20 -0
  136. data/lib/no_response/models/operations/listlistentries_request.rb +26 -2
  137. data/lib/no_response/models/operations/listlistentries_request.rbi +12 -0
  138. data/lib/no_response/models/operations/listlistentries_response.rb +12 -0
  139. data/lib/no_response/models/operations/listmembers_request.rb +33 -0
  140. data/lib/no_response/models/operations/listmembers_request.rbi +14 -0
  141. data/lib/no_response/models/operations/listmembers_response.rb +32 -0
  142. data/lib/no_response/models/operations/listmembers_response.rbi +20 -0
  143. data/lib/no_response/models/operations/listpolicyevaluations_request.rb +65 -0
  144. data/lib/no_response/models/operations/listpolicyevaluations_request.rbi +32 -0
  145. data/lib/no_response/models/operations/listpolicyevaluations_response.rb +44 -0
  146. data/lib/no_response/models/operations/listpolicyevaluations_response.rbi +20 -0
  147. data/lib/no_response/models/operations/listpolicyhistory_request.rb +65 -0
  148. data/lib/no_response/models/operations/listpolicyhistory_request.rbi +32 -0
  149. data/lib/no_response/models/operations/listpolicyhistory_response.rb +32 -0
  150. data/lib/no_response/models/operations/listpolicyhistory_response.rbi +20 -0
  151. data/lib/no_response/models/operations/listrequestdiagnostics_request.rb +10 -1
  152. data/lib/no_response/models/operations/listrequestdiagnostics_request.rbi +6 -0
  153. data/lib/no_response/models/operations/listrequestdiagnostics_response.rb +12 -0
  154. data/lib/no_response/models/operations/listreviewcomments_request.rb +70 -0
  155. data/lib/no_response/models/operations/listreviewcomments_request.rbi +38 -0
  156. data/lib/no_response/models/operations/listreviewcomments_response.rb +44 -0
  157. data/lib/no_response/models/operations/listreviewcomments_response.rbi +20 -0
  158. data/lib/no_response/models/operations/listreviewresolutions_request.rb +70 -0
  159. data/lib/no_response/models/operations/listreviewresolutions_request.rbi +38 -0
  160. data/lib/no_response/models/operations/listreviewresolutions_response.rb +32 -0
  161. data/lib/no_response/models/operations/listreviewresolutions_response.rbi +20 -0
  162. data/lib/no_response/models/operations/listreviews_request.rb +120 -0
  163. data/lib/no_response/models/operations/listreviews_request.rbi +62 -0
  164. data/lib/no_response/models/operations/listreviews_response.rb +44 -0
  165. data/lib/no_response/models/operations/listreviews_response.rbi +20 -0
  166. data/lib/no_response/models/operations/listreviewsubjects_request.rb +45 -0
  167. data/lib/no_response/models/operations/listreviewsubjects_request.rbi +26 -0
  168. data/lib/no_response/models/operations/listreviewsubjects_response.rb +32 -0
  169. data/lib/no_response/models/operations/listreviewsubjects_response.rbi +20 -0
  170. data/lib/no_response/models/operations/listreviewviews_request.rb +41 -0
  171. data/lib/no_response/models/operations/listreviewviews_request.rbi +20 -0
  172. data/lib/no_response/models/operations/listreviewviews_response.rb +32 -0
  173. data/lib/no_response/models/operations/listreviewviews_response.rbi +20 -0
  174. data/lib/no_response/models/operations/previewlist_request.rb +52 -0
  175. data/lib/no_response/models/operations/previewlist_request.rbi +26 -0
  176. data/lib/no_response/models/operations/previewlist_response.rb +32 -0
  177. data/lib/no_response/models/operations/previewlist_response.rbi +20 -0
  178. data/lib/no_response/models/operations/previewpolicy_request.rb +52 -0
  179. data/lib/no_response/models/operations/previewpolicy_request.rbi +26 -0
  180. data/lib/no_response/models/operations/previewpolicy_response.rb +32 -0
  181. data/lib/no_response/models/operations/previewpolicy_response.rbi +20 -0
  182. data/lib/no_response/models/operations/publishpolicyevaluation_request.rb +61 -0
  183. data/lib/no_response/models/operations/publishpolicyevaluation_request.rbi +32 -0
  184. data/lib/no_response/models/operations/publishpolicyevaluation_response.rb +32 -0
  185. data/lib/no_response/models/operations/publishpolicyevaluation_response.rbi +20 -0
  186. data/lib/no_response/models/operations/removeauditstream_request.rb +45 -0
  187. data/lib/no_response/models/operations/removeauditstream_request.rbi +26 -0
  188. data/lib/no_response/models/operations/removeauditstream_response.rb +32 -0
  189. data/lib/no_response/models/operations/removeauditstream_response.rbi +20 -0
  190. data/lib/no_response/models/operations/removemember_request.rb +37 -0
  191. data/lib/no_response/models/operations/removemember_request.rbi +20 -0
  192. data/lib/no_response/models/operations/removemember_response.rb +28 -0
  193. data/lib/no_response/models/operations/removemember_response.rbi +14 -0
  194. data/lib/no_response/models/operations/replayauditstream_request.rb +57 -0
  195. data/lib/no_response/models/operations/replayauditstream_request.rbi +32 -0
  196. data/lib/no_response/models/operations/replayauditstream_response.rb +32 -0
  197. data/lib/no_response/models/operations/replayauditstream_response.rbi +20 -0
  198. data/lib/no_response/models/operations/resendinvite_request.rb +41 -0
  199. data/lib/no_response/models/operations/resendinvite_request.rbi +26 -0
  200. data/lib/no_response/models/operations/resendinvite_response.rb +32 -0
  201. data/lib/no_response/models/operations/resendinvite_response.rbi +20 -0
  202. data/lib/no_response/models/operations/resolvereview_request.rb +57 -0
  203. data/lib/no_response/models/operations/resolvereview_request.rbi +32 -0
  204. data/lib/no_response/models/operations/resolvereview_response.rb +32 -0
  205. data/lib/no_response/models/operations/resolvereview_response.rbi +20 -0
  206. data/lib/no_response/models/operations/restorepolicy_request.rb +52 -0
  207. data/lib/no_response/models/operations/restorepolicy_request.rbi +26 -0
  208. data/lib/no_response/models/operations/restorepolicy_response.rb +32 -0
  209. data/lib/no_response/models/operations/restorepolicy_response.rbi +20 -0
  210. data/lib/no_response/models/operations/retrycustomerexport_request.rb +43 -0
  211. data/lib/no_response/models/operations/retrycustomerexport_request.rbi +26 -0
  212. data/lib/no_response/models/operations/retrycustomerexport_response.rb +32 -0
  213. data/lib/no_response/models/operations/retrycustomerexport_response.rbi +20 -0
  214. data/lib/no_response/models/operations/revokeinvite_request.rb +37 -0
  215. data/lib/no_response/models/operations/revokeinvite_request.rbi +20 -0
  216. data/lib/no_response/models/operations/revokeinvite_response.rb +28 -0
  217. data/lib/no_response/models/operations/revokeinvite_response.rbi +14 -0
  218. data/lib/no_response/models/operations/summarizeworkspaceoperations_request.rb +37 -0
  219. data/lib/no_response/models/operations/summarizeworkspaceoperations_request.rbi +20 -0
  220. data/lib/no_response/models/operations/summarizeworkspaceoperations_response.rb +34 -0
  221. data/lib/no_response/models/operations/summarizeworkspaceoperations_response.rbi +20 -0
  222. data/lib/no_response/models/operations/updateauditretention_request.rb +52 -0
  223. data/lib/no_response/models/operations/updateauditretention_request.rbi +26 -0
  224. data/lib/no_response/models/operations/updateauditretention_response.rb +32 -0
  225. data/lib/no_response/models/operations/updateauditretention_response.rbi +20 -0
  226. data/lib/no_response/models/operations/updatemember_request.rb +41 -0
  227. data/lib/no_response/models/operations/updatemember_request.rbi +26 -0
  228. data/lib/no_response/models/operations/updatemember_response.rb +32 -0
  229. data/lib/no_response/models/operations/updatemember_response.rbi +20 -0
  230. data/lib/no_response/models/operations/updatereview_request.rb +57 -0
  231. data/lib/no_response/models/operations/updatereview_request.rbi +32 -0
  232. data/lib/no_response/models/operations/updatereview_response.rb +32 -0
  233. data/lib/no_response/models/operations/updatereview_response.rbi +20 -0
  234. data/lib/no_response/models/operations/updatereviewview_request.rb +57 -0
  235. data/lib/no_response/models/operations/updatereviewview_request.rbi +32 -0
  236. data/lib/no_response/models/operations/updatereviewview_response.rb +32 -0
  237. data/lib/no_response/models/operations/updatereviewview_response.rbi +20 -0
  238. data/lib/no_response/models/operations.rb +121 -0
  239. data/lib/no_response/models/shared/accountdecisionlist.rb +56 -0
  240. data/lib/no_response/models/shared/accountdecisionlist.rbi +26 -0
  241. data/lib/no_response/models/shared/accountdeletion.rb +11 -2
  242. data/lib/no_response/models/shared/accountdeletion.rbi +6 -0
  243. data/lib/no_response/models/shared/accountenforcementlist.rb +52 -0
  244. data/lib/no_response/models/shared/accountenforcementlist.rbi +26 -0
  245. data/lib/no_response/models/shared/accountoutcomeactor.rb +50 -11
  246. data/lib/no_response/models/shared/accountoutcomeactor.rbi +20 -2
  247. data/lib/no_response/models/shared/accountoutcomeactortype.rb +19 -0
  248. data/lib/no_response/models/shared/accountoutcomeactortype.rbi +9 -0
  249. data/lib/no_response/models/shared/accountriskreason.rb +1 -1
  250. data/lib/no_response/models/shared/action.rb +19 -0
  251. data/lib/no_response/models/shared/{defaultdepth.rbi → action.rbi} +2 -2
  252. data/lib/no_response/models/shared/actor.rb +23 -0
  253. data/lib/no_response/models/shared/actor.rbi +9 -0
  254. data/lib/no_response/models/shared/aggregategroup.rb +6 -6
  255. data/lib/no_response/models/shared/aggregategrouplistmatch.rb +20 -0
  256. data/lib/no_response/models/shared/aggregategrouplistmatch.rbi +9 -0
  257. data/lib/no_response/models/shared/assessmentaggregate.rb +10 -0
  258. data/lib/no_response/models/shared/assessmentaggregate.rbi +6 -0
  259. data/lib/no_response/models/shared/assessmentaggregatecoverage.rb +133 -0
  260. data/lib/no_response/models/shared/assessmentaggregatecoverage.rbi +62 -0
  261. data/lib/no_response/models/shared/assessmentaggregaterequest.rb +132 -2
  262. data/lib/no_response/models/shared/assessmentaggregaterequest.rbi +60 -0
  263. data/lib/no_response/models/shared/assessmentdeletion.rb +11 -2
  264. data/lib/no_response/models/shared/assessmentdeletion.rbi +6 -0
  265. data/lib/no_response/models/shared/assessmentsearchrequest.rb +115 -0
  266. data/lib/no_response/models/shared/assessmentsearchrequest.rbi +54 -0
  267. data/lib/no_response/models/shared/auditevent.rb +163 -0
  268. data/lib/no_response/models/shared/auditevent.rbi +74 -0
  269. data/lib/no_response/models/shared/auditeventevent.rb +70 -0
  270. data/lib/no_response/models/shared/auditeventevent.rbi +38 -0
  271. data/lib/no_response/models/shared/auditeventlist.rb +52 -0
  272. data/lib/no_response/models/shared/auditeventlist.rbi +26 -0
  273. data/lib/no_response/models/shared/auditeventtarget.rb +47 -0
  274. data/lib/no_response/models/shared/auditeventtarget.rbi +20 -0
  275. data/lib/no_response/models/shared/auditeventtargettype.rb +26 -0
  276. data/lib/no_response/models/shared/auditeventtargettype.rbi +9 -0
  277. data/lib/no_response/models/shared/auditsettings.rb +74 -0
  278. data/lib/no_response/models/shared/auditsettings.rbi +32 -0
  279. data/lib/no_response/models/shared/auditsettingsenvironment.rb +19 -0
  280. data/lib/no_response/models/shared/auditsettingsenvironment.rbi +9 -0
  281. data/lib/no_response/models/shared/auditsettingsrequest.rb +32 -0
  282. data/lib/no_response/models/shared/auditsettingsrequest.rbi +14 -0
  283. data/lib/no_response/models/shared/auditstream.rb +111 -0
  284. data/lib/no_response/models/shared/auditstream.rbi +50 -0
  285. data/lib/no_response/models/shared/auditstreamlist.rb +32 -0
  286. data/lib/no_response/models/shared/auditstreamlist.rbi +14 -0
  287. data/lib/no_response/models/shared/auditstreamreplayrequest.rb +33 -0
  288. data/lib/no_response/models/shared/auditstreamreplayrequest.rbi +14 -0
  289. data/lib/no_response/models/shared/auditstreamrequest.rb +40 -0
  290. data/lib/no_response/models/shared/auditstreamrequest.rbi +20 -0
  291. data/lib/no_response/models/shared/band.rb +1 -1
  292. data/lib/no_response/models/shared/conclusion.rb +20 -0
  293. data/lib/no_response/models/shared/conclusion.rbi +9 -0
  294. data/lib/no_response/models/shared/conflicterrorcode.rb +10 -0
  295. data/lib/no_response/models/shared/cost.rb +48 -0
  296. data/lib/no_response/models/shared/cost.rbi +32 -0
  297. data/lib/no_response/models/shared/coverage.rb +40 -0
  298. data/lib/no_response/models/shared/coverage.rbi +20 -0
  299. data/lib/no_response/models/shared/customerexport.rb +209 -0
  300. data/lib/no_response/models/shared/customerexport.rbi +104 -0
  301. data/lib/no_response/models/shared/customerexportactionrequest.rb +23 -0
  302. data/lib/no_response/models/shared/customerexportactionrequest.rbi +9 -0
  303. data/lib/no_response/models/shared/customerexportchunk.rb +78 -0
  304. data/lib/no_response/models/shared/customerexportchunk.rbi +44 -0
  305. data/lib/no_response/models/shared/customerexportlist.rb +40 -0
  306. data/lib/no_response/models/shared/customerexportlist.rbi +20 -0
  307. data/lib/no_response/models/shared/customerexportrequest.rb +90 -0
  308. data/lib/no_response/models/shared/customerexportrequest.rbi +38 -0
  309. data/lib/no_response/models/shared/customerexportrequestfilter.rb +122 -0
  310. data/lib/no_response/models/shared/customerexportrequestfilter.rbi +56 -0
  311. data/lib/no_response/models/shared/customerexportrequestfilteroutcome.rb +19 -0
  312. data/lib/no_response/models/shared/customerexportrequestfilteroutcome.rbi +9 -0
  313. data/lib/no_response/models/shared/customerexportrequestkind.rb +19 -0
  314. data/lib/no_response/models/shared/customerexportrequestkind.rbi +9 -0
  315. data/lib/no_response/models/shared/customerexportstatus.rb +23 -0
  316. data/lib/no_response/models/shared/customerexportstatus.rbi +9 -0
  317. data/lib/no_response/models/shared/enforcements.rb +93 -0
  318. data/lib/no_response/models/shared/enforcements.rbi +44 -0
  319. data/lib/no_response/models/shared/environment.rb +6 -2
  320. data/lib/no_response/models/shared/erasurereceipt.rb +118 -0
  321. data/lib/no_response/models/shared/erasurereceipt.rbi +56 -0
  322. data/lib/no_response/models/shared/erasurereceiptkind.rb +20 -0
  323. data/lib/no_response/models/shared/erasurereceiptkind.rbi +9 -0
  324. data/lib/no_response/models/shared/erasurereceipttarget.rb +67 -0
  325. data/lib/no_response/models/shared/erasurereceipttarget.rbi +26 -0
  326. data/lib/no_response/models/shared/erasurereceipttargetname.rb +21 -0
  327. data/lib/no_response/models/shared/erasurereceipttargetname.rbi +9 -0
  328. data/lib/no_response/models/shared/erasurereceipttargetstatus.rb +19 -0
  329. data/lib/no_response/models/shared/erasurereceipttargetstatus.rbi +9 -0
  330. data/lib/no_response/models/shared/exclusion.rb +1 -0
  331. data/lib/no_response/models/shared/export.rb +73 -0
  332. data/lib/no_response/models/shared/export.rbi +38 -0
  333. data/lib/no_response/models/shared/filter.rb +83 -0
  334. data/lib/no_response/models/shared/filter.rbi +38 -0
  335. data/lib/no_response/models/shared/flowchange.rb +4 -4
  336. data/lib/no_response/models/shared/flowsettings.rb +4 -4
  337. data/lib/no_response/models/shared/from.rb +22 -0
  338. data/lib/no_response/models/shared/from.rbi +9 -0
  339. data/lib/no_response/models/shared/impact.rb +1 -1
  340. data/lib/no_response/models/shared/invite.rb +152 -0
  341. data/lib/no_response/models/shared/invite.rbi +80 -0
  342. data/lib/no_response/models/shared/invite_denied_action.rb +20 -0
  343. data/lib/no_response/models/shared/invite_denied_action.rbi +9 -0
  344. data/lib/no_response/models/shared/invite_environment.rb +19 -0
  345. data/lib/no_response/models/shared/invite_environment.rbi +9 -0
  346. data/lib/no_response/models/shared/invitelist.rb +32 -0
  347. data/lib/no_response/models/shared/invitelist.rbi +14 -0
  348. data/lib/no_response/models/shared/inviterequest.rb +80 -0
  349. data/lib/no_response/models/shared/inviterequest.rbi +38 -0
  350. data/lib/no_response/models/shared/inviterequest_denied_action.rb +17 -0
  351. data/lib/no_response/models/shared/inviterequest_denied_action.rbi +9 -0
  352. data/lib/no_response/models/shared/inviterequest_environment.rb +16 -0
  353. data/lib/no_response/models/shared/inviterequest_environment.rbi +9 -0
  354. data/lib/no_response/models/shared/inviteresendrequest.rb +23 -0
  355. data/lib/no_response/models/shared/inviteresendrequest.rbi +9 -0
  356. data/lib/no_response/models/shared/key.rb +68 -3
  357. data/lib/no_response/models/shared/key.rbi +36 -0
  358. data/lib/no_response/models/shared/key_scope.rb +10 -0
  359. data/lib/no_response/models/shared/keyactor.rb +41 -0
  360. data/lib/no_response/models/shared/keyactor.rbi +20 -0
  361. data/lib/no_response/models/shared/keykind.rb +19 -0
  362. data/lib/no_response/models/shared/keykind.rbi +9 -0
  363. data/lib/no_response/models/shared/keyrequest.rb +57 -3
  364. data/lib/no_response/models/shared/keyrequest.rbi +30 -0
  365. data/lib/no_response/models/shared/keyrequest_scope.rb +10 -0
  366. data/lib/no_response/models/shared/listbulkrequest.rb +42 -0
  367. data/lib/no_response/models/shared/listbulkrequest.rbi +20 -0
  368. data/lib/no_response/models/shared/listchange.rb +98 -0
  369. data/lib/no_response/models/shared/listchange.rbi +50 -0
  370. data/lib/no_response/models/shared/listchangestate.rb +19 -0
  371. data/lib/no_response/models/shared/listchangestate.rbi +9 -0
  372. data/lib/no_response/models/shared/listentry.rb +22 -2
  373. data/lib/no_response/models/shared/listentry.rbi +6 -0
  374. data/lib/no_response/models/shared/listentrylist.rb +11 -3
  375. data/lib/no_response/models/shared/listentrylist.rbi +6 -0
  376. data/lib/no_response/models/shared/listentryrequest.rb +11 -2
  377. data/lib/no_response/models/shared/listentryrequest.rbi +6 -0
  378. data/lib/no_response/models/shared/listimpact.rb +154 -0
  379. data/lib/no_response/models/shared/listimpact.rbi +68 -0
  380. data/lib/no_response/models/shared/listimpactkind.rb +19 -0
  381. data/lib/no_response/models/shared/listimpactkind.rbi +9 -0
  382. data/lib/no_response/models/shared/listimpacttransition.rb +67 -0
  383. data/lib/no_response/models/shared/listimpacttransition.rbi +26 -0
  384. data/lib/no_response/models/shared/listimpacttransitionfrom.rb +20 -0
  385. data/lib/no_response/models/shared/listimpacttransitionfrom.rbi +9 -0
  386. data/lib/no_response/models/shared/listmatch.rb +4 -6
  387. data/lib/no_response/models/shared/listpreviewrequest.rb +41 -0
  388. data/lib/no_response/models/shared/listpreviewrequest.rbi +20 -0
  389. data/lib/no_response/models/shared/member.rb +158 -0
  390. data/lib/no_response/models/shared/member.rbi +80 -0
  391. data/lib/no_response/models/shared/member_denied_action.rb +20 -0
  392. data/lib/no_response/models/shared/member_denied_action.rbi +9 -0
  393. data/lib/no_response/models/shared/member_environment.rb +19 -0
  394. data/lib/no_response/models/shared/member_environment.rbi +9 -0
  395. data/lib/no_response/models/shared/memberlist.rb +32 -0
  396. data/lib/no_response/models/shared/memberlist.rbi +14 -0
  397. data/lib/no_response/models/shared/memberstatus.rb +18 -0
  398. data/lib/no_response/models/shared/memberstatus.rbi +9 -0
  399. data/lib/no_response/models/shared/memberupdaterequest.rb +62 -0
  400. data/lib/no_response/models/shared/memberupdaterequest.rbi +26 -0
  401. data/lib/no_response/models/shared/memberupdaterequest_denied_action.rb +17 -0
  402. data/lib/no_response/models/shared/memberupdaterequest_denied_action.rbi +9 -0
  403. data/lib/no_response/models/shared/memberupdaterequest_environment.rb +16 -0
  404. data/lib/no_response/models/shared/memberupdaterequest_environment.rbi +9 -0
  405. data/lib/no_response/models/shared/metric.rb +20 -0
  406. data/lib/no_response/models/shared/metric.rbi +9 -0
  407. data/lib/no_response/models/shared/operationalaggregate.rb +175 -0
  408. data/lib/no_response/models/shared/operationalaggregate.rbi +86 -0
  409. data/lib/no_response/models/shared/operationalaggregatebucket.rb +149 -0
  410. data/lib/no_response/models/shared/operationalaggregatebucket.rbi +80 -0
  411. data/lib/no_response/models/shared/operationalaggregatequeue.rb +64 -0
  412. data/lib/no_response/models/shared/operationalaggregatequeue.rbi +32 -0
  413. data/lib/no_response/models/shared/operationalaggregatetotals.rb +139 -0
  414. data/lib/no_response/models/shared/operationalaggregatetotals.rbi +74 -0
  415. data/lib/no_response/models/shared/outcomes.rb +93 -0
  416. data/lib/no_response/models/shared/outcomes.rbi +44 -0
  417. data/lib/no_response/models/shared/outcomesbyoutcome.rb +89 -0
  418. data/lib/no_response/models/shared/outcomesbyoutcome.rbi +44 -0
  419. data/lib/no_response/models/shared/ownertype.rb +19 -0
  420. data/lib/no_response/models/shared/ownertype.rbi +9 -0
  421. data/lib/no_response/models/shared/policyevaluation.rb +256 -0
  422. data/lib/no_response/models/shared/policyevaluation.rbi +134 -0
  423. data/lib/no_response/models/shared/policyevaluationcancelrequest.rb +23 -0
  424. data/lib/no_response/models/shared/policyevaluationcancelrequest.rbi +9 -0
  425. data/lib/no_response/models/shared/policyevaluationlist.rb +40 -0
  426. data/lib/no_response/models/shared/policyevaluationlist.rbi +20 -0
  427. data/lib/no_response/models/shared/policyevaluationpublishrequest.rb +89 -0
  428. data/lib/no_response/models/shared/policyevaluationpublishrequest.rbi +44 -0
  429. data/lib/no_response/models/shared/policyevaluationrequest.rb +101 -0
  430. data/lib/no_response/models/shared/policyevaluationrequest.rbi +56 -0
  431. data/lib/no_response/models/shared/policyevaluationrequestcosts.rb +40 -0
  432. data/lib/no_response/models/shared/policyevaluationrequestcosts.rbi +20 -0
  433. data/lib/no_response/models/shared/policyevaluationrequestlimits.rb +59 -0
  434. data/lib/no_response/models/shared/policyevaluationrequestlimits.rbi +32 -0
  435. data/lib/no_response/models/shared/policyevaluationresult.rb +40 -0
  436. data/lib/no_response/models/shared/policyevaluationresult.rbi +20 -0
  437. data/lib/no_response/models/shared/policyevaluationstatus.rb +22 -0
  438. data/lib/no_response/models/shared/policyevaluationstatus.rbi +9 -0
  439. data/lib/no_response/models/shared/policyhistory.rb +64 -0
  440. data/lib/no_response/models/shared/policyhistory.rbi +32 -0
  441. data/lib/no_response/models/shared/policyhistoryitem.rb +74 -0
  442. data/lib/no_response/models/shared/policyhistoryitem.rbi +38 -0
  443. data/lib/no_response/models/shared/policypreview.rb +115 -0
  444. data/lib/no_response/models/shared/policypreview.rbi +62 -0
  445. data/lib/no_response/models/shared/policypreviewcoverage.rb +108 -0
  446. data/lib/no_response/models/shared/policypreviewcoverage.rbi +50 -0
  447. data/lib/no_response/models/shared/policypreviewrequest.rb +65 -0
  448. data/lib/no_response/models/shared/policypreviewrequest.rbi +38 -0
  449. data/lib/no_response/models/shared/policypreviewrequestflows.rb +55 -0
  450. data/lib/no_response/models/shared/policypreviewrequestflows.rbi +26 -0
  451. data/lib/no_response/models/shared/policypreviewrequestflowsaccountcreation.rb +48 -0
  452. data/lib/no_response/models/shared/policypreviewrequestflowsaccountcreation.rbi +26 -0
  453. data/lib/no_response/models/shared/policypreviewrequestflowslogin.rb +64 -0
  454. data/lib/no_response/models/shared/policypreviewrequestflowslogin.rbi +32 -0
  455. data/lib/no_response/models/shared/policypreviewrequestflowspurchase.rb +64 -0
  456. data/lib/no_response/models/shared/policypreviewrequestflowspurchase.rbi +32 -0
  457. data/lib/no_response/models/shared/policypreviewtransition.rb +60 -0
  458. data/lib/no_response/models/shared/policypreviewtransition.rbi +26 -0
  459. data/lib/no_response/models/shared/policyrestorerequest.rb +48 -0
  460. data/lib/no_response/models/shared/policyrestorerequest.rbi +26 -0
  461. data/lib/no_response/models/shared/population.rb +19 -0
  462. data/lib/no_response/models/shared/population.rbi +9 -0
  463. data/lib/no_response/models/shared/priority.rb +21 -0
  464. data/lib/no_response/models/shared/priority.rbi +9 -0
  465. data/lib/no_response/models/shared/publication.rb +133 -0
  466. data/lib/no_response/models/shared/publication.rbi +68 -0
  467. data/lib/no_response/models/shared/ratelimiterrorcode.rb +2 -0
  468. data/lib/no_response/models/shared/report.rb +99 -0
  469. data/lib/no_response/models/shared/report.rbi +44 -0
  470. data/lib/no_response/models/shared/report_scope.rb +23 -0
  471. data/lib/no_response/models/shared/report_scope.rbi +9 -0
  472. data/lib/no_response/models/shared/requestaggregaterequest.rb +79 -0
  473. data/lib/no_response/models/shared/requestaggregaterequest.rbi +44 -0
  474. data/lib/no_response/models/shared/requestaggregaterequestbucket.rb +19 -0
  475. data/lib/no_response/models/shared/requestaggregaterequestbucket.rbi +9 -0
  476. data/lib/no_response/models/shared/requestdiagnostic.rb +12 -2
  477. data/lib/no_response/models/shared/requestdiagnostic.rbi +6 -0
  478. data/lib/no_response/models/shared/resolution.rb +111 -0
  479. data/lib/no_response/models/shared/resolution.rbi +56 -0
  480. data/lib/no_response/models/shared/resultstatus.rb +19 -0
  481. data/lib/no_response/models/shared/resultstatus.rbi +9 -0
  482. data/lib/no_response/models/shared/review.rb +187 -0
  483. data/lib/no_response/models/shared/review.rbi +98 -0
  484. data/lib/no_response/models/shared/reviewcomment.rb +59 -0
  485. data/lib/no_response/models/shared/reviewcomment.rbi +38 -0
  486. data/lib/no_response/models/shared/reviewcommentlist.rb +40 -0
  487. data/lib/no_response/models/shared/reviewcommentlist.rbi +20 -0
  488. data/lib/no_response/models/shared/reviewcommentrequest.rb +36 -0
  489. data/lib/no_response/models/shared/reviewcommentrequest.rbi +20 -0
  490. data/lib/no_response/models/shared/reviewcreaterequest.rb +57 -0
  491. data/lib/no_response/models/shared/reviewcreaterequest.rbi +26 -0
  492. data/lib/no_response/models/shared/reviewlist.rb +40 -0
  493. data/lib/no_response/models/shared/reviewlist.rbi +20 -0
  494. data/lib/no_response/models/shared/reviewresolutionlist.rb +40 -0
  495. data/lib/no_response/models/shared/reviewresolutionlist.rbi +20 -0
  496. data/lib/no_response/models/shared/reviewresolverequest.rb +66 -0
  497. data/lib/no_response/models/shared/reviewresolverequest.rbi +32 -0
  498. data/lib/no_response/models/shared/reviews.rb +119 -0
  499. data/lib/no_response/models/shared/reviews.rbi +62 -0
  500. data/lib/no_response/models/shared/reviewsconclusions.rb +50 -0
  501. data/lib/no_response/models/shared/reviewsconclusions.rbi +26 -0
  502. data/lib/no_response/models/shared/reviewstatus.rb +20 -0
  503. data/lib/no_response/models/shared/reviewstatus.rbi +9 -0
  504. data/lib/no_response/models/shared/reviewsubject.rb +131 -0
  505. data/lib/no_response/models/shared/reviewsubject.rbi +68 -0
  506. data/lib/no_response/models/shared/reviewsubjectchange.rb +40 -0
  507. data/lib/no_response/models/shared/reviewsubjectchange.rbi +20 -0
  508. data/lib/no_response/models/shared/reviewsubjectkind.rb +20 -0
  509. data/lib/no_response/models/shared/reviewsubjectkind.rbi +9 -0
  510. data/lib/no_response/models/shared/reviewsubjectlist.rb +40 -0
  511. data/lib/no_response/models/shared/reviewsubjectlist.rbi +20 -0
  512. data/lib/no_response/models/shared/reviewsubjectrequest.rb +105 -0
  513. data/lib/no_response/models/shared/reviewsubjectrequest.rbi +50 -0
  514. data/lib/no_response/models/shared/reviewupdaterequest.rb +74 -0
  515. data/lib/no_response/models/shared/reviewupdaterequest.rbi +32 -0
  516. data/lib/no_response/models/shared/reviewupdaterequeststatus.rb +16 -0
  517. data/lib/no_response/models/shared/reviewupdaterequeststatus.rbi +9 -0
  518. data/lib/no_response/models/shared/reviewview.rb +127 -0
  519. data/lib/no_response/models/shared/reviewview.rbi +68 -0
  520. data/lib/no_response/models/shared/reviewviewdeleterequest.rb +32 -0
  521. data/lib/no_response/models/shared/reviewviewdeleterequest.rbi +14 -0
  522. data/lib/no_response/models/shared/reviewviewlist.rb +32 -0
  523. data/lib/no_response/models/shared/reviewviewlist.rbi +14 -0
  524. data/lib/no_response/models/shared/reviewviewrequest.rb +60 -0
  525. data/lib/no_response/models/shared/reviewviewrequest.rbi +32 -0
  526. data/lib/no_response/models/shared/risk.rb +1 -1
  527. data/lib/no_response/models/shared/riskreason.rb +1 -1
  528. data/lib/no_response/models/shared/role.rb +24 -0
  529. data/lib/no_response/models/shared/role.rbi +9 -0
  530. data/lib/no_response/models/shared/settings.rb +1 -1
  531. data/lib/no_response/models/shared/settingsrequest.rb +27 -3
  532. data/lib/no_response/models/shared/settingsrequest.rbi +12 -0
  533. data/lib/no_response/models/shared/source.rb +19 -0
  534. data/lib/no_response/models/shared/source.rbi +9 -0
  535. data/lib/no_response/models/shared/thresholds.rb +48 -0
  536. data/lib/no_response/models/shared/thresholds.rbi +26 -0
  537. data/lib/no_response/models/shared/usage.rb +51 -0
  538. data/lib/no_response/models/shared/usage.rbi +32 -0
  539. data/lib/no_response/models/shared/usagecount.rb +100 -0
  540. data/lib/no_response/models/shared/usagecount.rbi +44 -0
  541. data/lib/no_response/models/shared/{defaultdepth.rb → usagecountdepth.rb} +2 -2
  542. data/lib/no_response/models/shared/usagecountdepth.rbi +9 -0
  543. data/lib/no_response/models/shared/usagecountflow.rb +20 -0
  544. data/lib/no_response/models/shared/usagecountflow.rbi +9 -0
  545. data/lib/no_response/models/shared/useractor.rb +65 -0
  546. data/lib/no_response/models/shared/useractor.rbi +32 -0
  547. data/lib/no_response/models/shared/webhookaggregaterequest.rb +70 -0
  548. data/lib/no_response/models/shared/webhookaggregaterequest.rbi +38 -0
  549. data/lib/no_response/models/shared/webhookdeliveryattempt.rb +1 -1
  550. data/lib/no_response/models/shared/webhookreplay.rb +1 -1
  551. data/lib/no_response/models/shared/workspacedeleted.rb +7 -4
  552. data/lib/no_response/models/shared/workspaceoperationssummary.rb +166 -0
  553. data/lib/no_response/models/shared/workspaceoperationssummary.rbi +86 -0
  554. data/lib/no_response/models/shared/workspaceoperationssummaryrequest.rb +46 -0
  555. data/lib/no_response/models/shared/workspaceoperationssummaryrequest.rbi +26 -0
  556. data/lib/no_response/models/shared.rb +139 -1
  557. data/lib/no_response/noresponseclient.rb +19 -1
  558. data/lib/no_response/operations.rb +343 -0
  559. data/lib/no_response/requests.rb +323 -0
  560. data/lib/no_response/reviews.rb +4806 -0
  561. data/lib/no_response/sdk_hooks/idempotency_key_hook.rb +1 -1
  562. data/lib/no_response/sdkconfiguration.rb +2 -2
  563. data/lib/no_response/settings.rb +903 -2
  564. data/lib/no_response/usage.rb +334 -0
  565. data/lib/no_response/webhook_verification.rb +4 -2
  566. data/lib/no_response/webhookendpoints.rb +293 -0
  567. data/lib/noresponse.rb +9 -0
  568. metadata +501 -4
@@ -0,0 +1,1856 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ require "faraday"
5
+ require "faraday/multipart"
6
+ require "faraday/retry"
7
+ require "sorbet-runtime"
8
+ require "janeway"
9
+
10
+ require_relative "sdk_hooks/hooks"
11
+ require_relative "utils/retries"
12
+
13
+ module NoResponse
14
+ extend T::Sig
15
+
16
+ class Evaluations
17
+ extend T::Sig
18
+
19
+ # Frozen policy evaluation evidence and reviewed publication.
20
+
21
+ sig { params(sdk_config: SDKConfiguration).void }
22
+ def initialize(sdk_config)
23
+ @sdk_configuration = sdk_config
24
+ end
25
+
26
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
27
+ def get_url(base_url:, url_variables: nil)
28
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
29
+
30
+ if base_url.nil?
31
+ base_url = sd_base_url
32
+ end
33
+
34
+ if url_variables.nil?
35
+ url_variables = sd_options
36
+ end
37
+
38
+ return Utils.template_url(base_url, url_variables)
39
+ end
40
+
41
+ sig {
42
+ params(
43
+ workspace_id: ::String,
44
+ environment: Models::Shared::KeyEnvironment,
45
+ limit: T.nilable(::Integer),
46
+ before: T.nilable(::String),
47
+ retries: T.nilable(Utils::RetryConfig),
48
+ timeout_ms: T.nilable(Integer),
49
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
50
+ )
51
+ .returns(Models::Operations::ListPolicyEvaluationsResponse)
52
+ }
53
+ def list(workspace_id:, environment:, limit: nil, before: nil, retries: nil, timeout_ms: nil, http_headers: nil)
54
+ # list - List retained policy evaluation jobs.
55
+ # List retained policy evaluation jobs for this environment, newest first. At most five jobs are retained for their 24-hour evidence lifetime. Use next_before as before on the next page.
56
+ request = Models::Operations::ListPolicyEvaluationsRequest.new(
57
+ workspace_id: workspace_id,
58
+ environment: environment,
59
+ limit: limit,
60
+ before: before
61
+ )
62
+ url, params = @sdk_configuration.get_server_details
63
+ base_url = Utils.template_url(url, params)
64
+ url = Utils.generate_url(
65
+ Models::Operations::ListPolicyEvaluationsRequest,
66
+ base_url,
67
+ "/v1/workspaces/{workspace_id}/evaluations/{environment}",
68
+ request
69
+ )
70
+ headers = {}
71
+ headers = T.cast(headers, T::Hash[String, String])
72
+ query_params = Utils.get_query_params(Models::Operations::ListPolicyEvaluationsRequest, request, nil)
73
+ headers["Accept"] = "application/json"
74
+ headers["user-agent"] = @sdk_configuration.user_agent
75
+ retries ||= @sdk_configuration.retry_config
76
+ retries ||= Utils::RetryConfig.new(
77
+ backoff: Utils::BackoffStrategy.new(
78
+ exponent: 2.0,
79
+ initial_interval: 500,
80
+ max_elapsed_time: 30_000,
81
+ max_interval: 8000
82
+ ),
83
+ retry_connection_errors: true,
84
+ strategy: "backoff"
85
+ )
86
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
87
+ retry_options[:retry_statuses] = [408, 429, 500, 501, 502, 503, 504, 505]
88
+
89
+ security = @sdk_configuration.security_source&.call
90
+
91
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
92
+ timeout ||= @sdk_configuration.timeout
93
+
94
+ connection = @sdk_configuration.client.dup
95
+ connection.use(Utils::RetryMiddleware, retry_options)
96
+
97
+ hook_ctx = SDKHooks::HookContext.new(
98
+ config: @sdk_configuration,
99
+ base_url: base_url,
100
+ oauth2_scopes: nil,
101
+ operation_id: "listPolicyEvaluations",
102
+ security_source: @sdk_configuration.security_source
103
+ )
104
+
105
+ error = T.let(nil, T.nilable(StandardError))
106
+ http_response = T.let(nil, T.nilable(Faraday::Response))
107
+
108
+ begin
109
+ http_response = T.must(connection).get(url) do |req|
110
+ req.headers.merge!(headers)
111
+ req.options.timeout = timeout unless timeout.nil?
112
+ req.params = query_params
113
+ Utils.configure_request_security(req, security)
114
+ http_headers&.each do |key, value|
115
+ req.headers[key.to_s] = value
116
+ end
117
+
118
+ @sdk_configuration.hooks.before_request(
119
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
120
+ hook_ctx: hook_ctx
121
+ ),
122
+ request: req
123
+ )
124
+ end
125
+
126
+ rescue StandardError => e
127
+ error = e
128
+ ensure
129
+ if http_response.nil? || Utils.error_status?(http_response.status)
130
+ http_response = @sdk_configuration.hooks.after_error(
131
+ error: error,
132
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
133
+ hook_ctx: hook_ctx
134
+ ),
135
+ response: http_response
136
+ )
137
+ else
138
+ http_response = @sdk_configuration.hooks.after_success(
139
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
140
+ hook_ctx: hook_ctx
141
+ ),
142
+ response: http_response
143
+ )
144
+ end
145
+
146
+ if http_response.nil?
147
+ raise error if !error.nil?
148
+ raise "no response"
149
+ end
150
+ end
151
+
152
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
153
+ if Utils.match_status_code(http_response.status, ["200"])
154
+ if Utils.match_content_type(content_type, "application/json")
155
+ @sdk_configuration.hooks.after_success(
156
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
157
+ hook_ctx: hook_ctx
158
+ ),
159
+ response: http_response
160
+ )
161
+ response_data = http_response.env.response_body
162
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PolicyEvaluationList)
163
+ result = obj
164
+ response = Models::Operations::ListPolicyEvaluationsResponse.new(
165
+ result: result,
166
+ headers: http_response.headers
167
+ )
168
+ sdk = self
169
+
170
+ response.next_page = proc do
171
+ next_cursor = Janeway.enum_for("$.next_before", JSON.parse(response_data)).search
172
+ if next_cursor.nil?
173
+ next nil
174
+ else
175
+ next_cursor = next_cursor[0]
176
+ if next_cursor.nil?
177
+ next nil
178
+ end
179
+ end
180
+
181
+ sdk.list(
182
+ workspace_id: request.workspace_id,
183
+ environment: request.environment,
184
+ limit: request.limit,
185
+ before: next_cursor,
186
+ http_headers: http_headers
187
+ )
188
+ end
189
+
190
+ return response
191
+ else
192
+ raise(
193
+ ::NoResponse::Models::Errors::APIStatusError.new(
194
+ status_code: http_response.status,
195
+ body: http_response.env.response_body,
196
+ raw_response: http_response
197
+ ),
198
+ "Unknown content type received"
199
+ )
200
+ end
201
+ elsif Utils.match_status_code(http_response.status, ["400"])
202
+ if Utils.match_content_type(content_type, "application/problem+json")
203
+ @sdk_configuration.hooks.after_success(
204
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
205
+ hook_ctx: hook_ctx
206
+ ),
207
+ response: http_response
208
+ )
209
+ response_data = http_response.env.response_body
210
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
211
+ raise obj
212
+ else
213
+ raise(
214
+ ::NoResponse::Models::Errors::APIStatusError.new(
215
+ status_code: http_response.status,
216
+ body: http_response.env.response_body,
217
+ raw_response: http_response
218
+ ),
219
+ "Unknown content type received"
220
+ )
221
+ end
222
+ elsif Utils.match_status_code(http_response.status, ["401"])
223
+ if Utils.match_content_type(content_type, "application/problem+json")
224
+ @sdk_configuration.hooks.after_success(
225
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
226
+ hook_ctx: hook_ctx
227
+ ),
228
+ response: http_response
229
+ )
230
+ response_data = http_response.env.response_body
231
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
232
+ raise obj
233
+ else
234
+ raise(
235
+ ::NoResponse::Models::Errors::APIStatusError.new(
236
+ status_code: http_response.status,
237
+ body: http_response.env.response_body,
238
+ raw_response: http_response
239
+ ),
240
+ "Unknown content type received"
241
+ )
242
+ end
243
+ elsif Utils.match_status_code(http_response.status, ["403"])
244
+ if Utils.match_content_type(content_type, "application/problem+json")
245
+ @sdk_configuration.hooks.after_success(
246
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
247
+ hook_ctx: hook_ctx
248
+ ),
249
+ response: http_response
250
+ )
251
+ response_data = http_response.env.response_body
252
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
253
+ raise obj
254
+ else
255
+ raise(
256
+ ::NoResponse::Models::Errors::APIStatusError.new(
257
+ status_code: http_response.status,
258
+ body: http_response.env.response_body,
259
+ raw_response: http_response
260
+ ),
261
+ "Unknown content type received"
262
+ )
263
+ end
264
+ elsif Utils.match_status_code(http_response.status, ["404"])
265
+ if Utils.match_content_type(content_type, "application/problem+json")
266
+ @sdk_configuration.hooks.after_success(
267
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
268
+ hook_ctx: hook_ctx
269
+ ),
270
+ response: http_response
271
+ )
272
+ response_data = http_response.env.response_body
273
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
274
+ raise obj
275
+ else
276
+ raise(
277
+ ::NoResponse::Models::Errors::APIStatusError.new(
278
+ status_code: http_response.status,
279
+ body: http_response.env.response_body,
280
+ raw_response: http_response
281
+ ),
282
+ "Unknown content type received"
283
+ )
284
+ end
285
+ elsif Utils.match_status_code(http_response.status, ["409"])
286
+ if Utils.match_content_type(content_type, "application/problem+json")
287
+ @sdk_configuration.hooks.after_success(
288
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
289
+ hook_ctx: hook_ctx
290
+ ),
291
+ response: http_response
292
+ )
293
+ response_data = http_response.env.response_body
294
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictError)
295
+ raise obj
296
+ else
297
+ raise(
298
+ ::NoResponse::Models::Errors::APIStatusError.new(
299
+ status_code: http_response.status,
300
+ body: http_response.env.response_body,
301
+ raw_response: http_response
302
+ ),
303
+ "Unknown content type received"
304
+ )
305
+ end
306
+ elsif Utils.match_status_code(http_response.status, ["429"])
307
+ if Utils.match_content_type(content_type, "application/problem+json")
308
+ @sdk_configuration.hooks.after_success(
309
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
310
+ hook_ctx: hook_ctx
311
+ ),
312
+ response: http_response
313
+ )
314
+ response_data = http_response.env.response_body
315
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
316
+ raise obj
317
+ else
318
+ raise(
319
+ ::NoResponse::Models::Errors::APIStatusError.new(
320
+ status_code: http_response.status,
321
+ body: http_response.env.response_body,
322
+ raw_response: http_response
323
+ ),
324
+ "Unknown content type received"
325
+ )
326
+ end
327
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
328
+ raise(
329
+ ::NoResponse::Models::Errors::APIStatusError.new(
330
+ status_code: http_response.status,
331
+ body: http_response.env.response_body,
332
+ raw_response: http_response
333
+ ),
334
+ "API error occurred"
335
+ )
336
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
337
+ raise(
338
+ ::NoResponse::Models::Errors::APIStatusError.new(
339
+ status_code: http_response.status,
340
+ body: http_response.env.response_body,
341
+ raw_response: http_response
342
+ ),
343
+ "API error occurred"
344
+ )
345
+ else
346
+ raise(
347
+ ::NoResponse::Models::Errors::APIStatusError.new(
348
+ status_code: http_response.status,
349
+ body: http_response.env.response_body,
350
+ raw_response: http_response
351
+ ),
352
+ "Unknown status code received"
353
+ )
354
+
355
+ end
356
+ end
357
+
358
+ sig {
359
+ params(
360
+ body: Models::Shared::PolicyEvaluationRequest,
361
+ workspace_id: ::String,
362
+ environment: Models::Shared::KeyEnvironment,
363
+ idempotency_key: T.nilable(::String),
364
+ retries: T.nilable(Utils::RetryConfig),
365
+ timeout_ms: T.nilable(Integer),
366
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
367
+ )
368
+ .returns(Models::Operations::CreatePolicyEvaluationResponse)
369
+ }
370
+ def create(
371
+ body:,
372
+ workspace_id:,
373
+ environment:,
374
+ idempotency_key: nil,
375
+ retries: nil,
376
+ timeout_ms: nil,
377
+ http_headers: nil
378
+ )
379
+ # create - Freeze an evaluation cohort and queue a bounded job.
380
+ # Create a bounded evaluation with an Idempotency-Key, expected policy version, fixed candidates, cohort, seed and cost assumptions. Evidence is frozen before evaluation and recorded by hashes. Limits are 1000 accounts, 50000 request attempts and 64 MiB. Capture completeness is currently unknown, so results are no_change and cannot be published. The evaluation fetches no new source evidence and changes no live policy.
381
+ request = Models::Operations::CreatePolicyEvaluationRequest.new(
382
+ workspace_id: workspace_id,
383
+ environment: environment,
384
+ body: body,
385
+ idempotency_key: idempotency_key
386
+ )
387
+ url, params = @sdk_configuration.get_server_details
388
+ base_url = Utils.template_url(url, params)
389
+ url = Utils.generate_url(
390
+ Models::Operations::CreatePolicyEvaluationRequest,
391
+ base_url,
392
+ "/v1/workspaces/{workspace_id}/evaluations/{environment}",
393
+ request
394
+ )
395
+ headers = Utils.get_headers(request)
396
+ headers = T.cast(headers, T::Hash[String, String])
397
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :body, :json)
398
+ headers["content-type"] = req_content_type
399
+ raise StandardError, "request body is required" if data.nil? && form.nil?
400
+
401
+ if form && !form.empty?
402
+ body = Utils.encode_form(form)
403
+ elsif Utils.match_content_type(req_content_type, "application/x-www-form-urlencoded")
404
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
405
+ else
406
+ body = data
407
+ end
408
+
409
+ headers["Accept"] = "application/json"
410
+ headers["user-agent"] = @sdk_configuration.user_agent
411
+ retries ||= @sdk_configuration.retry_config
412
+ retries ||= Utils::RetryConfig.new(
413
+ backoff: Utils::BackoffStrategy.new(
414
+ exponent: 2.0,
415
+ initial_interval: 500,
416
+ max_elapsed_time: 30_000,
417
+ max_interval: 8000
418
+ ),
419
+ retry_connection_errors: true,
420
+ strategy: "backoff"
421
+ )
422
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
423
+ retry_options[:retry_statuses] = [408, 429, 500, 501, 502, 503, 504, 505]
424
+
425
+ security = @sdk_configuration.security_source&.call
426
+
427
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
428
+ timeout ||= @sdk_configuration.timeout
429
+
430
+ connection = @sdk_configuration.client.dup
431
+ connection.use(Utils::RetryMiddleware, retry_options)
432
+
433
+ hook_ctx = SDKHooks::HookContext.new(
434
+ config: @sdk_configuration,
435
+ base_url: base_url,
436
+ oauth2_scopes: nil,
437
+ operation_id: "createPolicyEvaluation",
438
+ security_source: @sdk_configuration.security_source
439
+ )
440
+
441
+ error = T.let(nil, T.nilable(StandardError))
442
+ http_response = T.let(nil, T.nilable(Faraday::Response))
443
+
444
+ begin
445
+ http_response = T.must(connection).post(url) do |req|
446
+ req.body = body
447
+ req.headers.merge!(headers)
448
+ req.options.timeout = timeout unless timeout.nil?
449
+ Utils.configure_request_security(req, security)
450
+ http_headers&.each do |key, value|
451
+ req.headers[key.to_s] = value
452
+ end
453
+
454
+ @sdk_configuration.hooks.before_request(
455
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
456
+ hook_ctx: hook_ctx
457
+ ),
458
+ request: req
459
+ )
460
+ end
461
+
462
+ rescue StandardError => e
463
+ error = e
464
+ ensure
465
+ if http_response.nil? || Utils.error_status?(http_response.status)
466
+ http_response = @sdk_configuration.hooks.after_error(
467
+ error: error,
468
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
469
+ hook_ctx: hook_ctx
470
+ ),
471
+ response: http_response
472
+ )
473
+ else
474
+ http_response = @sdk_configuration.hooks.after_success(
475
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
476
+ hook_ctx: hook_ctx
477
+ ),
478
+ response: http_response
479
+ )
480
+ end
481
+
482
+ if http_response.nil?
483
+ raise error if !error.nil?
484
+ raise "no response"
485
+ end
486
+ end
487
+
488
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
489
+ if Utils.match_status_code(http_response.status, ["202"])
490
+ if Utils.match_content_type(content_type, "application/json")
491
+ @sdk_configuration.hooks.after_success(
492
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
493
+ hook_ctx: hook_ctx
494
+ ),
495
+ response: http_response
496
+ )
497
+ response_data = http_response.env.response_body
498
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PolicyEvaluation)
499
+ result = obj
500
+ response = Models::Operations::CreatePolicyEvaluationResponse.new(
501
+ result: result,
502
+ headers: http_response.headers
503
+ )
504
+
505
+ return response
506
+ else
507
+ raise(
508
+ ::NoResponse::Models::Errors::APIStatusError.new(
509
+ status_code: http_response.status,
510
+ body: http_response.env.response_body,
511
+ raw_response: http_response
512
+ ),
513
+ "Unknown content type received"
514
+ )
515
+ end
516
+ elsif Utils.match_status_code(http_response.status, ["400"])
517
+ if Utils.match_content_type(content_type, "application/problem+json")
518
+ @sdk_configuration.hooks.after_success(
519
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
520
+ hook_ctx: hook_ctx
521
+ ),
522
+ response: http_response
523
+ )
524
+ response_data = http_response.env.response_body
525
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
526
+ raise obj
527
+ else
528
+ raise(
529
+ ::NoResponse::Models::Errors::APIStatusError.new(
530
+ status_code: http_response.status,
531
+ body: http_response.env.response_body,
532
+ raw_response: http_response
533
+ ),
534
+ "Unknown content type received"
535
+ )
536
+ end
537
+ elsif Utils.match_status_code(http_response.status, ["401"])
538
+ if Utils.match_content_type(content_type, "application/problem+json")
539
+ @sdk_configuration.hooks.after_success(
540
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
541
+ hook_ctx: hook_ctx
542
+ ),
543
+ response: http_response
544
+ )
545
+ response_data = http_response.env.response_body
546
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
547
+ raise obj
548
+ else
549
+ raise(
550
+ ::NoResponse::Models::Errors::APIStatusError.new(
551
+ status_code: http_response.status,
552
+ body: http_response.env.response_body,
553
+ raw_response: http_response
554
+ ),
555
+ "Unknown content type received"
556
+ )
557
+ end
558
+ elsif Utils.match_status_code(http_response.status, ["403"])
559
+ if Utils.match_content_type(content_type, "application/problem+json")
560
+ @sdk_configuration.hooks.after_success(
561
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
562
+ hook_ctx: hook_ctx
563
+ ),
564
+ response: http_response
565
+ )
566
+ response_data = http_response.env.response_body
567
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
568
+ raise obj
569
+ else
570
+ raise(
571
+ ::NoResponse::Models::Errors::APIStatusError.new(
572
+ status_code: http_response.status,
573
+ body: http_response.env.response_body,
574
+ raw_response: http_response
575
+ ),
576
+ "Unknown content type received"
577
+ )
578
+ end
579
+ elsif Utils.match_status_code(http_response.status, ["404"])
580
+ if Utils.match_content_type(content_type, "application/problem+json")
581
+ @sdk_configuration.hooks.after_success(
582
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
583
+ hook_ctx: hook_ctx
584
+ ),
585
+ response: http_response
586
+ )
587
+ response_data = http_response.env.response_body
588
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
589
+ raise obj
590
+ else
591
+ raise(
592
+ ::NoResponse::Models::Errors::APIStatusError.new(
593
+ status_code: http_response.status,
594
+ body: http_response.env.response_body,
595
+ raw_response: http_response
596
+ ),
597
+ "Unknown content type received"
598
+ )
599
+ end
600
+ elsif Utils.match_status_code(http_response.status, ["409"])
601
+ if Utils.match_content_type(content_type, "application/problem+json")
602
+ @sdk_configuration.hooks.after_success(
603
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
604
+ hook_ctx: hook_ctx
605
+ ),
606
+ response: http_response
607
+ )
608
+ response_data = http_response.env.response_body
609
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictError)
610
+ raise obj
611
+ else
612
+ raise(
613
+ ::NoResponse::Models::Errors::APIStatusError.new(
614
+ status_code: http_response.status,
615
+ body: http_response.env.response_body,
616
+ raw_response: http_response
617
+ ),
618
+ "Unknown content type received"
619
+ )
620
+ end
621
+ elsif Utils.match_status_code(http_response.status, ["429"])
622
+ if Utils.match_content_type(content_type, "application/problem+json")
623
+ @sdk_configuration.hooks.after_success(
624
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
625
+ hook_ctx: hook_ctx
626
+ ),
627
+ response: http_response
628
+ )
629
+ response_data = http_response.env.response_body
630
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
631
+ raise obj
632
+ else
633
+ raise(
634
+ ::NoResponse::Models::Errors::APIStatusError.new(
635
+ status_code: http_response.status,
636
+ body: http_response.env.response_body,
637
+ raw_response: http_response
638
+ ),
639
+ "Unknown content type received"
640
+ )
641
+ end
642
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
643
+ raise(
644
+ ::NoResponse::Models::Errors::APIStatusError.new(
645
+ status_code: http_response.status,
646
+ body: http_response.env.response_body,
647
+ raw_response: http_response
648
+ ),
649
+ "API error occurred"
650
+ )
651
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
652
+ raise(
653
+ ::NoResponse::Models::Errors::APIStatusError.new(
654
+ status_code: http_response.status,
655
+ body: http_response.env.response_body,
656
+ raw_response: http_response
657
+ ),
658
+ "API error occurred"
659
+ )
660
+ else
661
+ raise(
662
+ ::NoResponse::Models::Errors::APIStatusError.new(
663
+ status_code: http_response.status,
664
+ body: http_response.env.response_body,
665
+ raw_response: http_response
666
+ ),
667
+ "Unknown status code received"
668
+ )
669
+
670
+ end
671
+ end
672
+
673
+ sig {
674
+ params(
675
+ workspace_id: ::String,
676
+ environment: Models::Shared::KeyEnvironment,
677
+ evaluation_id: ::String,
678
+ retries: T.nilable(Utils::RetryConfig),
679
+ timeout_ms: T.nilable(Integer),
680
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
681
+ )
682
+ .returns(Models::Operations::GetPolicyEvaluationResponse)
683
+ }
684
+ def get(workspace_id:, environment:, evaluation_id:, retries: nil, timeout_ms: nil, http_headers: nil)
685
+ # get - Read evaluation state and provenance.
686
+ # Read a retained evaluation job and its capture and provenance metadata. Cancellation, source erasure, retention reduction and expiry can make a result unavailable.
687
+ request = Models::Operations::GetPolicyEvaluationRequest.new(
688
+ workspace_id: workspace_id,
689
+ environment: environment,
690
+ evaluation_id: evaluation_id
691
+ )
692
+ url, params = @sdk_configuration.get_server_details
693
+ base_url = Utils.template_url(url, params)
694
+ url = Utils.generate_url(
695
+ Models::Operations::GetPolicyEvaluationRequest,
696
+ base_url,
697
+ "/v1/workspaces/{workspace_id}/evaluations/{environment}/{evaluation_id}",
698
+ request
699
+ )
700
+ headers = {}
701
+ headers = T.cast(headers, T::Hash[String, String])
702
+ headers["Accept"] = "application/json"
703
+ headers["user-agent"] = @sdk_configuration.user_agent
704
+ retries ||= @sdk_configuration.retry_config
705
+ retries ||= Utils::RetryConfig.new(
706
+ backoff: Utils::BackoffStrategy.new(
707
+ exponent: 2.0,
708
+ initial_interval: 500,
709
+ max_elapsed_time: 30_000,
710
+ max_interval: 8000
711
+ ),
712
+ retry_connection_errors: true,
713
+ strategy: "backoff"
714
+ )
715
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
716
+ retry_options[:retry_statuses] = [408, 429, 500, 501, 502, 503, 504, 505]
717
+
718
+ security = @sdk_configuration.security_source&.call
719
+
720
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
721
+ timeout ||= @sdk_configuration.timeout
722
+
723
+ connection = @sdk_configuration.client.dup
724
+ connection.use(Utils::RetryMiddleware, retry_options)
725
+
726
+ hook_ctx = SDKHooks::HookContext.new(
727
+ config: @sdk_configuration,
728
+ base_url: base_url,
729
+ oauth2_scopes: nil,
730
+ operation_id: "getPolicyEvaluation",
731
+ security_source: @sdk_configuration.security_source
732
+ )
733
+
734
+ error = T.let(nil, T.nilable(StandardError))
735
+ http_response = T.let(nil, T.nilable(Faraday::Response))
736
+
737
+ begin
738
+ http_response = T.must(connection).get(url) do |req|
739
+ req.headers.merge!(headers)
740
+ req.options.timeout = timeout unless timeout.nil?
741
+ Utils.configure_request_security(req, security)
742
+ http_headers&.each do |key, value|
743
+ req.headers[key.to_s] = value
744
+ end
745
+
746
+ @sdk_configuration.hooks.before_request(
747
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
748
+ hook_ctx: hook_ctx
749
+ ),
750
+ request: req
751
+ )
752
+ end
753
+
754
+ rescue StandardError => e
755
+ error = e
756
+ ensure
757
+ if http_response.nil? || Utils.error_status?(http_response.status)
758
+ http_response = @sdk_configuration.hooks.after_error(
759
+ error: error,
760
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
761
+ hook_ctx: hook_ctx
762
+ ),
763
+ response: http_response
764
+ )
765
+ else
766
+ http_response = @sdk_configuration.hooks.after_success(
767
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
768
+ hook_ctx: hook_ctx
769
+ ),
770
+ response: http_response
771
+ )
772
+ end
773
+
774
+ if http_response.nil?
775
+ raise error if !error.nil?
776
+ raise "no response"
777
+ end
778
+ end
779
+
780
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
781
+ if Utils.match_status_code(http_response.status, ["200"])
782
+ if Utils.match_content_type(content_type, "application/json")
783
+ @sdk_configuration.hooks.after_success(
784
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
785
+ hook_ctx: hook_ctx
786
+ ),
787
+ response: http_response
788
+ )
789
+ response_data = http_response.env.response_body
790
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PolicyEvaluation)
791
+ result = obj
792
+ response = Models::Operations::GetPolicyEvaluationResponse.new(
793
+ result: result,
794
+ headers: http_response.headers
795
+ )
796
+
797
+ return response
798
+ else
799
+ raise(
800
+ ::NoResponse::Models::Errors::APIStatusError.new(
801
+ status_code: http_response.status,
802
+ body: http_response.env.response_body,
803
+ raw_response: http_response
804
+ ),
805
+ "Unknown content type received"
806
+ )
807
+ end
808
+ elsif Utils.match_status_code(http_response.status, ["400"])
809
+ if Utils.match_content_type(content_type, "application/problem+json")
810
+ @sdk_configuration.hooks.after_success(
811
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
812
+ hook_ctx: hook_ctx
813
+ ),
814
+ response: http_response
815
+ )
816
+ response_data = http_response.env.response_body
817
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
818
+ raise obj
819
+ else
820
+ raise(
821
+ ::NoResponse::Models::Errors::APIStatusError.new(
822
+ status_code: http_response.status,
823
+ body: http_response.env.response_body,
824
+ raw_response: http_response
825
+ ),
826
+ "Unknown content type received"
827
+ )
828
+ end
829
+ elsif Utils.match_status_code(http_response.status, ["401"])
830
+ if Utils.match_content_type(content_type, "application/problem+json")
831
+ @sdk_configuration.hooks.after_success(
832
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
833
+ hook_ctx: hook_ctx
834
+ ),
835
+ response: http_response
836
+ )
837
+ response_data = http_response.env.response_body
838
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
839
+ raise obj
840
+ else
841
+ raise(
842
+ ::NoResponse::Models::Errors::APIStatusError.new(
843
+ status_code: http_response.status,
844
+ body: http_response.env.response_body,
845
+ raw_response: http_response
846
+ ),
847
+ "Unknown content type received"
848
+ )
849
+ end
850
+ elsif Utils.match_status_code(http_response.status, ["403"])
851
+ if Utils.match_content_type(content_type, "application/problem+json")
852
+ @sdk_configuration.hooks.after_success(
853
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
854
+ hook_ctx: hook_ctx
855
+ ),
856
+ response: http_response
857
+ )
858
+ response_data = http_response.env.response_body
859
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
860
+ raise obj
861
+ else
862
+ raise(
863
+ ::NoResponse::Models::Errors::APIStatusError.new(
864
+ status_code: http_response.status,
865
+ body: http_response.env.response_body,
866
+ raw_response: http_response
867
+ ),
868
+ "Unknown content type received"
869
+ )
870
+ end
871
+ elsif Utils.match_status_code(http_response.status, ["404"])
872
+ if Utils.match_content_type(content_type, "application/problem+json")
873
+ @sdk_configuration.hooks.after_success(
874
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
875
+ hook_ctx: hook_ctx
876
+ ),
877
+ response: http_response
878
+ )
879
+ response_data = http_response.env.response_body
880
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
881
+ raise obj
882
+ else
883
+ raise(
884
+ ::NoResponse::Models::Errors::APIStatusError.new(
885
+ status_code: http_response.status,
886
+ body: http_response.env.response_body,
887
+ raw_response: http_response
888
+ ),
889
+ "Unknown content type received"
890
+ )
891
+ end
892
+ elsif Utils.match_status_code(http_response.status, ["409"])
893
+ if Utils.match_content_type(content_type, "application/problem+json")
894
+ @sdk_configuration.hooks.after_success(
895
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
896
+ hook_ctx: hook_ctx
897
+ ),
898
+ response: http_response
899
+ )
900
+ response_data = http_response.env.response_body
901
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictError)
902
+ raise obj
903
+ else
904
+ raise(
905
+ ::NoResponse::Models::Errors::APIStatusError.new(
906
+ status_code: http_response.status,
907
+ body: http_response.env.response_body,
908
+ raw_response: http_response
909
+ ),
910
+ "Unknown content type received"
911
+ )
912
+ end
913
+ elsif Utils.match_status_code(http_response.status, ["429"])
914
+ if Utils.match_content_type(content_type, "application/problem+json")
915
+ @sdk_configuration.hooks.after_success(
916
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
917
+ hook_ctx: hook_ctx
918
+ ),
919
+ response: http_response
920
+ )
921
+ response_data = http_response.env.response_body
922
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
923
+ raise obj
924
+ else
925
+ raise(
926
+ ::NoResponse::Models::Errors::APIStatusError.new(
927
+ status_code: http_response.status,
928
+ body: http_response.env.response_body,
929
+ raw_response: http_response
930
+ ),
931
+ "Unknown content type received"
932
+ )
933
+ end
934
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
935
+ raise(
936
+ ::NoResponse::Models::Errors::APIStatusError.new(
937
+ status_code: http_response.status,
938
+ body: http_response.env.response_body,
939
+ raw_response: http_response
940
+ ),
941
+ "API error occurred"
942
+ )
943
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
944
+ raise(
945
+ ::NoResponse::Models::Errors::APIStatusError.new(
946
+ status_code: http_response.status,
947
+ body: http_response.env.response_body,
948
+ raw_response: http_response
949
+ ),
950
+ "API error occurred"
951
+ )
952
+ else
953
+ raise(
954
+ ::NoResponse::Models::Errors::APIStatusError.new(
955
+ status_code: http_response.status,
956
+ body: http_response.env.response_body,
957
+ raw_response: http_response
958
+ ),
959
+ "Unknown status code received"
960
+ )
961
+
962
+ end
963
+ end
964
+
965
+ sig {
966
+ params(
967
+ workspace_id: ::String,
968
+ environment: Models::Shared::KeyEnvironment,
969
+ evaluation_id: ::String,
970
+ retries: T.nilable(Utils::RetryConfig),
971
+ timeout_ms: T.nilable(Integer),
972
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
973
+ )
974
+ .returns(Models::Operations::GetPolicyEvaluationResultResponse)
975
+ }
976
+ def get_result(workspace_id:, environment:, evaluation_id:, retries: nil, timeout_ms: nil, http_headers: nil)
977
+ # get_result - Read the bounded completed evaluator report.
978
+ # Read the completed evaluation report, including coverage, uncertainty and candidate results. Unknown capture completeness produces no_change. A completed result is not an automatic policy change.
979
+ request = Models::Operations::GetPolicyEvaluationResultRequest.new(
980
+ workspace_id: workspace_id,
981
+ environment: environment,
982
+ evaluation_id: evaluation_id
983
+ )
984
+ url, params = @sdk_configuration.get_server_details
985
+ base_url = Utils.template_url(url, params)
986
+ url = Utils.generate_url(
987
+ Models::Operations::GetPolicyEvaluationResultRequest,
988
+ base_url,
989
+ "/v1/workspaces/{workspace_id}/evaluations/{environment}/{evaluation_id}/result",
990
+ request
991
+ )
992
+ headers = {}
993
+ headers = T.cast(headers, T::Hash[String, String])
994
+ headers["Accept"] = "application/json"
995
+ headers["user-agent"] = @sdk_configuration.user_agent
996
+ retries ||= @sdk_configuration.retry_config
997
+ retries ||= Utils::RetryConfig.new(
998
+ backoff: Utils::BackoffStrategy.new(
999
+ exponent: 2.0,
1000
+ initial_interval: 500,
1001
+ max_elapsed_time: 30_000,
1002
+ max_interval: 8000
1003
+ ),
1004
+ retry_connection_errors: true,
1005
+ strategy: "backoff"
1006
+ )
1007
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
1008
+ retry_options[:retry_statuses] = [408, 429, 500, 501, 502, 503, 504, 505]
1009
+
1010
+ security = @sdk_configuration.security_source&.call
1011
+
1012
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
1013
+ timeout ||= @sdk_configuration.timeout
1014
+
1015
+ connection = @sdk_configuration.client.dup
1016
+ connection.use(Utils::RetryMiddleware, retry_options)
1017
+
1018
+ hook_ctx = SDKHooks::HookContext.new(
1019
+ config: @sdk_configuration,
1020
+ base_url: base_url,
1021
+ oauth2_scopes: nil,
1022
+ operation_id: "getPolicyEvaluationResult",
1023
+ security_source: @sdk_configuration.security_source
1024
+ )
1025
+
1026
+ error = T.let(nil, T.nilable(StandardError))
1027
+ http_response = T.let(nil, T.nilable(Faraday::Response))
1028
+
1029
+ begin
1030
+ http_response = T.must(connection).get(url) do |req|
1031
+ req.headers.merge!(headers)
1032
+ req.options.timeout = timeout unless timeout.nil?
1033
+ Utils.configure_request_security(req, security)
1034
+ http_headers&.each do |key, value|
1035
+ req.headers[key.to_s] = value
1036
+ end
1037
+
1038
+ @sdk_configuration.hooks.before_request(
1039
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
1040
+ hook_ctx: hook_ctx
1041
+ ),
1042
+ request: req
1043
+ )
1044
+ end
1045
+
1046
+ rescue StandardError => e
1047
+ error = e
1048
+ ensure
1049
+ if http_response.nil? || Utils.error_status?(http_response.status)
1050
+ http_response = @sdk_configuration.hooks.after_error(
1051
+ error: error,
1052
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
1053
+ hook_ctx: hook_ctx
1054
+ ),
1055
+ response: http_response
1056
+ )
1057
+ else
1058
+ http_response = @sdk_configuration.hooks.after_success(
1059
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1060
+ hook_ctx: hook_ctx
1061
+ ),
1062
+ response: http_response
1063
+ )
1064
+ end
1065
+
1066
+ if http_response.nil?
1067
+ raise error if !error.nil?
1068
+ raise "no response"
1069
+ end
1070
+ end
1071
+
1072
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
1073
+ if Utils.match_status_code(http_response.status, ["200"])
1074
+ if Utils.match_content_type(content_type, "application/json")
1075
+ @sdk_configuration.hooks.after_success(
1076
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1077
+ hook_ctx: hook_ctx
1078
+ ),
1079
+ response: http_response
1080
+ )
1081
+ response_data = http_response.env.response_body
1082
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PolicyEvaluationResult)
1083
+ result = obj
1084
+ response = Models::Operations::GetPolicyEvaluationResultResponse.new(
1085
+ result: result,
1086
+ headers: http_response.headers
1087
+ )
1088
+
1089
+ return response
1090
+ else
1091
+ raise(
1092
+ ::NoResponse::Models::Errors::APIStatusError.new(
1093
+ status_code: http_response.status,
1094
+ body: http_response.env.response_body,
1095
+ raw_response: http_response
1096
+ ),
1097
+ "Unknown content type received"
1098
+ )
1099
+ end
1100
+ elsif Utils.match_status_code(http_response.status, ["400"])
1101
+ if Utils.match_content_type(content_type, "application/problem+json")
1102
+ @sdk_configuration.hooks.after_success(
1103
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1104
+ hook_ctx: hook_ctx
1105
+ ),
1106
+ response: http_response
1107
+ )
1108
+ response_data = http_response.env.response_body
1109
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
1110
+ raise obj
1111
+ else
1112
+ raise(
1113
+ ::NoResponse::Models::Errors::APIStatusError.new(
1114
+ status_code: http_response.status,
1115
+ body: http_response.env.response_body,
1116
+ raw_response: http_response
1117
+ ),
1118
+ "Unknown content type received"
1119
+ )
1120
+ end
1121
+ elsif Utils.match_status_code(http_response.status, ["401"])
1122
+ if Utils.match_content_type(content_type, "application/problem+json")
1123
+ @sdk_configuration.hooks.after_success(
1124
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1125
+ hook_ctx: hook_ctx
1126
+ ),
1127
+ response: http_response
1128
+ )
1129
+ response_data = http_response.env.response_body
1130
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
1131
+ raise obj
1132
+ else
1133
+ raise(
1134
+ ::NoResponse::Models::Errors::APIStatusError.new(
1135
+ status_code: http_response.status,
1136
+ body: http_response.env.response_body,
1137
+ raw_response: http_response
1138
+ ),
1139
+ "Unknown content type received"
1140
+ )
1141
+ end
1142
+ elsif Utils.match_status_code(http_response.status, ["403"])
1143
+ if Utils.match_content_type(content_type, "application/problem+json")
1144
+ @sdk_configuration.hooks.after_success(
1145
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1146
+ hook_ctx: hook_ctx
1147
+ ),
1148
+ response: http_response
1149
+ )
1150
+ response_data = http_response.env.response_body
1151
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
1152
+ raise obj
1153
+ else
1154
+ raise(
1155
+ ::NoResponse::Models::Errors::APIStatusError.new(
1156
+ status_code: http_response.status,
1157
+ body: http_response.env.response_body,
1158
+ raw_response: http_response
1159
+ ),
1160
+ "Unknown content type received"
1161
+ )
1162
+ end
1163
+ elsif Utils.match_status_code(http_response.status, ["404"])
1164
+ if Utils.match_content_type(content_type, "application/problem+json")
1165
+ @sdk_configuration.hooks.after_success(
1166
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1167
+ hook_ctx: hook_ctx
1168
+ ),
1169
+ response: http_response
1170
+ )
1171
+ response_data = http_response.env.response_body
1172
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
1173
+ raise obj
1174
+ else
1175
+ raise(
1176
+ ::NoResponse::Models::Errors::APIStatusError.new(
1177
+ status_code: http_response.status,
1178
+ body: http_response.env.response_body,
1179
+ raw_response: http_response
1180
+ ),
1181
+ "Unknown content type received"
1182
+ )
1183
+ end
1184
+ elsif Utils.match_status_code(http_response.status, ["409"])
1185
+ if Utils.match_content_type(content_type, "application/problem+json")
1186
+ @sdk_configuration.hooks.after_success(
1187
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1188
+ hook_ctx: hook_ctx
1189
+ ),
1190
+ response: http_response
1191
+ )
1192
+ response_data = http_response.env.response_body
1193
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictError)
1194
+ raise obj
1195
+ else
1196
+ raise(
1197
+ ::NoResponse::Models::Errors::APIStatusError.new(
1198
+ status_code: http_response.status,
1199
+ body: http_response.env.response_body,
1200
+ raw_response: http_response
1201
+ ),
1202
+ "Unknown content type received"
1203
+ )
1204
+ end
1205
+ elsif Utils.match_status_code(http_response.status, ["429"])
1206
+ if Utils.match_content_type(content_type, "application/problem+json")
1207
+ @sdk_configuration.hooks.after_success(
1208
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1209
+ hook_ctx: hook_ctx
1210
+ ),
1211
+ response: http_response
1212
+ )
1213
+ response_data = http_response.env.response_body
1214
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
1215
+ raise obj
1216
+ else
1217
+ raise(
1218
+ ::NoResponse::Models::Errors::APIStatusError.new(
1219
+ status_code: http_response.status,
1220
+ body: http_response.env.response_body,
1221
+ raw_response: http_response
1222
+ ),
1223
+ "Unknown content type received"
1224
+ )
1225
+ end
1226
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
1227
+ raise(
1228
+ ::NoResponse::Models::Errors::APIStatusError.new(
1229
+ status_code: http_response.status,
1230
+ body: http_response.env.response_body,
1231
+ raw_response: http_response
1232
+ ),
1233
+ "API error occurred"
1234
+ )
1235
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
1236
+ raise(
1237
+ ::NoResponse::Models::Errors::APIStatusError.new(
1238
+ status_code: http_response.status,
1239
+ body: http_response.env.response_body,
1240
+ raw_response: http_response
1241
+ ),
1242
+ "API error occurred"
1243
+ )
1244
+ else
1245
+ raise(
1246
+ ::NoResponse::Models::Errors::APIStatusError.new(
1247
+ status_code: http_response.status,
1248
+ body: http_response.env.response_body,
1249
+ raw_response: http_response
1250
+ ),
1251
+ "Unknown status code received"
1252
+ )
1253
+
1254
+ end
1255
+ end
1256
+
1257
+ sig {
1258
+ params(
1259
+ body: Models::Shared::PolicyEvaluationCancelRequest,
1260
+ workspace_id: ::String,
1261
+ environment: Models::Shared::KeyEnvironment,
1262
+ evaluation_id: ::String,
1263
+ retries: T.nilable(Utils::RetryConfig),
1264
+ timeout_ms: T.nilable(Integer),
1265
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
1266
+ )
1267
+ .returns(Models::Operations::CancelPolicyEvaluationResponse)
1268
+ }
1269
+ def cancel(body:, workspace_id:, environment:, evaluation_id:, retries: nil, timeout_ms: nil, http_headers: nil)
1270
+ # cancel - Cancel processing and destroy retained evidence and report.
1271
+ # Cancel a queued or running evaluation and invalidate its stored evidence. The operation does not change policy. Send an empty JSON object.
1272
+ request = Models::Operations::CancelPolicyEvaluationRequest.new(
1273
+ workspace_id: workspace_id,
1274
+ environment: environment,
1275
+ evaluation_id: evaluation_id,
1276
+ body: body
1277
+ )
1278
+ url, params = @sdk_configuration.get_server_details
1279
+ base_url = Utils.template_url(url, params)
1280
+ url = Utils.generate_url(
1281
+ Models::Operations::CancelPolicyEvaluationRequest,
1282
+ base_url,
1283
+ "/v1/workspaces/{workspace_id}/evaluations/{environment}/{evaluation_id}/cancel",
1284
+ request
1285
+ )
1286
+ headers = {}
1287
+ headers = T.cast(headers, T::Hash[String, String])
1288
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :body, :json)
1289
+ headers["content-type"] = req_content_type
1290
+ raise StandardError, "request body is required" if data.nil? && form.nil?
1291
+
1292
+ if form && !form.empty?
1293
+ body = Utils.encode_form(form)
1294
+ elsif Utils.match_content_type(req_content_type, "application/x-www-form-urlencoded")
1295
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
1296
+ else
1297
+ body = data
1298
+ end
1299
+
1300
+ headers["Accept"] = "application/json"
1301
+ headers["user-agent"] = @sdk_configuration.user_agent
1302
+ retries ||= @sdk_configuration.retry_config
1303
+ retries ||= Utils::RetryConfig.new(
1304
+ backoff: Utils::BackoffStrategy.new(
1305
+ exponent: 2.0,
1306
+ initial_interval: 500,
1307
+ max_elapsed_time: 30_000,
1308
+ max_interval: 8000
1309
+ ),
1310
+ retry_connection_errors: true,
1311
+ strategy: "backoff"
1312
+ )
1313
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
1314
+ retry_options[:retry_statuses] = [408, 429, 500, 501, 502, 503, 504, 505]
1315
+
1316
+ security = @sdk_configuration.security_source&.call
1317
+
1318
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
1319
+ timeout ||= @sdk_configuration.timeout
1320
+
1321
+ connection = @sdk_configuration.client.dup
1322
+ connection.use(Utils::RetryMiddleware, retry_options)
1323
+
1324
+ hook_ctx = SDKHooks::HookContext.new(
1325
+ config: @sdk_configuration,
1326
+ base_url: base_url,
1327
+ oauth2_scopes: nil,
1328
+ operation_id: "cancelPolicyEvaluation",
1329
+ security_source: @sdk_configuration.security_source
1330
+ )
1331
+
1332
+ error = T.let(nil, T.nilable(StandardError))
1333
+ http_response = T.let(nil, T.nilable(Faraday::Response))
1334
+
1335
+ begin
1336
+ http_response = T.must(connection).post(url) do |req|
1337
+ req.body = body
1338
+ req.headers.merge!(headers)
1339
+ req.options.timeout = timeout unless timeout.nil?
1340
+ Utils.configure_request_security(req, security)
1341
+ http_headers&.each do |key, value|
1342
+ req.headers[key.to_s] = value
1343
+ end
1344
+
1345
+ @sdk_configuration.hooks.before_request(
1346
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
1347
+ hook_ctx: hook_ctx
1348
+ ),
1349
+ request: req
1350
+ )
1351
+ end
1352
+
1353
+ rescue StandardError => e
1354
+ error = e
1355
+ ensure
1356
+ if http_response.nil? || Utils.error_status?(http_response.status)
1357
+ http_response = @sdk_configuration.hooks.after_error(
1358
+ error: error,
1359
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
1360
+ hook_ctx: hook_ctx
1361
+ ),
1362
+ response: http_response
1363
+ )
1364
+ else
1365
+ http_response = @sdk_configuration.hooks.after_success(
1366
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1367
+ hook_ctx: hook_ctx
1368
+ ),
1369
+ response: http_response
1370
+ )
1371
+ end
1372
+
1373
+ if http_response.nil?
1374
+ raise error if !error.nil?
1375
+ raise "no response"
1376
+ end
1377
+ end
1378
+
1379
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
1380
+ if Utils.match_status_code(http_response.status, ["200"])
1381
+ if Utils.match_content_type(content_type, "application/json")
1382
+ @sdk_configuration.hooks.after_success(
1383
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1384
+ hook_ctx: hook_ctx
1385
+ ),
1386
+ response: http_response
1387
+ )
1388
+ response_data = http_response.env.response_body
1389
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PolicyEvaluation)
1390
+ result = obj
1391
+ response = Models::Operations::CancelPolicyEvaluationResponse.new(
1392
+ result: result,
1393
+ headers: http_response.headers
1394
+ )
1395
+
1396
+ return response
1397
+ else
1398
+ raise(
1399
+ ::NoResponse::Models::Errors::APIStatusError.new(
1400
+ status_code: http_response.status,
1401
+ body: http_response.env.response_body,
1402
+ raw_response: http_response
1403
+ ),
1404
+ "Unknown content type received"
1405
+ )
1406
+ end
1407
+ elsif Utils.match_status_code(http_response.status, ["400"])
1408
+ if Utils.match_content_type(content_type, "application/problem+json")
1409
+ @sdk_configuration.hooks.after_success(
1410
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1411
+ hook_ctx: hook_ctx
1412
+ ),
1413
+ response: http_response
1414
+ )
1415
+ response_data = http_response.env.response_body
1416
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
1417
+ raise obj
1418
+ else
1419
+ raise(
1420
+ ::NoResponse::Models::Errors::APIStatusError.new(
1421
+ status_code: http_response.status,
1422
+ body: http_response.env.response_body,
1423
+ raw_response: http_response
1424
+ ),
1425
+ "Unknown content type received"
1426
+ )
1427
+ end
1428
+ elsif Utils.match_status_code(http_response.status, ["401"])
1429
+ if Utils.match_content_type(content_type, "application/problem+json")
1430
+ @sdk_configuration.hooks.after_success(
1431
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1432
+ hook_ctx: hook_ctx
1433
+ ),
1434
+ response: http_response
1435
+ )
1436
+ response_data = http_response.env.response_body
1437
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
1438
+ raise obj
1439
+ else
1440
+ raise(
1441
+ ::NoResponse::Models::Errors::APIStatusError.new(
1442
+ status_code: http_response.status,
1443
+ body: http_response.env.response_body,
1444
+ raw_response: http_response
1445
+ ),
1446
+ "Unknown content type received"
1447
+ )
1448
+ end
1449
+ elsif Utils.match_status_code(http_response.status, ["403"])
1450
+ if Utils.match_content_type(content_type, "application/problem+json")
1451
+ @sdk_configuration.hooks.after_success(
1452
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1453
+ hook_ctx: hook_ctx
1454
+ ),
1455
+ response: http_response
1456
+ )
1457
+ response_data = http_response.env.response_body
1458
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
1459
+ raise obj
1460
+ else
1461
+ raise(
1462
+ ::NoResponse::Models::Errors::APIStatusError.new(
1463
+ status_code: http_response.status,
1464
+ body: http_response.env.response_body,
1465
+ raw_response: http_response
1466
+ ),
1467
+ "Unknown content type received"
1468
+ )
1469
+ end
1470
+ elsif Utils.match_status_code(http_response.status, ["404"])
1471
+ if Utils.match_content_type(content_type, "application/problem+json")
1472
+ @sdk_configuration.hooks.after_success(
1473
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1474
+ hook_ctx: hook_ctx
1475
+ ),
1476
+ response: http_response
1477
+ )
1478
+ response_data = http_response.env.response_body
1479
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
1480
+ raise obj
1481
+ else
1482
+ raise(
1483
+ ::NoResponse::Models::Errors::APIStatusError.new(
1484
+ status_code: http_response.status,
1485
+ body: http_response.env.response_body,
1486
+ raw_response: http_response
1487
+ ),
1488
+ "Unknown content type received"
1489
+ )
1490
+ end
1491
+ elsif Utils.match_status_code(http_response.status, ["409"])
1492
+ if Utils.match_content_type(content_type, "application/problem+json")
1493
+ @sdk_configuration.hooks.after_success(
1494
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1495
+ hook_ctx: hook_ctx
1496
+ ),
1497
+ response: http_response
1498
+ )
1499
+ response_data = http_response.env.response_body
1500
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictError)
1501
+ raise obj
1502
+ else
1503
+ raise(
1504
+ ::NoResponse::Models::Errors::APIStatusError.new(
1505
+ status_code: http_response.status,
1506
+ body: http_response.env.response_body,
1507
+ raw_response: http_response
1508
+ ),
1509
+ "Unknown content type received"
1510
+ )
1511
+ end
1512
+ elsif Utils.match_status_code(http_response.status, ["429"])
1513
+ if Utils.match_content_type(content_type, "application/problem+json")
1514
+ @sdk_configuration.hooks.after_success(
1515
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1516
+ hook_ctx: hook_ctx
1517
+ ),
1518
+ response: http_response
1519
+ )
1520
+ response_data = http_response.env.response_body
1521
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
1522
+ raise obj
1523
+ else
1524
+ raise(
1525
+ ::NoResponse::Models::Errors::APIStatusError.new(
1526
+ status_code: http_response.status,
1527
+ body: http_response.env.response_body,
1528
+ raw_response: http_response
1529
+ ),
1530
+ "Unknown content type received"
1531
+ )
1532
+ end
1533
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
1534
+ raise(
1535
+ ::NoResponse::Models::Errors::APIStatusError.new(
1536
+ status_code: http_response.status,
1537
+ body: http_response.env.response_body,
1538
+ raw_response: http_response
1539
+ ),
1540
+ "API error occurred"
1541
+ )
1542
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
1543
+ raise(
1544
+ ::NoResponse::Models::Errors::APIStatusError.new(
1545
+ status_code: http_response.status,
1546
+ body: http_response.env.response_body,
1547
+ raw_response: http_response
1548
+ ),
1549
+ "API error occurred"
1550
+ )
1551
+ else
1552
+ raise(
1553
+ ::NoResponse::Models::Errors::APIStatusError.new(
1554
+ status_code: http_response.status,
1555
+ body: http_response.env.response_body,
1556
+ raw_response: http_response
1557
+ ),
1558
+ "Unknown status code received"
1559
+ )
1560
+
1561
+ end
1562
+ end
1563
+
1564
+ sig {
1565
+ params(
1566
+ body: Models::Shared::PolicyEvaluationPublishRequest,
1567
+ workspace_id: ::String,
1568
+ environment: Models::Shared::KeyEnvironment,
1569
+ evaluation_id: ::String,
1570
+ timeout_ms: T.nilable(Integer),
1571
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
1572
+ )
1573
+ .returns(Models::Operations::PublishPolicyEvaluationResponse)
1574
+ }
1575
+ def publish(body:, workspace_id:, environment:, evaluation_id:, timeout_ms: nil, http_headers: nil)
1576
+ # publish - Publish an explicitly reviewed proposal with exact provenance.
1577
+ # Publish an explicitly reviewed candidate with its exact manifest, input and result hashes and unchanged baseline policy version. Requires settings plus policy_publish, or legacy management. Publication creates a fresh policy version and immutable provenance. no_change, expired or invalidated results are refused.
1578
+ request = Models::Operations::PublishPolicyEvaluationRequest.new(
1579
+ workspace_id: workspace_id,
1580
+ environment: environment,
1581
+ evaluation_id: evaluation_id,
1582
+ body: body
1583
+ )
1584
+ url, params = @sdk_configuration.get_server_details
1585
+ base_url = Utils.template_url(url, params)
1586
+ url = Utils.generate_url(
1587
+ Models::Operations::PublishPolicyEvaluationRequest,
1588
+ base_url,
1589
+ "/v1/workspaces/{workspace_id}/evaluations/{environment}/{evaluation_id}/publish",
1590
+ request
1591
+ )
1592
+ headers = {}
1593
+ headers = T.cast(headers, T::Hash[String, String])
1594
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :body, :json)
1595
+ headers["content-type"] = req_content_type
1596
+ raise StandardError, "request body is required" if data.nil? && form.nil?
1597
+
1598
+ if form && !form.empty?
1599
+ body = Utils.encode_form(form)
1600
+ elsif Utils.match_content_type(req_content_type, "application/x-www-form-urlencoded")
1601
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
1602
+ else
1603
+ body = data
1604
+ end
1605
+
1606
+ headers["Accept"] = "application/json"
1607
+ headers["user-agent"] = @sdk_configuration.user_agent
1608
+
1609
+ security = @sdk_configuration.security_source&.call
1610
+
1611
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
1612
+ timeout ||= @sdk_configuration.timeout
1613
+
1614
+ connection = @sdk_configuration.client
1615
+
1616
+ hook_ctx = SDKHooks::HookContext.new(
1617
+ config: @sdk_configuration,
1618
+ base_url: base_url,
1619
+ oauth2_scopes: nil,
1620
+ operation_id: "publishPolicyEvaluation",
1621
+ security_source: @sdk_configuration.security_source
1622
+ )
1623
+
1624
+ error = T.let(nil, T.nilable(StandardError))
1625
+ http_response = T.let(nil, T.nilable(Faraday::Response))
1626
+
1627
+ begin
1628
+ http_response = T.must(connection).post(url) do |req|
1629
+ req.body = body
1630
+ req.headers.merge!(headers)
1631
+ req.options.timeout = timeout unless timeout.nil?
1632
+ Utils.configure_request_security(req, security)
1633
+ http_headers&.each do |key, value|
1634
+ req.headers[key.to_s] = value
1635
+ end
1636
+
1637
+ @sdk_configuration.hooks.before_request(
1638
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
1639
+ hook_ctx: hook_ctx
1640
+ ),
1641
+ request: req
1642
+ )
1643
+ end
1644
+
1645
+ rescue StandardError => e
1646
+ error = e
1647
+ ensure
1648
+ if http_response.nil? || Utils.error_status?(http_response.status)
1649
+ http_response = @sdk_configuration.hooks.after_error(
1650
+ error: error,
1651
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
1652
+ hook_ctx: hook_ctx
1653
+ ),
1654
+ response: http_response
1655
+ )
1656
+ else
1657
+ http_response = @sdk_configuration.hooks.after_success(
1658
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1659
+ hook_ctx: hook_ctx
1660
+ ),
1661
+ response: http_response
1662
+ )
1663
+ end
1664
+
1665
+ if http_response.nil?
1666
+ raise error if !error.nil?
1667
+ raise "no response"
1668
+ end
1669
+ end
1670
+
1671
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
1672
+ if Utils.match_status_code(http_response.status, ["200"])
1673
+ if Utils.match_content_type(content_type, "application/json")
1674
+ @sdk_configuration.hooks.after_success(
1675
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1676
+ hook_ctx: hook_ctx
1677
+ ),
1678
+ response: http_response
1679
+ )
1680
+ response_data = http_response.env.response_body
1681
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::Settings)
1682
+ result = obj
1683
+ response = Models::Operations::PublishPolicyEvaluationResponse.new(
1684
+ result: result,
1685
+ headers: http_response.headers
1686
+ )
1687
+
1688
+ return response
1689
+ else
1690
+ raise(
1691
+ ::NoResponse::Models::Errors::APIStatusError.new(
1692
+ status_code: http_response.status,
1693
+ body: http_response.env.response_body,
1694
+ raw_response: http_response
1695
+ ),
1696
+ "Unknown content type received"
1697
+ )
1698
+ end
1699
+ elsif Utils.match_status_code(http_response.status, ["400"])
1700
+ if Utils.match_content_type(content_type, "application/problem+json")
1701
+ @sdk_configuration.hooks.after_success(
1702
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1703
+ hook_ctx: hook_ctx
1704
+ ),
1705
+ response: http_response
1706
+ )
1707
+ response_data = http_response.env.response_body
1708
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
1709
+ raise obj
1710
+ else
1711
+ raise(
1712
+ ::NoResponse::Models::Errors::APIStatusError.new(
1713
+ status_code: http_response.status,
1714
+ body: http_response.env.response_body,
1715
+ raw_response: http_response
1716
+ ),
1717
+ "Unknown content type received"
1718
+ )
1719
+ end
1720
+ elsif Utils.match_status_code(http_response.status, ["401"])
1721
+ if Utils.match_content_type(content_type, "application/problem+json")
1722
+ @sdk_configuration.hooks.after_success(
1723
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1724
+ hook_ctx: hook_ctx
1725
+ ),
1726
+ response: http_response
1727
+ )
1728
+ response_data = http_response.env.response_body
1729
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
1730
+ raise obj
1731
+ else
1732
+ raise(
1733
+ ::NoResponse::Models::Errors::APIStatusError.new(
1734
+ status_code: http_response.status,
1735
+ body: http_response.env.response_body,
1736
+ raw_response: http_response
1737
+ ),
1738
+ "Unknown content type received"
1739
+ )
1740
+ end
1741
+ elsif Utils.match_status_code(http_response.status, ["403"])
1742
+ if Utils.match_content_type(content_type, "application/problem+json")
1743
+ @sdk_configuration.hooks.after_success(
1744
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1745
+ hook_ctx: hook_ctx
1746
+ ),
1747
+ response: http_response
1748
+ )
1749
+ response_data = http_response.env.response_body
1750
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
1751
+ raise obj
1752
+ else
1753
+ raise(
1754
+ ::NoResponse::Models::Errors::APIStatusError.new(
1755
+ status_code: http_response.status,
1756
+ body: http_response.env.response_body,
1757
+ raw_response: http_response
1758
+ ),
1759
+ "Unknown content type received"
1760
+ )
1761
+ end
1762
+ elsif Utils.match_status_code(http_response.status, ["404"])
1763
+ if Utils.match_content_type(content_type, "application/problem+json")
1764
+ @sdk_configuration.hooks.after_success(
1765
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1766
+ hook_ctx: hook_ctx
1767
+ ),
1768
+ response: http_response
1769
+ )
1770
+ response_data = http_response.env.response_body
1771
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
1772
+ raise obj
1773
+ else
1774
+ raise(
1775
+ ::NoResponse::Models::Errors::APIStatusError.new(
1776
+ status_code: http_response.status,
1777
+ body: http_response.env.response_body,
1778
+ raw_response: http_response
1779
+ ),
1780
+ "Unknown content type received"
1781
+ )
1782
+ end
1783
+ elsif Utils.match_status_code(http_response.status, ["409"])
1784
+ if Utils.match_content_type(content_type, "application/problem+json")
1785
+ @sdk_configuration.hooks.after_success(
1786
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1787
+ hook_ctx: hook_ctx
1788
+ ),
1789
+ response: http_response
1790
+ )
1791
+ response_data = http_response.env.response_body
1792
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictError)
1793
+ raise obj
1794
+ else
1795
+ raise(
1796
+ ::NoResponse::Models::Errors::APIStatusError.new(
1797
+ status_code: http_response.status,
1798
+ body: http_response.env.response_body,
1799
+ raw_response: http_response
1800
+ ),
1801
+ "Unknown content type received"
1802
+ )
1803
+ end
1804
+ elsif Utils.match_status_code(http_response.status, ["429"])
1805
+ if Utils.match_content_type(content_type, "application/problem+json")
1806
+ @sdk_configuration.hooks.after_success(
1807
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1808
+ hook_ctx: hook_ctx
1809
+ ),
1810
+ response: http_response
1811
+ )
1812
+ response_data = http_response.env.response_body
1813
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
1814
+ raise obj
1815
+ else
1816
+ raise(
1817
+ ::NoResponse::Models::Errors::APIStatusError.new(
1818
+ status_code: http_response.status,
1819
+ body: http_response.env.response_body,
1820
+ raw_response: http_response
1821
+ ),
1822
+ "Unknown content type received"
1823
+ )
1824
+ end
1825
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
1826
+ raise(
1827
+ ::NoResponse::Models::Errors::APIStatusError.new(
1828
+ status_code: http_response.status,
1829
+ body: http_response.env.response_body,
1830
+ raw_response: http_response
1831
+ ),
1832
+ "API error occurred"
1833
+ )
1834
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
1835
+ raise(
1836
+ ::NoResponse::Models::Errors::APIStatusError.new(
1837
+ status_code: http_response.status,
1838
+ body: http_response.env.response_body,
1839
+ raw_response: http_response
1840
+ ),
1841
+ "API error occurred"
1842
+ )
1843
+ else
1844
+ raise(
1845
+ ::NoResponse::Models::Errors::APIStatusError.new(
1846
+ status_code: http_response.status,
1847
+ body: http_response.env.response_body,
1848
+ raw_response: http_response
1849
+ ),
1850
+ "Unknown status code received"
1851
+ )
1852
+
1853
+ end
1854
+ end
1855
+ end
1856
+ end