cloudinary-account-provisioning 0.1.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 (319) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cld_provisioning/accesskeys.rb +927 -0
  3. data/lib/cld_provisioning/billingusage.rb +231 -0
  4. data/lib/cld_provisioning/cldprovisioning.rb +173 -0
  5. data/lib/cld_provisioning/custompolicies.rb +958 -0
  6. data/lib/cld_provisioning/effectivepolicies.rb +233 -0
  7. data/lib/cld_provisioning/models/callbacks.rb +13 -0
  8. data/lib/cld_provisioning/models/errors/apierror.rb +40 -0
  9. data/lib/cld_provisioning/models/errors/apierror.rbi +27 -0
  10. data/lib/cld_provisioning/models/errors/errorresponse.rb +35 -0
  11. data/lib/cld_provisioning/models/errors/errorresponse.rbi +14 -0
  12. data/lib/cld_provisioning/models/errors/permissionserrorresponse.rb +35 -0
  13. data/lib/cld_provisioning/models/errors/permissionserrorresponse.rbi +14 -0
  14. data/lib/cld_provisioning/models/errors.rb +15 -0
  15. data/lib/cld_provisioning/models/operations/addusertousergroup_request.rb +44 -0
  16. data/lib/cld_provisioning/models/operations/addusertousergroup_request.rbi +26 -0
  17. data/lib/cld_provisioning/models/operations/createcustompolicy_request.rb +40 -0
  18. data/lib/cld_provisioning/models/operations/createcustompolicy_request.rbi +20 -0
  19. data/lib/cld_provisioning/models/operations/createproductenvironment_request.rb +50 -0
  20. data/lib/cld_provisioning/models/operations/createproductenvironment_request.rbi +20 -0
  21. data/lib/cld_provisioning/models/operations/createrole_request.rb +40 -0
  22. data/lib/cld_provisioning/models/operations/createrole_request.rbi +20 -0
  23. data/lib/cld_provisioning/models/operations/createuser_request.rb +40 -0
  24. data/lib/cld_provisioning/models/operations/createuser_request.rbi +20 -0
  25. data/lib/cld_provisioning/models/operations/createuser_requestbody.rb +85 -0
  26. data/lib/cld_provisioning/models/operations/createuser_requestbody.rbi +38 -0
  27. data/lib/cld_provisioning/models/operations/createusergroup_request.rb +40 -0
  28. data/lib/cld_provisioning/models/operations/createusergroup_request.rbi +20 -0
  29. data/lib/cld_provisioning/models/operations/deleteaccesskey_request.rb +48 -0
  30. data/lib/cld_provisioning/models/operations/deleteaccesskey_request.rbi +26 -0
  31. data/lib/cld_provisioning/models/operations/deleteaccesskeybyname_request.rb +48 -0
  32. data/lib/cld_provisioning/models/operations/deleteaccesskeybyname_request.rbi +26 -0
  33. data/lib/cld_provisioning/models/operations/deletecustompolicy_request.rb +40 -0
  34. data/lib/cld_provisioning/models/operations/deletecustompolicy_request.rbi +20 -0
  35. data/lib/cld_provisioning/models/operations/deleteproductenvironment_request.rb +44 -0
  36. data/lib/cld_provisioning/models/operations/deleteproductenvironment_request.rbi +20 -0
  37. data/lib/cld_provisioning/models/operations/deleterole_request.rb +51 -0
  38. data/lib/cld_provisioning/models/operations/deleterole_request.rbi +26 -0
  39. data/lib/cld_provisioning/models/operations/deleteuser_request.rb +40 -0
  40. data/lib/cld_provisioning/models/operations/deleteuser_request.rbi +20 -0
  41. data/lib/cld_provisioning/models/operations/deleteusergroup_request.rb +40 -0
  42. data/lib/cld_provisioning/models/operations/deleteusergroup_request.rbi +20 -0
  43. data/lib/cld_provisioning/models/operations/generateaccesskey_request.rb +55 -0
  44. data/lib/cld_provisioning/models/operations/generateaccesskey_request.rbi +26 -0
  45. data/lib/cld_provisioning/models/operations/getaccesskeys_request.rb +89 -0
  46. data/lib/cld_provisioning/models/operations/getaccesskeys_request.rbi +44 -0
  47. data/lib/cld_provisioning/models/operations/getbillingusage_request.rb +60 -0
  48. data/lib/cld_provisioning/models/operations/getbillingusage_request.rbi +26 -0
  49. data/lib/cld_provisioning/models/operations/getcustompolicies_request.rb +79 -0
  50. data/lib/cld_provisioning/models/operations/getcustompolicies_request.rbi +38 -0
  51. data/lib/cld_provisioning/models/operations/getcustompolicy_request.rb +40 -0
  52. data/lib/cld_provisioning/models/operations/getcustompolicy_request.rbi +20 -0
  53. data/lib/cld_provisioning/models/operations/geteffectivepolicies_request.rb +85 -0
  54. data/lib/cld_provisioning/models/operations/geteffectivepolicies_request.rbi +38 -0
  55. data/lib/cld_provisioning/models/operations/getgroupsforuser_request.rb +40 -0
  56. data/lib/cld_provisioning/models/operations/getgroupsforuser_request.rbi +20 -0
  57. data/lib/cld_provisioning/models/operations/getprincipalroles_request.rb +161 -0
  58. data/lib/cld_provisioning/models/operations/getprincipalroles_request.rbi +80 -0
  59. data/lib/cld_provisioning/models/operations/getproductenvironment_request.rb +44 -0
  60. data/lib/cld_provisioning/models/operations/getproductenvironment_request.rbi +20 -0
  61. data/lib/cld_provisioning/models/operations/getproductenvironments_request.rb +79 -0
  62. data/lib/cld_provisioning/models/operations/getproductenvironments_request.rbi +38 -0
  63. data/lib/cld_provisioning/models/operations/getrole_request.rb +103 -0
  64. data/lib/cld_provisioning/models/operations/getrole_request.rbi +50 -0
  65. data/lib/cld_provisioning/models/operations/getroleprincipals_request.rb +135 -0
  66. data/lib/cld_provisioning/models/operations/getroleprincipals_request.rbi +68 -0
  67. data/lib/cld_provisioning/models/operations/getroles_request.rb +80 -0
  68. data/lib/cld_provisioning/models/operations/getroles_request.rbi +38 -0
  69. data/lib/cld_provisioning/models/operations/getsubaccountsforuser_request.rb +40 -0
  70. data/lib/cld_provisioning/models/operations/getsubaccountsforuser_request.rbi +20 -0
  71. data/lib/cld_provisioning/models/operations/getsystempolicies_request.rb +59 -0
  72. data/lib/cld_provisioning/models/operations/getsystempolicies_request.rbi +26 -0
  73. data/lib/cld_provisioning/models/operations/getuser_request.rb +40 -0
  74. data/lib/cld_provisioning/models/operations/getuser_request.rbi +20 -0
  75. data/lib/cld_provisioning/models/operations/getusergroup_request.rb +52 -0
  76. data/lib/cld_provisioning/models/operations/getusergroup_request.rbi +26 -0
  77. data/lib/cld_provisioning/models/operations/getusergroups_request.rb +46 -0
  78. data/lib/cld_provisioning/models/operations/getusergroups_request.rbi +20 -0
  79. data/lib/cld_provisioning/models/operations/getusers_request.rb +179 -0
  80. data/lib/cld_provisioning/models/operations/getusers_request.rbi +92 -0
  81. data/lib/cld_provisioning/models/operations/getusersinusergroup_request.rb +40 -0
  82. data/lib/cld_provisioning/models/operations/getusersinusergroup_request.rbi +20 -0
  83. data/lib/cld_provisioning/models/operations/inspect_request.rb +155 -0
  84. data/lib/cld_provisioning/models/operations/inspect_request.rbi +74 -0
  85. data/lib/cld_provisioning/models/operations/inspectmultiple_request.rb +40 -0
  86. data/lib/cld_provisioning/models/operations/inspectmultiple_request.rbi +20 -0
  87. data/lib/cld_provisioning/models/operations/queryparam_sort_by.rb +22 -0
  88. data/lib/cld_provisioning/models/operations/queryparam_sort_by.rbi +9 -0
  89. data/lib/cld_provisioning/models/operations/queryparam_sort_order.rb +20 -0
  90. data/lib/cld_provisioning/models/operations/queryparam_sort_order.rbi +9 -0
  91. data/lib/cld_provisioning/models/operations/removeuserfromusergroup_request.rb +44 -0
  92. data/lib/cld_provisioning/models/operations/removeuserfromusergroup_request.rbi +26 -0
  93. data/lib/cld_provisioning/models/operations/role.rb +24 -0
  94. data/lib/cld_provisioning/models/operations/role.rbi +9 -0
  95. data/lib/cld_provisioning/models/operations/sort_by.rb +22 -0
  96. data/lib/cld_provisioning/models/operations/sort_by.rbi +9 -0
  97. data/lib/cld_provisioning/models/operations/sort_order.rb +20 -0
  98. data/lib/cld_provisioning/models/operations/sort_order.rbi +9 -0
  99. data/lib/cld_provisioning/models/operations/union_type.rb +21 -0
  100. data/lib/cld_provisioning/models/operations/union_type.rbi +9 -0
  101. data/lib/cld_provisioning/models/operations/updateaccesskey_request.rb +64 -0
  102. data/lib/cld_provisioning/models/operations/updateaccesskey_request.rbi +32 -0
  103. data/lib/cld_provisioning/models/operations/updatecustompolicy_request.rb +51 -0
  104. data/lib/cld_provisioning/models/operations/updatecustompolicy_request.rbi +26 -0
  105. data/lib/cld_provisioning/models/operations/updateprincipalroles_request.rb +50 -0
  106. data/lib/cld_provisioning/models/operations/updateprincipalroles_request.rbi +20 -0
  107. data/lib/cld_provisioning/models/operations/updateproductenvironment_request.rb +59 -0
  108. data/lib/cld_provisioning/models/operations/updateproductenvironment_request.rbi +26 -0
  109. data/lib/cld_provisioning/models/operations/updaterole_request.rb +44 -0
  110. data/lib/cld_provisioning/models/operations/updaterole_request.rbi +26 -0
  111. data/lib/cld_provisioning/models/operations/updateroleprincipals_request.rb +55 -0
  112. data/lib/cld_provisioning/models/operations/updateroleprincipals_request.rbi +26 -0
  113. data/lib/cld_provisioning/models/operations/updateuser_request.rb +46 -0
  114. data/lib/cld_provisioning/models/operations/updateuser_request.rbi +26 -0
  115. data/lib/cld_provisioning/models/operations/updateusergroup_request.rb +51 -0
  116. data/lib/cld_provisioning/models/operations/updateusergroup_request.rbi +26 -0
  117. data/lib/cld_provisioning/models/operations.rb +72 -0
  118. data/lib/cld_provisioning/models/server_variables/server_region.rb +20 -0
  119. data/lib/cld_provisioning/models/server_variables.rb +13 -0
  120. data/lib/cld_provisioning/models/shared/accesskey.rb +96 -0
  121. data/lib/cld_provisioning/models/shared/accesskey.rbi +44 -0
  122. data/lib/cld_provisioning/models/shared/accesskeyrequest.rb +44 -0
  123. data/lib/cld_provisioning/models/shared/accesskeyrequest.rbi +20 -0
  124. data/lib/cld_provisioning/models/shared/accesskeysresponse.rb +44 -0
  125. data/lib/cld_provisioning/models/shared/accesskeysresponse.rbi +20 -0
  126. data/lib/cld_provisioning/models/shared/accesskeyupdaterequest.rb +66 -0
  127. data/lib/cld_provisioning/models/shared/accesskeyupdaterequest.rbi +26 -0
  128. data/lib/cld_provisioning/models/shared/apiaccesskey.rb +52 -0
  129. data/lib/cld_provisioning/models/shared/apiaccesskey.rbi +26 -0
  130. data/lib/cld_provisioning/models/shared/billingusageresponse.rb +46 -0
  131. data/lib/cld_provisioning/models/shared/billingusageresponse.rbi +20 -0
  132. data/lib/cld_provisioning/models/shared/billingusageresponse_breakdown.rb +133 -0
  133. data/lib/cld_provisioning/models/shared/billingusageresponse_breakdown.rbi +68 -0
  134. data/lib/cld_provisioning/models/shared/breakdown.rb +133 -0
  135. data/lib/cld_provisioning/models/shared/breakdown.rbi +68 -0
  136. data/lib/cld_provisioning/models/shared/cedarerror.rb +43 -0
  137. data/lib/cld_provisioning/models/shared/cedarerror.rbi +20 -0
  138. data/lib/cld_provisioning/models/shared/cedarschemaresponse.rb +35 -0
  139. data/lib/cld_provisioning/models/shared/cedarschemaresponse.rbi +14 -0
  140. data/lib/cld_provisioning/models/shared/cloudassettypebreakdown.rb +143 -0
  141. data/lib/cld_provisioning/models/shared/cloudassettypebreakdown.rbi +74 -0
  142. data/lib/cld_provisioning/models/shared/createrole.rb +102 -0
  143. data/lib/cld_provisioning/models/shared/createrole.rbi +44 -0
  144. data/lib/cld_provisioning/models/shared/custom_attributes.rb +26 -0
  145. data/lib/cld_provisioning/models/shared/custom_attributes.rbi +9 -0
  146. data/lib/cld_provisioning/models/shared/custompoliciesresponse.rb +47 -0
  147. data/lib/cld_provisioning/models/shared/custompoliciesresponse.rbi +20 -0
  148. data/lib/cld_provisioning/models/shared/custompolicy.rb +96 -0
  149. data/lib/cld_provisioning/models/shared/custompolicy.rbi +44 -0
  150. data/lib/cld_provisioning/models/shared/custompolicyresponse.rb +35 -0
  151. data/lib/cld_provisioning/models/shared/custompolicyresponse.rbi +14 -0
  152. data/lib/cld_provisioning/models/shared/custompolicyresponsedata.rb +125 -0
  153. data/lib/cld_provisioning/models/shared/custompolicyresponsedata.rbi +62 -0
  154. data/lib/cld_provisioning/models/shared/cycles.rb +87 -0
  155. data/lib/cld_provisioning/models/shared/cycles.rbi +38 -0
  156. data/lib/cld_provisioning/models/shared/data.rb +49 -0
  157. data/lib/cld_provisioning/models/shared/data.rbi +20 -0
  158. data/lib/cld_provisioning/models/shared/dedicated_for.rb +20 -0
  159. data/lib/cld_provisioning/models/shared/dedicated_for.rbi +9 -0
  160. data/lib/cld_provisioning/models/shared/details.rb +26 -0
  161. data/lib/cld_provisioning/models/shared/details.rbi +9 -0
  162. data/lib/cld_provisioning/models/shared/effectivepoliciesresponse.rb +35 -0
  163. data/lib/cld_provisioning/models/shared/effectivepoliciesresponse.rbi +14 -0
  164. data/lib/cld_provisioning/models/shared/effectivepolicy.rb +44 -0
  165. data/lib/cld_provisioning/models/shared/effectivepolicy.rbi +20 -0
  166. data/lib/cld_provisioning/models/shared/effectiverole.rb +46 -0
  167. data/lib/cld_provisioning/models/shared/effectiverole.rbi +20 -0
  168. data/lib/cld_provisioning/models/shared/email_preferences.rb +26 -0
  169. data/lib/cld_provisioning/models/shared/email_preferences.rbi +9 -0
  170. data/lib/cld_provisioning/models/shared/error.rb +35 -0
  171. data/lib/cld_provisioning/models/shared/error.rbi +14 -0
  172. data/lib/cld_provisioning/models/shared/inspectrequest.rb +83 -0
  173. data/lib/cld_provisioning/models/shared/inspectrequest.rbi +38 -0
  174. data/lib/cld_provisioning/models/shared/inspectrequest_policy_parameters.rb +26 -0
  175. data/lib/cld_provisioning/models/shared/inspectrequest_policy_parameters.rbi +9 -0
  176. data/lib/cld_provisioning/models/shared/managementtypeenum.rb +22 -0
  177. data/lib/cld_provisioning/models/shared/managementtypeenum.rbi +9 -0
  178. data/lib/cld_provisioning/models/shared/metric_usage.rb +68 -0
  179. data/lib/cld_provisioning/models/shared/metric_usage.rbi +32 -0
  180. data/lib/cld_provisioning/models/shared/monthly_cycles.rb +87 -0
  181. data/lib/cld_provisioning/models/shared/monthly_cycles.rbi +38 -0
  182. data/lib/cld_provisioning/models/shared/operationenum.rb +19 -0
  183. data/lib/cld_provisioning/models/shared/operationenum.rbi +9 -0
  184. data/lib/cld_provisioning/models/shared/permissionserror.rb +68 -0
  185. data/lib/cld_provisioning/models/shared/permissionserror.rbi +32 -0
  186. data/lib/cld_provisioning/models/shared/permissiontypeenum.rb +22 -0
  187. data/lib/cld_provisioning/models/shared/permissiontypeenum.rbi +9 -0
  188. data/lib/cld_provisioning/models/shared/policy_parameters.rb +29 -0
  189. data/lib/cld_provisioning/models/shared/policy_parameters.rbi +9 -0
  190. data/lib/cld_provisioning/models/shared/principal.rb +46 -0
  191. data/lib/cld_provisioning/models/shared/principal.rbi +20 -0
  192. data/lib/cld_provisioning/models/shared/principalresponsedata.rb +120 -0
  193. data/lib/cld_provisioning/models/shared/principalresponsedata.rbi +56 -0
  194. data/lib/cld_provisioning/models/shared/principalresponsedata_policy_parameters.rb +26 -0
  195. data/lib/cld_provisioning/models/shared/principalresponsedata_policy_parameters.rbi +9 -0
  196. data/lib/cld_provisioning/models/shared/principalrole.rb +68 -0
  197. data/lib/cld_provisioning/models/shared/principalrole.rbi +26 -0
  198. data/lib/cld_provisioning/models/shared/principalrolesdata.rb +150 -0
  199. data/lib/cld_provisioning/models/shared/principalrolesdata.rbi +68 -0
  200. data/lib/cld_provisioning/models/shared/principalrolesinspectdata.rb +61 -0
  201. data/lib/cld_provisioning/models/shared/principalrolesinspectdata.rbi +26 -0
  202. data/lib/cld_provisioning/models/shared/principalrolesinspectresponse.rb +46 -0
  203. data/lib/cld_provisioning/models/shared/principalrolesinspectresponse.rbi +20 -0
  204. data/lib/cld_provisioning/models/shared/principalrolesinspectresponse_data.rb +35 -0
  205. data/lib/cld_provisioning/models/shared/principalrolesinspectresponse_data.rbi +14 -0
  206. data/lib/cld_provisioning/models/shared/principalrolesresponse.rb +35 -0
  207. data/lib/cld_provisioning/models/shared/principalrolesresponse.rbi +14 -0
  208. data/lib/cld_provisioning/models/shared/principalsresponse.rb +36 -0
  209. data/lib/cld_provisioning/models/shared/principalsresponse.rbi +14 -0
  210. data/lib/cld_provisioning/models/shared/principaltypeenum.rb +24 -0
  211. data/lib/cld_provisioning/models/shared/principaltypeenum.rbi +9 -0
  212. data/lib/cld_provisioning/models/shared/productenvironment.rb +112 -0
  213. data/lib/cld_provisioning/models/shared/productenvironment.rbi +50 -0
  214. data/lib/cld_provisioning/models/shared/productenvironmentrequest.rb +68 -0
  215. data/lib/cld_provisioning/models/shared/productenvironmentrequest.rbi +32 -0
  216. data/lib/cld_provisioning/models/shared/productenvironmentsresponse.rb +35 -0
  217. data/lib/cld_provisioning/models/shared/productenvironmentsresponse.rbi +14 -0
  218. data/lib/cld_provisioning/models/shared/productenvironmentupdaterequest.rb +71 -0
  219. data/lib/cld_provisioning/models/shared/productenvironmentupdaterequest.rbi +32 -0
  220. data/lib/cld_provisioning/models/shared/productenvironmentupdaterequest_custom_attributes.rb +26 -0
  221. data/lib/cld_provisioning/models/shared/productenvironmentupdaterequest_custom_attributes.rbi +9 -0
  222. data/lib/cld_provisioning/models/shared/role.rb +58 -0
  223. data/lib/cld_provisioning/models/shared/role.rbi +26 -0
  224. data/lib/cld_provisioning/models/shared/roleresponse.rb +35 -0
  225. data/lib/cld_provisioning/models/shared/roleresponse.rbi +14 -0
  226. data/lib/cld_provisioning/models/shared/roleresponse_data1.rb +149 -0
  227. data/lib/cld_provisioning/models/shared/roleresponse_data1.rbi +68 -0
  228. data/lib/cld_provisioning/models/shared/roleresponsedata.rb +139 -0
  229. data/lib/cld_provisioning/models/shared/roleresponsedata.rbi +62 -0
  230. data/lib/cld_provisioning/models/shared/rolesresponse.rb +36 -0
  231. data/lib/cld_provisioning/models/shared/rolesresponse.rbi +14 -0
  232. data/lib/cld_provisioning/models/shared/roletomanage.rb +55 -0
  233. data/lib/cld_provisioning/models/shared/roletomanage.rbi +26 -0
  234. data/lib/cld_provisioning/models/shared/roletomanage_policy_parameters.rb +26 -0
  235. data/lib/cld_provisioning/models/shared/roletomanage_policy_parameters.rbi +9 -0
  236. data/lib/cld_provisioning/models/shared/scopetypeenum.rb +22 -0
  237. data/lib/cld_provisioning/models/shared/scopetypeenum.rbi +9 -0
  238. data/lib/cld_provisioning/models/shared/security.rb +52 -0
  239. data/lib/cld_provisioning/models/shared/security.rbi +20 -0
  240. data/lib/cld_provisioning/models/shared/subaccountsummary.rb +77 -0
  241. data/lib/cld_provisioning/models/shared/subaccountsummary.rbi +38 -0
  242. data/lib/cld_provisioning/models/shared/successresponse.rb +35 -0
  243. data/lib/cld_provisioning/models/shared/successresponse.rbi +14 -0
  244. data/lib/cld_provisioning/models/shared/systempoliciesresponse.rb +47 -0
  245. data/lib/cld_provisioning/models/shared/systempoliciesresponse.rbi +20 -0
  246. data/lib/cld_provisioning/models/shared/systempolicyresponsedata.rb +153 -0
  247. data/lib/cld_provisioning/models/shared/systempolicyresponsedata.rbi +74 -0
  248. data/lib/cld_provisioning/models/shared/systemrolesandpoliciescatalogresponse.rb +35 -0
  249. data/lib/cld_provisioning/models/shared/systemrolesandpoliciescatalogresponse.rbi +14 -0
  250. data/lib/cld_provisioning/models/shared/updatecustompolicy.rb +96 -0
  251. data/lib/cld_provisioning/models/shared/updatecustompolicy.rbi +44 -0
  252. data/lib/cld_provisioning/models/shared/updateprincipalrolesrequest.rb +64 -0
  253. data/lib/cld_provisioning/models/shared/updateprincipalrolesrequest.rbi +26 -0
  254. data/lib/cld_provisioning/models/shared/updateroleprincipal.rb +74 -0
  255. data/lib/cld_provisioning/models/shared/updateroleprincipal.rbi +32 -0
  256. data/lib/cld_provisioning/models/shared/updateroleprincipal_policy_parameters.rb +26 -0
  257. data/lib/cld_provisioning/models/shared/updateroleprincipal_policy_parameters.rbi +9 -0
  258. data/lib/cld_provisioning/models/shared/updateroleprincipalsrequest.rb +55 -0
  259. data/lib/cld_provisioning/models/shared/updateroleprincipalsrequest.rbi +20 -0
  260. data/lib/cld_provisioning/models/shared/user.rb +258 -0
  261. data/lib/cld_provisioning/models/shared/user.rbi +134 -0
  262. data/lib/cld_provisioning/models/shared/usergroup.rb +93 -0
  263. data/lib/cld_provisioning/models/shared/usergroup.rbi +38 -0
  264. data/lib/cld_provisioning/models/shared/usergrouprequest.rb +46 -0
  265. data/lib/cld_provisioning/models/shared/usergrouprequest.rbi +20 -0
  266. data/lib/cld_provisioning/models/shared/usergroupslistresponse.rb +36 -0
  267. data/lib/cld_provisioning/models/shared/usergroupslistresponse.rbi +14 -0
  268. data/lib/cld_provisioning/models/shared/usergroupsresponse.rb +36 -0
  269. data/lib/cld_provisioning/models/shared/usergroupsresponse.rbi +14 -0
  270. data/lib/cld_provisioning/models/shared/usergroupsummary.rb +44 -0
  271. data/lib/cld_provisioning/models/shared/usergroupsummary.rbi +20 -0
  272. data/lib/cld_provisioning/models/shared/usergroupuser.rb +52 -0
  273. data/lib/cld_provisioning/models/shared/usergroupuser.rbi +26 -0
  274. data/lib/cld_provisioning/models/shared/usergroupusersresponse.rb +36 -0
  275. data/lib/cld_provisioning/models/shared/usergroupusersresponse.rbi +14 -0
  276. data/lib/cld_provisioning/models/shared/userrequest.rb +85 -0
  277. data/lib/cld_provisioning/models/shared/userrequest.rbi +38 -0
  278. data/lib/cld_provisioning/models/shared/userrequest_role.rb +24 -0
  279. data/lib/cld_provisioning/models/shared/userrequest_role.rbi +9 -0
  280. data/lib/cld_provisioning/models/shared/usersresponse.rb +35 -0
  281. data/lib/cld_provisioning/models/shared/usersresponse.rbi +14 -0
  282. data/lib/cld_provisioning/models/shared/usersubaccountsresponse.rb +36 -0
  283. data/lib/cld_provisioning/models/shared/usersubaccountsresponse.rbi +14 -0
  284. data/lib/cld_provisioning/models/shared/validatecedarpolicyrequest.rb +36 -0
  285. data/lib/cld_provisioning/models/shared/validatecedarpolicyrequest.rbi +14 -0
  286. data/lib/cld_provisioning/models/shared/validatecedarpolicyresponse.rb +43 -0
  287. data/lib/cld_provisioning/models/shared/validatecedarpolicyresponse.rbi +20 -0
  288. data/lib/cld_provisioning/models/shared.rb +111 -0
  289. data/lib/cld_provisioning/principals.rb +818 -0
  290. data/lib/cld_provisioning/productenvironments.rb +928 -0
  291. data/lib/cld_provisioning/public.rb +456 -0
  292. data/lib/cld_provisioning/roles.rb +1315 -0
  293. data/lib/cld_provisioning/sdk_hooks/account_config.rb +62 -0
  294. data/lib/cld_provisioning/sdk_hooks/cloudinary_account_hook.rb +87 -0
  295. data/lib/cld_provisioning/sdk_hooks/hooks.rb +100 -0
  296. data/lib/cld_provisioning/sdk_hooks/registration.rb +37 -0
  297. data/lib/cld_provisioning/sdk_hooks/types.rb +181 -0
  298. data/lib/cld_provisioning/sdk_hooks/user_agent_hook.rb +35 -0
  299. data/lib/cld_provisioning/sdkconfiguration.rb +133 -0
  300. data/lib/cld_provisioning/sdkconfiguration.rbi +89 -0
  301. data/lib/cld_provisioning/systempolicies.rb +240 -0
  302. data/lib/cld_provisioning/usergroups.rb +1425 -0
  303. data/lib/cld_provisioning/users.rb +1245 -0
  304. data/lib/cld_provisioning/utils/forms.rb +233 -0
  305. data/lib/cld_provisioning/utils/headers.rb +83 -0
  306. data/lib/cld_provisioning/utils/query_params.rb +168 -0
  307. data/lib/cld_provisioning/utils/request_bodies.rb +80 -0
  308. data/lib/cld_provisioning/utils/retries.rb +98 -0
  309. data/lib/cld_provisioning/utils/security.rb +159 -0
  310. data/lib/cld_provisioning/utils/url.rb +125 -0
  311. data/lib/cld_provisioning/utils/utils.rb +242 -0
  312. data/lib/cloudinary_account_provisioning.rb +38 -0
  313. data/lib/crystalline/enum.rbi +17 -0
  314. data/lib/crystalline/metadata_fields.rb +266 -0
  315. data/lib/crystalline/module.rb +189 -0
  316. data/lib/crystalline/types.rb +171 -0
  317. data/lib/crystalline/utils.rb +70 -0
  318. data/lib/crystalline.rb +14 -0
  319. metadata +570 -0
@@ -0,0 +1,233 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: cc629b4259c1
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require "cgi"
8
+ require "date"
9
+ require "base64"
10
+ require "sorbet-runtime"
11
+
12
+ module CldProvisioning
13
+ module Utils
14
+ extend T::Sig
15
+
16
+ sig do
17
+ params(
18
+ field_name: String,
19
+ explode: T::Boolean,
20
+ obj: Object,
21
+ delimiter: String,
22
+ get_field_name_lambda: T.proc.params(obj_field: ::Crystalline::MetadataFields::Field).returns(String)
23
+ )
24
+ .returns(T::Hash[String, T::Array[String]])
25
+ end
26
+ def self._populate_form(field_name, explode, obj, delimiter, &get_field_name_lambda)
27
+ params = {}
28
+
29
+ return params if obj.nil?
30
+
31
+ if obj.respond_to?(:fields)
32
+ items = []
33
+ T.unsafe(obj).fields.each do |obj_field|
34
+ obj_field_name = get_field_name_lambda.call(obj_field)
35
+ next if obj_field_name == ""
36
+
37
+ val = obj.send(obj_field.name.to_sym)
38
+ next if val.nil?
39
+
40
+ if explode
41
+ params[obj_field_name] = [val_to_string(val)]
42
+ else
43
+ items.append("#{obj_field_name}#{delimiter}#{val_to_string(val)}")
44
+ end
45
+ end
46
+
47
+ params[field_name] = [items.join(delimiter)] if !items.empty?
48
+ elsif obj.is_a?(Hash)
49
+ items = []
50
+ obj.each do |key, value|
51
+ next if value.nil?
52
+
53
+ if explode
54
+ params[key] = val_to_string(value)
55
+ else
56
+ items.append("#{key}#{delimiter}#{val_to_string(value)}")
57
+ end
58
+ end
59
+
60
+ params[field_name] = [items.join(delimiter)] if !items.empty?
61
+
62
+ elsif obj.is_a?(Array)
63
+ items = []
64
+ obj.each do |value|
65
+ next if value.nil?
66
+
67
+ if explode
68
+ params[field_name] = [] if !params.key?(field_name)
69
+
70
+ params[field_name].append(val_to_string(value))
71
+ else
72
+ items.append(val_to_string(value))
73
+ end
74
+ end
75
+
76
+ params[field_name] = items.map(&:to_s).join(delimiter) if !items.empty?
77
+
78
+ else
79
+ params[field_name] = val_to_string(obj)
80
+ end
81
+
82
+ params
83
+ end
84
+
85
+ sig {
86
+ params(media_type: String, request: Object).returns(
87
+ [String, Object, T::Array[T::Array[T.any(T::Array[T.nilable(String)], String)]]]
88
+ )
89
+ }
90
+ def self.serialize_multipart_form(media_type, request)
91
+ form = []
92
+ T.unsafe(request).fields.each do |field|
93
+ val = request.send(field.name)
94
+ next if val.nil?
95
+
96
+ field_metadata = field.metadata[:multipart_form]
97
+ next if field_metadata.nil?
98
+
99
+ if field_metadata[:file] == true
100
+ field_name = field_metadata[:field_name]
101
+
102
+ # Handle arrays of files
103
+ if val.is_a?(Array)
104
+ val.each do |file_obj|
105
+ file_name = T.let("", String)
106
+ content = nil
107
+
108
+ T.must(file_obj).fields.each do |file_field|
109
+ file_metadata = file_field.metadata[:multipart_form]
110
+ next if file_metadata.nil?
111
+
112
+ if file_metadata[:content] == true
113
+ content = T.let(file_obj.send(file_field.name), String)
114
+ else
115
+ file_name = T.let(file_obj.send(file_field.name), String)
116
+ end
117
+ end
118
+
119
+ if T.unsafe(file_name) == "" || T.unsafe(content).nil?
120
+ raise StandardError, "invalid multipart/form-data file"
121
+ end
122
+
123
+ form.append([field_name, [file_name, content]])
124
+ end
125
+ else
126
+ # Handle single file
127
+ file_name = T.let("", String)
128
+ content = nil
129
+
130
+ T.must(val).fields.each do |file_field|
131
+ file_metadata = file_field.metadata[:multipart_form]
132
+ next if file_metadata.nil?
133
+
134
+ if file_metadata[:content] == true
135
+ content = T.let(val.send(file_field.name), String)
136
+ else
137
+ file_name = T.let(val.send(file_field.name), String)
138
+ end
139
+ end
140
+
141
+ if T.unsafe(file_name) == "" || T.unsafe(content).nil?
142
+ raise StandardError, "invalid multipart/form-data file"
143
+ end
144
+
145
+ form.append([field_name, [file_name, content]])
146
+ end
147
+ elsif field_metadata[:json] == true
148
+ to_append = [
149
+ field_metadata.fetch(:field_name, field.name),
150
+ [
151
+ nil,
152
+ ::Crystalline.to_json(val),
153
+ "application/json"
154
+ ]
155
+ ]
156
+ form.append(to_append)
157
+ else
158
+ field_name = field_metadata.fetch(
159
+ :field_name,
160
+ field.name
161
+ )
162
+ if val.is_a?(Array)
163
+ val.each do |value|
164
+ next if value.nil?
165
+
166
+ form.append(
167
+ [field_name, [nil, val_to_string(value)]]
168
+ )
169
+ end
170
+ else
171
+ form.append([field_name, [nil, val_to_string(val)]])
172
+ end
173
+ end
174
+ end
175
+
176
+ [media_type, nil, form]
177
+ end
178
+
179
+ sig do
180
+ params(data: T.any(Object, T::Hash[String, String]))
181
+ .returns(T::Hash[T.any(String, Symbol), Object])
182
+ end
183
+ def self.serialize_form_data(data)
184
+ get_form_field_name = lambda do |obj_field|
185
+ obj_param_metadata = obj_field.metadata[:form]
186
+
187
+ return T.let({}, T::Hash[T.any(String, Symbol), Object]) if obj_param_metadata.nil?
188
+
189
+ return obj_param_metadata.fetch(:field_name, obj_field.name)
190
+ end
191
+
192
+ form = T.let({}, T::Hash[T.any(String, Symbol), Object])
193
+ if data.respond_to?(:fields)
194
+ T.unsafe(data).fields.each do |field|
195
+ val = data.send(field.name)
196
+ next if val.nil?
197
+
198
+ metadata = field.metadata[:form]
199
+
200
+ next if metadata.nil?
201
+
202
+ field_name = metadata.fetch(:field_name, field.name)
203
+
204
+ if metadata[:json]
205
+ form[field_name] = ::Crystalline.to_json(val)
206
+ else
207
+ if metadata.fetch(:style, "form") == "form"
208
+ form = form.merge(
209
+ _populate_form(
210
+ field_name,
211
+ metadata.fetch(:explode, true),
212
+ val,
213
+ ",",
214
+ &get_form_field_name
215
+ )
216
+ )
217
+ else
218
+ raise StandardError, "Invalid form style for field #{field.name}"
219
+ end
220
+ end
221
+ end
222
+ elsif data.is_a?(Hash)
223
+ data.each do |key, value|
224
+ form[key] = [val_to_string(value)]
225
+ end
226
+ else
227
+ raise StandardError, "Invalid request body type #{data.class}"
228
+ end
229
+
230
+ form
231
+ end
232
+ end
233
+ end
@@ -0,0 +1,83 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: 772011fa85ca
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require "cgi"
8
+ require "date"
9
+ require "base64"
10
+ require "sorbet-runtime"
11
+
12
+ module CldProvisioning
13
+ module Utils
14
+ extend T::Sig
15
+
16
+ sig {
17
+ params(headers_params: Object, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(
18
+ T::Hash[Symbol, String]
19
+ )
20
+ }
21
+ def self.get_headers(headers_params, gbls = nil)
22
+ return {} if headers_params.nil?
23
+
24
+ headers = {}
25
+ T.unsafe(headers_params).fields.each do |f|
26
+ metadata = f.metadata[:header]
27
+ next if metadata.nil?
28
+
29
+ value = _populate_from_globals(f.name, headers_params&.send(f.name), "header", gbls)
30
+ value = _serialize_header(metadata.fetch(:explode, false), value)
31
+ headers[metadata.fetch(:field_name, f.name)] = value if !T.must(value).empty?
32
+ end
33
+
34
+ headers
35
+ end
36
+
37
+ sig { params(explode: T::Boolean, obj: Object).returns(T.nilable(String)) }
38
+ def self._serialize_header(explode, obj)
39
+ return "" if obj.nil?
40
+
41
+ if obj.respond_to?(:fields)
42
+ items = []
43
+ T.unsafe(obj).fields.each do |obj_field|
44
+ obj_param_metadata = obj_field.metadata[:header]
45
+ next if obj_param_metadata.nil?
46
+
47
+ obj_field_name = obj_param_metadata.fetch(:field_name, obj_field.name)
48
+ next if obj_field_name == ""
49
+
50
+ val = obj.send(obj_field.name)
51
+ next if val.nil?
52
+
53
+ if explode
54
+ items.append("#{obj_field_name}=#{val_to_string(val)}")
55
+ else
56
+ items.append(obj_field_name)
57
+ items.append(val_to_string(val))
58
+ end
59
+ end
60
+
61
+ items.join(",") if !items.empty?
62
+ elsif obj.is_a?(Hash)
63
+ items = []
64
+ obj.each do |key, value|
65
+ next if value.nil?
66
+
67
+ if explode
68
+ items.append("#{key}=#{val_to_string(value)}")
69
+ else
70
+ items.append(key)
71
+ items.append(val_to_string(value))
72
+ end
73
+ end
74
+
75
+ items.join(",") if !items.empty?
76
+ elsif obj.is_a?(Array)
77
+ items = obj.filter { |v| !v.nil? }.map { |v| val_to_string(v) }.join(",")
78
+ else
79
+ val_to_string(obj)
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,168 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: 60c18549d887
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require "date"
8
+ require "base64"
9
+ require "sorbet-runtime"
10
+
11
+ module CldProvisioning
12
+ module Utils
13
+ extend T::Sig
14
+
15
+ sig {
16
+ params(
17
+ clazz: Object,
18
+ query_params: Object,
19
+ url_override: T.nilable(::String),
20
+ gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])
21
+ )
22
+ .returns(T::Hash[T.any(String, Symbol), T::Array[String]])
23
+ }
24
+ def self.get_query_params(clazz, query_params, url_override = nil, gbls = nil)
25
+ parsed_params = T.let({}, T::Hash[T.any(String, Symbol), T::Array[String]])
26
+ if !url_override.nil?
27
+ parsed_url = URI.parse(url_override)
28
+ URI.decode_www_form(parsed_url.query.to_s).each do |key, value|
29
+ parsed_params[key] ||= []
30
+ T.must(parsed_params[key]) << value
31
+ end
32
+ end
33
+
34
+ params = T.let({}, T::Hash[T.any(String, Symbol), T::Array[String]])
35
+ T.unsafe(clazz).fields.each do |f|
36
+ request_metadata = f.metadata[:request]
37
+ next if !request_metadata.nil?
38
+
39
+ metadata = f.metadata[:query_param]
40
+ next if metadata.nil?
41
+
42
+ param_name = f.name
43
+ value = query_params&.send(param_name.to_sym)
44
+ value = _populate_from_globals(param_name, value, "queryParam", gbls)
45
+
46
+ f_name = metadata[:field_name]
47
+ serialization = metadata.fetch(:serialization, "")
48
+ if serialization != ""
49
+ params = params.merge(
50
+ _get_serialized_params(
51
+ metadata,
52
+ f_name,
53
+ value
54
+ )
55
+ )
56
+ else
57
+ style = metadata.fetch(:style, "form")
58
+ case style
59
+ when "deepObject"
60
+ params = params.merge(
61
+ _get_deep_object_query_params(
62
+ metadata,
63
+ f_name,
64
+ value
65
+ )
66
+ )
67
+ when "form"
68
+ params = params.merge(
69
+ _get_delimited_query_params(
70
+ metadata,
71
+ f_name,
72
+ value,
73
+ ","
74
+ )
75
+ )
76
+ when "pipeDelimited"
77
+ params = params.merge(
78
+ _get_delimited_query_params(
79
+ metadata,
80
+ f_name,
81
+ value,
82
+ "|"
83
+ )
84
+ )
85
+ else
86
+ raise StandardError, "not yet implemented"
87
+ end
88
+ end
89
+ end
90
+
91
+ params.merge(parsed_params)
92
+ end
93
+
94
+ sig do
95
+ params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
96
+ .returns(T::Hash[T.any(String, Symbol), T::Array[String]])
97
+ end
98
+ def self._get_deep_object_query_params(metadata, field_name, obj)
99
+ params = T.let({}, T::Hash[T.any(String, Symbol), T::Array[String]])
100
+
101
+ return params if obj.nil?
102
+
103
+ if obj.respond_to?(:fields)
104
+ T.unsafe(obj).fields.each do |obj_field|
105
+ obj_param_metadata = obj_field.metadata[:query_param]
106
+ next if obj_param_metadata.nil?
107
+
108
+ val = obj.send(obj_field.name)
109
+ next if val.nil?
110
+
111
+ key = "#{metadata.fetch(:field_name, field_name)}[#{obj_param_metadata.fetch(:field_name, obj_field.name)}]"
112
+ if val.is_a?(Array)
113
+ val.each do |v|
114
+ next if v.nil?
115
+
116
+ params[key] = [] if !params.include?(key)
117
+
118
+ T.must(params[key]) << val_to_string(v)
119
+ end
120
+ else
121
+ params[key] = [val_to_string(val)]
122
+ end
123
+ end
124
+ elsif obj.is_a?(Hash)
125
+ obj.each do |key, value|
126
+ next if value.nil?
127
+
128
+ param_key = "#{metadata.fetch(:field_name, field_name)}[#{key}]"
129
+ if value.is_a?(Array)
130
+ value.each do |val|
131
+ next if val.nil?
132
+
133
+ params[param_key] = [] if !params.include?(param_key)
134
+
135
+ T.must(params[param_key]).append(val_to_string(val))
136
+ end
137
+ else
138
+ params[param_key] = [val_to_string(value)]
139
+ end
140
+ end
141
+ end
142
+
143
+ params
144
+ end
145
+
146
+ sig do
147
+ params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object, delimiter: String)
148
+ .returns(T::Hash[T.any(String, Symbol), T::Array[String]])
149
+ end
150
+ def self._get_delimited_query_params(metadata, field_name, obj, delimiter)
151
+ get_query_param_field_name = lambda do |obj_field|
152
+ obj_param_metadata = obj_field.metadata[:query_param]
153
+
154
+ return {} if obj_param_metadata.nil?
155
+
156
+ return obj_param_metadata.fetch(:field_name, obj_field.name)
157
+ end
158
+
159
+ _populate_form(
160
+ field_name,
161
+ T.cast(metadata.fetch(:explode, true), T::Boolean),
162
+ obj,
163
+ delimiter,
164
+ &get_query_param_field_name
165
+ )
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,80 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: dce6aec700f8
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require "cgi"
8
+ require "date"
9
+ require "base64"
10
+ require "sorbet-runtime"
11
+
12
+ module CldProvisioning
13
+ module Utils
14
+ extend T::Sig
15
+
16
+ SERIALIZATION_METHOD_TO_CONTENT_TYPE = {
17
+ 'json': "application/json",
18
+ 'form': "application/x-www-form-urlencoded",
19
+ 'multipart': "multipart/form-data",
20
+ 'raw': "application/octet-stream",
21
+ 'string': "text/plain"
22
+ }.freeze
23
+
24
+ sig do
25
+ params(
26
+ request: Object,
27
+ nullable: T::Boolean,
28
+ optional: T::Boolean,
29
+ request_field_name: Symbol,
30
+ serialization_method: Symbol
31
+ )
32
+ .returns([String, Object, T.nilable(T::Array[T::Array[T.any(T::Array[T.nilable(String)], String)]])])
33
+ end
34
+ def self.serialize_request_body(request, nullable, optional, request_field_name, serialization_method)
35
+ return ["", nil, nil] if request.nil? && !nullable && optional
36
+
37
+ if !request.respond_to?(:fields) || !request.respond_to?(request_field_name)
38
+ return serialize_content_type(SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method], request)
39
+ end
40
+
41
+ request_metadata = T.let(nil, T.nilable(T::Array[T::Array[T.any(T::Array[T.nilable(String)], String)]]))
42
+ T.unsafe(request).fields.each do |f|
43
+ if f.name == request_field_name
44
+ request_metadata = f.metadata[:request]
45
+ break
46
+ end
47
+ end
48
+
49
+ if request_metadata.nil?
50
+ # Field name collision: model has a field matching request_field_name but without :request metadata.
51
+ # Serialize the entire object as the request body.
52
+ return serialize_content_type(SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method], request)
53
+ end
54
+
55
+ request_val = request.send(request_field_name)
56
+ return ["", nil, nil] if request_val.nil?
57
+
58
+ serialize_content_type(
59
+ request_metadata.fetch(:media_type, "application/octet-stream"),
60
+ request_val
61
+ )
62
+ end
63
+
64
+ sig do
65
+ params(media_type: String, request: Object)
66
+ .returns([String, Object, T.nilable(T::Array[T::Array[T.any(T::Array[T.nilable(String)], String)]])])
67
+ end
68
+ def self.serialize_content_type(media_type, request)
69
+ if media_type.match("^(application|text)\\/([^+]+\\+)*json.*")
70
+ return media_type, ::Crystalline.to_json(request), nil
71
+ end
72
+
73
+ return serialize_multipart_form(media_type, request) if media_type.match("^multipart\\/.*")
74
+ return media_type, serialize_form_data(request), nil if media_type.match("^application\\/x-www-form-urlencoded.*")
75
+ return media_type, request, nil if request.is_a?(String) || request.is_a?(Array)
76
+
77
+ raise StandardError, "invalid request body type #{request.class} for mediaType #{media_type}"
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,98 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+ # @generated-id: 074043c77dbf
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require "faraday/retry"
8
+ require "sorbet-runtime"
9
+
10
+ module CldProvisioning
11
+ module Utils
12
+ class BackoffStrategy
13
+ extend T::Sig
14
+
15
+ sig { returns(T.nilable(::Float)) }
16
+ attr_accessor :exponent
17
+
18
+ sig { returns(T.nilable(::Integer)) }
19
+ attr_accessor :initial_interval
20
+
21
+ sig { returns(T.nilable(::Integer)) }
22
+ attr_accessor :max_elapsed_time
23
+
24
+ sig { returns(T.nilable(::Integer)) }
25
+ attr_accessor :max_interval
26
+
27
+ sig do
28
+ params(
29
+ exponent: T.nilable(::Float),
30
+ initial_interval: T.nilable(::Integer),
31
+ max_elapsed_time: T.nilable(::Integer),
32
+ max_interval: T.nilable(::Integer)
33
+ )
34
+ .void
35
+ end
36
+ def initialize(exponent: nil, initial_interval: nil, max_elapsed_time: nil, max_interval: nil)
37
+ @exponent = T.let(exponent, T.nilable(::Float))
38
+ @initial_interval = T.let(initial_interval, T.nilable(::Integer))
39
+ @max_elapsed_time = T.let(max_elapsed_time, T.nilable(::Integer))
40
+ @max_interval = T.let(max_interval, T.nilable(::Integer))
41
+ end
42
+ end
43
+
44
+ class RetryConfig
45
+ extend T::Sig
46
+
47
+ sig { returns(T.nilable(BackoffStrategy)) }
48
+ attr_accessor :backoff
49
+
50
+ sig { returns(T.nilable(T::Boolean)) }
51
+ attr_accessor :retry_connection_errors
52
+
53
+ sig { returns(T.nilable(::String)) }
54
+ attr_accessor :strategy
55
+
56
+ sig do
57
+ params(
58
+ backoff: T.nilable(BackoffStrategy),
59
+ retry_connection_errors: T.nilable(T::Boolean),
60
+ strategy: T.nilable(::String)
61
+ )
62
+ .void
63
+ end
64
+ def initialize(backoff: nil, retry_connection_errors: nil, strategy: nil)
65
+ @backoff = T.let(backoff, T.nilable(BackoffStrategy))
66
+ @retry_connection_errors = T.let(retry_connection_errors, T.nilable(T::Boolean))
67
+ @strategy = T.let(strategy, T.nilable(::String))
68
+ end
69
+
70
+ sig { params(initial_time: ::Time).returns(::Hash) }
71
+ def to_faraday_retry_options(initial_time:)
72
+ retry_options = {
73
+ # must overwrite default max of 2 retries and it must be positive
74
+ max: 1_000_000_000,
75
+ # ensure all HTTP methods are retried, especially via retry_if
76
+ methods: []
77
+ }
78
+
79
+ if @retry_connection_errors
80
+ retry_options[:exceptions] = Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Faraday::ConnectionFailed]
81
+ end
82
+
83
+ if @strategy == "backoff" && @backoff
84
+ retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
85
+ retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
86
+ retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
87
+
88
+ unless @backoff.max_elapsed_time.nil?
89
+ stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
90
+ retry_options[:retry_if] = -> (_env, _exc) { Time.now < stop_time }
91
+ end
92
+ end
93
+
94
+ retry_options
95
+ end
96
+ end
97
+ end
98
+ end