imagekitio 3.0.0 → 4.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 (483) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +116 -0
  4. data/README.md +538 -679
  5. data/SECURITY.md +27 -0
  6. data/lib/imagekitio/client.rb +122 -195
  7. data/lib/imagekitio/errors.rb +226 -2
  8. data/lib/imagekitio/file_part.rb +58 -0
  9. data/lib/imagekitio/helpers/crypto_utils.rb +25 -0
  10. data/lib/imagekitio/helpers/helper.rb +689 -0
  11. data/lib/imagekitio/helpers/transformation_utils.rb +164 -0
  12. data/lib/imagekitio/helpers/uuid_utils.rb +18 -0
  13. data/lib/imagekitio/internal/transport/base_client.rb +567 -0
  14. data/lib/imagekitio/internal/transport/pooled_net_requester.rb +217 -0
  15. data/lib/imagekitio/internal/type/array_of.rb +168 -0
  16. data/lib/imagekitio/internal/type/base_model.rb +530 -0
  17. data/lib/imagekitio/internal/type/base_page.rb +55 -0
  18. data/lib/imagekitio/internal/type/boolean.rb +77 -0
  19. data/lib/imagekitio/internal/type/converter.rb +327 -0
  20. data/lib/imagekitio/internal/type/enum.rb +156 -0
  21. data/lib/imagekitio/internal/type/file_input.rb +111 -0
  22. data/lib/imagekitio/internal/type/hash_of.rb +188 -0
  23. data/lib/imagekitio/internal/type/request_parameters.rb +42 -0
  24. data/lib/imagekitio/internal/type/union.rb +250 -0
  25. data/lib/imagekitio/internal/type/unknown.rb +81 -0
  26. data/lib/imagekitio/internal/util.rb +915 -0
  27. data/lib/imagekitio/internal.rb +20 -0
  28. data/lib/imagekitio/models/accounts/origin_create_params.rb +24 -0
  29. data/lib/imagekitio/models/accounts/origin_delete_params.rb +16 -0
  30. data/lib/imagekitio/models/accounts/origin_get_params.rb +16 -0
  31. data/lib/imagekitio/models/accounts/origin_list_params.rb +16 -0
  32. data/lib/imagekitio/models/accounts/origin_list_response.rb +11 -0
  33. data/lib/imagekitio/models/accounts/origin_request.rb +547 -0
  34. data/lib/imagekitio/models/accounts/origin_response.rb +568 -0
  35. data/lib/imagekitio/models/accounts/origin_update_params.rb +24 -0
  36. data/lib/imagekitio/models/accounts/url_endpoint_create_params.rb +16 -0
  37. data/lib/imagekitio/models/accounts/url_endpoint_delete_params.rb +16 -0
  38. data/lib/imagekitio/models/accounts/url_endpoint_get_params.rb +16 -0
  39. data/lib/imagekitio/models/accounts/url_endpoint_list_params.rb +16 -0
  40. data/lib/imagekitio/models/accounts/url_endpoint_list_response.rb +11 -0
  41. data/lib/imagekitio/models/accounts/url_endpoint_request.rb +110 -0
  42. data/lib/imagekitio/models/accounts/url_endpoint_response.rb +123 -0
  43. data/lib/imagekitio/models/accounts/url_endpoint_update_params.rb +16 -0
  44. data/lib/imagekitio/models/accounts/usage_get_params.rb +37 -0
  45. data/lib/imagekitio/models/accounts/usage_get_response.rb +51 -0
  46. data/lib/imagekitio/models/asset_list_params.rb +158 -0
  47. data/lib/imagekitio/models/asset_list_response.rb +24 -0
  48. data/lib/imagekitio/models/base_overlay.rb +21 -0
  49. data/lib/imagekitio/models/base_webhook_event.rb +24 -0
  50. data/lib/imagekitio/models/beta/v2/file_upload_params.rb +510 -0
  51. data/lib/imagekitio/models/beta/v2/file_upload_response.rb +618 -0
  52. data/lib/imagekitio/models/cache/invalidation_create_params.rb +27 -0
  53. data/lib/imagekitio/models/cache/invalidation_create_response.rb +23 -0
  54. data/lib/imagekitio/models/cache/invalidation_get_params.rb +16 -0
  55. data/lib/imagekitio/models/cache/invalidation_get_response.rb +35 -0
  56. data/lib/imagekitio/models/custom_metadata_field.rb +243 -0
  57. data/lib/imagekitio/models/custom_metadata_field_create_params.rb +238 -0
  58. data/lib/imagekitio/models/custom_metadata_field_delete_params.rb +14 -0
  59. data/lib/imagekitio/models/custom_metadata_field_delete_response.rb +10 -0
  60. data/lib/imagekitio/models/custom_metadata_field_list_params.rb +36 -0
  61. data/lib/imagekitio/models/custom_metadata_field_list_response.rb +9 -0
  62. data/lib/imagekitio/models/custom_metadata_field_update_params.rb +212 -0
  63. data/lib/imagekitio/models/extensions.rb +136 -0
  64. data/lib/imagekitio/models/file.rb +497 -0
  65. data/lib/imagekitio/models/file_copy_params.rb +43 -0
  66. data/lib/imagekitio/models/file_copy_response.rb +10 -0
  67. data/lib/imagekitio/models/file_delete_params.rb +14 -0
  68. data/lib/imagekitio/models/file_get_params.rb +14 -0
  69. data/lib/imagekitio/models/file_move_params.rb +33 -0
  70. data/lib/imagekitio/models/file_move_response.rb +10 -0
  71. data/lib/imagekitio/models/file_rename_params.rb +61 -0
  72. data/lib/imagekitio/models/file_rename_response.rb +21 -0
  73. data/lib/imagekitio/models/file_update_params.rb +22 -0
  74. data/lib/imagekitio/models/file_update_response.rb +104 -0
  75. data/lib/imagekitio/models/file_upload_params.rb +540 -0
  76. data/lib/imagekitio/models/file_upload_response.rb +611 -0
  77. data/lib/imagekitio/models/files/bulk_add_tags_params.rb +35 -0
  78. data/lib/imagekitio/models/files/bulk_add_tags_response.rb +24 -0
  79. data/lib/imagekitio/models/files/bulk_delete_params.rb +27 -0
  80. data/lib/imagekitio/models/files/bulk_delete_response.rb +24 -0
  81. data/lib/imagekitio/models/files/bulk_remove_ai_tags_params.rb +35 -0
  82. data/lib/imagekitio/models/files/bulk_remove_ai_tags_response.rb +24 -0
  83. data/lib/imagekitio/models/files/bulk_remove_tags_params.rb +35 -0
  84. data/lib/imagekitio/models/files/bulk_remove_tags_response.rb +24 -0
  85. data/lib/imagekitio/models/files/metadata_get_from_url_params.rb +28 -0
  86. data/lib/imagekitio/models/files/metadata_get_params.rb +16 -0
  87. data/lib/imagekitio/models/files/version_delete_params.rb +22 -0
  88. data/lib/imagekitio/models/files/version_delete_response.rb +12 -0
  89. data/lib/imagekitio/models/files/version_get_params.rb +22 -0
  90. data/lib/imagekitio/models/files/version_list_params.rb +16 -0
  91. data/lib/imagekitio/models/files/version_list_response.rb +10 -0
  92. data/lib/imagekitio/models/files/version_restore_params.rb +22 -0
  93. data/lib/imagekitio/models/folder.rb +76 -0
  94. data/lib/imagekitio/models/folder_copy_params.rb +44 -0
  95. data/lib/imagekitio/models/folder_copy_response.rb +23 -0
  96. data/lib/imagekitio/models/folder_create_params.rb +43 -0
  97. data/lib/imagekitio/models/folder_create_response.rb +10 -0
  98. data/lib/imagekitio/models/folder_delete_params.rb +25 -0
  99. data/lib/imagekitio/models/folder_delete_response.rb +10 -0
  100. data/lib/imagekitio/models/folder_move_params.rb +34 -0
  101. data/lib/imagekitio/models/folder_move_response.rb +23 -0
  102. data/lib/imagekitio/models/folder_rename_params.rb +59 -0
  103. data/lib/imagekitio/models/folder_rename_response.rb +23 -0
  104. data/lib/imagekitio/models/folders/job_get_params.rb +16 -0
  105. data/lib/imagekitio/models/folders/job_get_response.rb +74 -0
  106. data/lib/imagekitio/models/get_image_attributes_options.rb +68 -0
  107. data/lib/imagekitio/models/image_overlay.rb +66 -0
  108. data/lib/imagekitio/models/metadata.rb +483 -0
  109. data/lib/imagekitio/models/overlay.rb +28 -0
  110. data/lib/imagekitio/models/overlay_position.rb +101 -0
  111. data/lib/imagekitio/models/overlay_timing.rb +97 -0
  112. data/lib/imagekitio/models/responsive_image_attributes.rb +48 -0
  113. data/lib/imagekitio/models/solid_color_overlay.rb +42 -0
  114. data/lib/imagekitio/models/solid_color_overlay_transformation.rb +135 -0
  115. data/lib/imagekitio/models/src_options.rb +96 -0
  116. data/lib/imagekitio/models/streaming_resolution.rb +22 -0
  117. data/lib/imagekitio/models/subtitle_overlay.rb +64 -0
  118. data/lib/imagekitio/models/subtitle_overlay_transformation.rb +113 -0
  119. data/lib/imagekitio/models/text_overlay.rb +65 -0
  120. data/lib/imagekitio/models/text_overlay_transformation.rb +267 -0
  121. data/lib/imagekitio/models/transformation.rb +1100 -0
  122. data/lib/imagekitio/models/transformation_position.rb +19 -0
  123. data/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +36 -0
  124. data/lib/imagekitio/models/unwrap_webhook_event.rb +36 -0
  125. data/lib/imagekitio/models/update_file_request.rb +164 -0
  126. data/lib/imagekitio/models/upload_post_transform_error_event.rb +180 -0
  127. data/lib/imagekitio/models/upload_post_transform_success_event.rb +143 -0
  128. data/lib/imagekitio/models/upload_pre_transform_error_event.rb +108 -0
  129. data/lib/imagekitio/models/upload_pre_transform_success_event.rb +690 -0
  130. data/lib/imagekitio/models/video_overlay.rb +64 -0
  131. data/lib/imagekitio/models/video_transformation_accepted_event.rb +279 -0
  132. data/lib/imagekitio/models/video_transformation_error_event.rb +326 -0
  133. data/lib/imagekitio/models/video_transformation_ready_event.rb +379 -0
  134. data/lib/imagekitio/models/webhook_unsafe_unwrap_params.rb +14 -0
  135. data/lib/imagekitio/models/webhook_unwrap_params.rb +14 -0
  136. data/lib/imagekitio/models.rb +160 -0
  137. data/lib/imagekitio/request_options.rb +77 -0
  138. data/lib/imagekitio/resources/accounts/origins.rb +145 -0
  139. data/lib/imagekitio/resources/accounts/url_endpoints.rb +151 -0
  140. data/lib/imagekitio/resources/accounts/usage.rb +46 -0
  141. data/lib/imagekitio/resources/accounts.rb +26 -0
  142. data/lib/imagekitio/resources/assets.rb +54 -0
  143. data/lib/imagekitio/resources/beta/v2/files.rb +110 -0
  144. data/lib/imagekitio/resources/beta/v2.rb +20 -0
  145. data/lib/imagekitio/resources/beta.rb +18 -0
  146. data/lib/imagekitio/resources/cache/invalidation.rb +66 -0
  147. data/lib/imagekitio/resources/cache.rb +18 -0
  148. data/lib/imagekitio/resources/custom_metadata_fields.rb +133 -0
  149. data/lib/imagekitio/resources/files/bulk.rb +131 -0
  150. data/lib/imagekitio/resources/files/metadata.rb +69 -0
  151. data/lib/imagekitio/resources/files/versions.rb +132 -0
  152. data/lib/imagekitio/resources/files.rb +305 -0
  153. data/lib/imagekitio/resources/folders/job.rb +39 -0
  154. data/lib/imagekitio/resources/folders.rb +166 -0
  155. data/lib/imagekitio/resources/webhooks.rb +30 -0
  156. data/lib/imagekitio/version.rb +5 -0
  157. data/lib/imagekitio.rb +181 -13
  158. data/manifest.yaml +15 -0
  159. data/rbi/imagekitio/client.rbi +92 -0
  160. data/rbi/imagekitio/errors.rbi +205 -0
  161. data/rbi/imagekitio/file_part.rbi +37 -0
  162. data/rbi/imagekitio/helpers/helper.rbi +41 -0
  163. data/rbi/imagekitio/internal/transport/base_client.rbi +295 -0
  164. data/rbi/imagekitio/internal/transport/pooled_net_requester.rbi +80 -0
  165. data/rbi/imagekitio/internal/type/array_of.rbi +104 -0
  166. data/rbi/imagekitio/internal/type/base_model.rbi +304 -0
  167. data/rbi/imagekitio/internal/type/base_page.rbi +42 -0
  168. data/rbi/imagekitio/internal/type/boolean.rbi +58 -0
  169. data/rbi/imagekitio/internal/type/converter.rbi +216 -0
  170. data/rbi/imagekitio/internal/type/enum.rbi +82 -0
  171. data/rbi/imagekitio/internal/type/file_input.rbi +59 -0
  172. data/rbi/imagekitio/internal/type/hash_of.rbi +104 -0
  173. data/rbi/imagekitio/internal/type/request_parameters.rbi +29 -0
  174. data/rbi/imagekitio/internal/type/union.rbi +128 -0
  175. data/rbi/imagekitio/internal/type/unknown.rbi +58 -0
  176. data/rbi/imagekitio/internal/util.rbi +487 -0
  177. data/rbi/imagekitio/internal.rbi +18 -0
  178. data/rbi/imagekitio/models/accounts/origin_create_params.rbi +81 -0
  179. data/rbi/imagekitio/models/accounts/origin_delete_params.rbi +34 -0
  180. data/rbi/imagekitio/models/accounts/origin_get_params.rbi +34 -0
  181. data/rbi/imagekitio/models/accounts/origin_list_params.rbi +34 -0
  182. data/rbi/imagekitio/models/accounts/origin_list_response.rbi +15 -0
  183. data/rbi/imagekitio/models/accounts/origin_request.rbi +775 -0
  184. data/rbi/imagekitio/models/accounts/origin_response.rbi +718 -0
  185. data/rbi/imagekitio/models/accounts/origin_update_params.rbi +81 -0
  186. data/rbi/imagekitio/models/accounts/url_endpoint_create_params.rbi +34 -0
  187. data/rbi/imagekitio/models/accounts/url_endpoint_delete_params.rbi +34 -0
  188. data/rbi/imagekitio/models/accounts/url_endpoint_get_params.rbi +34 -0
  189. data/rbi/imagekitio/models/accounts/url_endpoint_list_params.rbi +34 -0
  190. data/rbi/imagekitio/models/accounts/url_endpoint_list_response.rbi +15 -0
  191. data/rbi/imagekitio/models/accounts/url_endpoint_request.rbi +218 -0
  192. data/rbi/imagekitio/models/accounts/url_endpoint_response.rbi +213 -0
  193. data/rbi/imagekitio/models/accounts/url_endpoint_update_params.rbi +34 -0
  194. data/rbi/imagekitio/models/accounts/usage_get_params.rbi +60 -0
  195. data/rbi/imagekitio/models/accounts/usage_get_response.rbi +89 -0
  196. data/rbi/imagekitio/models/asset_list_params.rbi +281 -0
  197. data/rbi/imagekitio/models/asset_list_response.rbi +28 -0
  198. data/rbi/imagekitio/models/base_overlay.rbi +44 -0
  199. data/rbi/imagekitio/models/base_webhook_event.rbi +33 -0
  200. data/rbi/imagekitio/models/beta/v2/file_upload_params.rbi +861 -0
  201. data/rbi/imagekitio/models/beta/v2/file_upload_response.rbi +1197 -0
  202. data/rbi/imagekitio/models/cache/invalidation_create_params.rbi +45 -0
  203. data/rbi/imagekitio/models/cache/invalidation_create_response.rbi +37 -0
  204. data/rbi/imagekitio/models/cache/invalidation_get_params.rbi +34 -0
  205. data/rbi/imagekitio/models/cache/invalidation_get_response.rbi +93 -0
  206. data/rbi/imagekitio/models/custom_metadata_field.rbi +422 -0
  207. data/rbi/imagekitio/models/custom_metadata_field_create_params.rbi +443 -0
  208. data/rbi/imagekitio/models/custom_metadata_field_delete_params.rbi +30 -0
  209. data/rbi/imagekitio/models/custom_metadata_field_delete_response.rbi +23 -0
  210. data/rbi/imagekitio/models/custom_metadata_field_list_params.rbi +66 -0
  211. data/rbi/imagekitio/models/custom_metadata_field_list_response.rbi +11 -0
  212. data/rbi/imagekitio/models/custom_metadata_field_update_params.rbi +376 -0
  213. data/rbi/imagekitio/models/extensions.rbi +274 -0
  214. data/rbi/imagekitio/models/file.rbi +789 -0
  215. data/rbi/imagekitio/models/file_copy_params.rbi +66 -0
  216. data/rbi/imagekitio/models/file_copy_response.rbi +23 -0
  217. data/rbi/imagekitio/models/file_delete_params.rbi +27 -0
  218. data/rbi/imagekitio/models/file_get_params.rbi +27 -0
  219. data/rbi/imagekitio/models/file_move_params.rbi +51 -0
  220. data/rbi/imagekitio/models/file_move_response.rbi +23 -0
  221. data/rbi/imagekitio/models/file_rename_params.rbi +102 -0
  222. data/rbi/imagekitio/models/file_rename_response.rbi +35 -0
  223. data/rbi/imagekitio/models/file_update_params.rbi +58 -0
  224. data/rbi/imagekitio/models/file_update_response.rbi +322 -0
  225. data/rbi/imagekitio/models/file_upload_params.rbi +897 -0
  226. data/rbi/imagekitio/models/file_upload_response.rbi +1176 -0
  227. data/rbi/imagekitio/models/files/bulk_add_tags_params.rbi +56 -0
  228. data/rbi/imagekitio/models/files/bulk_add_tags_response.rbi +41 -0
  229. data/rbi/imagekitio/models/files/bulk_delete_params.rbi +48 -0
  230. data/rbi/imagekitio/models/files/bulk_delete_response.rbi +41 -0
  231. data/rbi/imagekitio/models/files/bulk_remove_ai_tags_params.rbi +56 -0
  232. data/rbi/imagekitio/models/files/bulk_remove_ai_tags_response.rbi +41 -0
  233. data/rbi/imagekitio/models/files/bulk_remove_tags_params.rbi +56 -0
  234. data/rbi/imagekitio/models/files/bulk_remove_tags_response.rbi +41 -0
  235. data/rbi/imagekitio/models/files/metadata_get_from_url_params.rbi +47 -0
  236. data/rbi/imagekitio/models/files/metadata_get_params.rbi +34 -0
  237. data/rbi/imagekitio/models/files/version_delete_params.rbi +40 -0
  238. data/rbi/imagekitio/models/files/version_delete_response.rbi +25 -0
  239. data/rbi/imagekitio/models/files/version_get_params.rbi +40 -0
  240. data/rbi/imagekitio/models/files/version_list_params.rbi +34 -0
  241. data/rbi/imagekitio/models/files/version_list_response.rbi +13 -0
  242. data/rbi/imagekitio/models/files/version_restore_params.rbi +40 -0
  243. data/rbi/imagekitio/models/folder.rbi +121 -0
  244. data/rbi/imagekitio/models/folder_copy_params.rbi +68 -0
  245. data/rbi/imagekitio/models/folder_copy_response.rbi +33 -0
  246. data/rbi/imagekitio/models/folder_create_params.rbi +71 -0
  247. data/rbi/imagekitio/models/folder_create_response.rbi +23 -0
  248. data/rbi/imagekitio/models/folder_delete_params.rbi +40 -0
  249. data/rbi/imagekitio/models/folder_delete_response.rbi +23 -0
  250. data/rbi/imagekitio/models/folder_move_params.rbi +53 -0
  251. data/rbi/imagekitio/models/folder_move_response.rbi +33 -0
  252. data/rbi/imagekitio/models/folder_rename_params.rbi +98 -0
  253. data/rbi/imagekitio/models/folder_rename_response.rbi +33 -0
  254. data/rbi/imagekitio/models/folders/job_get_params.rbi +34 -0
  255. data/rbi/imagekitio/models/folders/job_get_response.rbi +173 -0
  256. data/rbi/imagekitio/models/get_image_attributes_options.rbi +121 -0
  257. data/rbi/imagekitio/models/image_overlay.rbi +109 -0
  258. data/rbi/imagekitio/models/metadata.rbi +813 -0
  259. data/rbi/imagekitio/models/overlay.rbi +28 -0
  260. data/rbi/imagekitio/models/overlay_position.rbi +148 -0
  261. data/rbi/imagekitio/models/overlay_timing.rbi +135 -0
  262. data/rbi/imagekitio/models/responsive_image_attributes.rbi +74 -0
  263. data/rbi/imagekitio/models/solid_color_overlay.rbi +79 -0
  264. data/rbi/imagekitio/models/solid_color_overlay_transformation.rbi +218 -0
  265. data/rbi/imagekitio/models/src_options.rbi +159 -0
  266. data/rbi/imagekitio/models/streaming_resolution.rbi +38 -0
  267. data/rbi/imagekitio/models/subtitle_overlay.rbi +114 -0
  268. data/rbi/imagekitio/models/subtitle_overlay_transformation.rbi +215 -0
  269. data/rbi/imagekitio/models/text_overlay.rbi +110 -0
  270. data/rbi/imagekitio/models/text_overlay_transformation.rbi +451 -0
  271. data/rbi/imagekitio/models/transformation.rbi +1646 -0
  272. data/rbi/imagekitio/models/transformation_position.rbi +28 -0
  273. data/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi +33 -0
  274. data/rbi/imagekitio/models/unwrap_webhook_event.rbi +31 -0
  275. data/rbi/imagekitio/models/update_file_request.rbi +316 -0
  276. data/rbi/imagekitio/models/upload_post_transform_error_event.rbi +434 -0
  277. data/rbi/imagekitio/models/upload_post_transform_success_event.rbi +327 -0
  278. data/rbi/imagekitio/models/upload_pre_transform_error_event.rbi +244 -0
  279. data/rbi/imagekitio/models/upload_pre_transform_success_event.rbi +1300 -0
  280. data/rbi/imagekitio/models/video_overlay.rbi +105 -0
  281. data/rbi/imagekitio/models/video_transformation_accepted_event.rbi +659 -0
  282. data/rbi/imagekitio/models/video_transformation_error_event.rbi +772 -0
  283. data/rbi/imagekitio/models/video_transformation_ready_event.rbi +864 -0
  284. data/rbi/imagekitio/models/webhook_unsafe_unwrap_params.rbi +30 -0
  285. data/rbi/imagekitio/models/webhook_unwrap_params.rbi +27 -0
  286. data/rbi/imagekitio/models.rbi +135 -0
  287. data/rbi/imagekitio/request_options.rbi +59 -0
  288. data/rbi/imagekitio/resources/accounts/origins.rbi +91 -0
  289. data/rbi/imagekitio/resources/accounts/url_endpoints.rbi +129 -0
  290. data/rbi/imagekitio/resources/accounts/usage.rbi +36 -0
  291. data/rbi/imagekitio/resources/accounts.rbi +21 -0
  292. data/rbi/imagekitio/resources/assets.rbi +74 -0
  293. data/rbi/imagekitio/resources/beta/v2/files.rbi +193 -0
  294. data/rbi/imagekitio/resources/beta/v2.rbi +17 -0
  295. data/rbi/imagekitio/resources/beta.rbi +15 -0
  296. data/rbi/imagekitio/resources/cache/invalidation.rbi +44 -0
  297. data/rbi/imagekitio/resources/cache.rbi +15 -0
  298. data/rbi/imagekitio/resources/custom_metadata_fields.rbi +106 -0
  299. data/rbi/imagekitio/resources/files/bulk.rbi +88 -0
  300. data/rbi/imagekitio/resources/files/metadata.rbi +49 -0
  301. data/rbi/imagekitio/resources/files/versions.rbi +89 -0
  302. data/rbi/imagekitio/resources/files.rbi +364 -0
  303. data/rbi/imagekitio/resources/folders/job.rbi +29 -0
  304. data/rbi/imagekitio/resources/folders.rbi +146 -0
  305. data/rbi/imagekitio/resources/webhooks.rbi +50 -0
  306. data/rbi/imagekitio/version.rbi +5 -0
  307. data/sig/imagekitio/client.rbs +47 -0
  308. data/sig/imagekitio/errors.rbs +117 -0
  309. data/sig/imagekitio/file_part.rbs +21 -0
  310. data/sig/imagekitio/helpers/helper.rbs +24 -0
  311. data/sig/imagekitio/internal/transport/base_client.rbs +131 -0
  312. data/sig/imagekitio/internal/transport/pooled_net_requester.rbs +45 -0
  313. data/sig/imagekitio/internal/type/array_of.rbs +48 -0
  314. data/sig/imagekitio/internal/type/base_model.rbs +102 -0
  315. data/sig/imagekitio/internal/type/base_page.rbs +24 -0
  316. data/sig/imagekitio/internal/type/boolean.rbs +26 -0
  317. data/sig/imagekitio/internal/type/converter.rbs +79 -0
  318. data/sig/imagekitio/internal/type/enum.rbs +32 -0
  319. data/sig/imagekitio/internal/type/file_input.rbs +25 -0
  320. data/sig/imagekitio/internal/type/hash_of.rbs +48 -0
  321. data/sig/imagekitio/internal/type/request_parameters.rbs +19 -0
  322. data/sig/imagekitio/internal/type/union.rbs +52 -0
  323. data/sig/imagekitio/internal/type/unknown.rbs +26 -0
  324. data/sig/imagekitio/internal/util.rbs +185 -0
  325. data/sig/imagekitio/internal.rbs +9 -0
  326. data/sig/imagekitio/models/accounts/origin_create_params.rbs +30 -0
  327. data/sig/imagekitio/models/accounts/origin_delete_params.rbs +17 -0
  328. data/sig/imagekitio/models/accounts/origin_get_params.rbs +17 -0
  329. data/sig/imagekitio/models/accounts/origin_list_params.rbs +17 -0
  330. data/sig/imagekitio/models/accounts/origin_list_response.rbs +10 -0
  331. data/sig/imagekitio/models/accounts/origin_request.rbs +468 -0
  332. data/sig/imagekitio/models/accounts/origin_response.rbs +418 -0
  333. data/sig/imagekitio/models/accounts/origin_update_params.rbs +30 -0
  334. data/sig/imagekitio/models/accounts/url_endpoint_create_params.rbs +17 -0
  335. data/sig/imagekitio/models/accounts/url_endpoint_delete_params.rbs +17 -0
  336. data/sig/imagekitio/models/accounts/url_endpoint_get_params.rbs +17 -0
  337. data/sig/imagekitio/models/accounts/url_endpoint_list_params.rbs +17 -0
  338. data/sig/imagekitio/models/accounts/url_endpoint_list_response.rbs +10 -0
  339. data/sig/imagekitio/models/accounts/url_endpoint_request.rbs +97 -0
  340. data/sig/imagekitio/models/accounts/url_endpoint_response.rbs +96 -0
  341. data/sig/imagekitio/models/accounts/url_endpoint_update_params.rbs +17 -0
  342. data/sig/imagekitio/models/accounts/usage_get_params.rbs +30 -0
  343. data/sig/imagekitio/models/accounts/usage_get_response.rbs +52 -0
  344. data/sig/imagekitio/models/asset_list_params.rbs +138 -0
  345. data/sig/imagekitio/models/asset_list_response.rbs +16 -0
  346. data/sig/imagekitio/models/base_overlay.rbs +31 -0
  347. data/sig/imagekitio/models/base_webhook_event.rbs +15 -0
  348. data/sig/imagekitio/models/beta/v2/file_upload_params.rbs +310 -0
  349. data/sig/imagekitio/models/beta/v2/file_upload_response.rbs +487 -0
  350. data/sig/imagekitio/models/cache/invalidation_create_params.rbs +25 -0
  351. data/sig/imagekitio/models/cache/invalidation_create_response.rbs +17 -0
  352. data/sig/imagekitio/models/cache/invalidation_get_params.rbs +17 -0
  353. data/sig/imagekitio/models/cache/invalidation_get_response.rbs +35 -0
  354. data/sig/imagekitio/models/custom_metadata_field.rbs +178 -0
  355. data/sig/imagekitio/models/custom_metadata_field_create_params.rbs +179 -0
  356. data/sig/imagekitio/models/custom_metadata_field_delete_params.rbs +15 -0
  357. data/sig/imagekitio/models/custom_metadata_field_delete_response.rbs +11 -0
  358. data/sig/imagekitio/models/custom_metadata_field_list_params.rbs +32 -0
  359. data/sig/imagekitio/models/custom_metadata_field_list_response.rbs +8 -0
  360. data/sig/imagekitio/models/custom_metadata_field_update_params.rbs +152 -0
  361. data/sig/imagekitio/models/extensions.rbs +132 -0
  362. data/sig/imagekitio/models/file.rbs +384 -0
  363. data/sig/imagekitio/models/file_copy_params.rbs +38 -0
  364. data/sig/imagekitio/models/file_copy_response.rbs +11 -0
  365. data/sig/imagekitio/models/file_delete_params.rbs +15 -0
  366. data/sig/imagekitio/models/file_get_params.rbs +14 -0
  367. data/sig/imagekitio/models/file_move_params.rbs +28 -0
  368. data/sig/imagekitio/models/file_move_response.rbs +11 -0
  369. data/sig/imagekitio/models/file_rename_params.rbs +34 -0
  370. data/sig/imagekitio/models/file_rename_response.rbs +15 -0
  371. data/sig/imagekitio/models/file_update_params.rbs +28 -0
  372. data/sig/imagekitio/models/file_update_response.rbs +120 -0
  373. data/sig/imagekitio/models/file_upload_params.rbs +327 -0
  374. data/sig/imagekitio/models/file_upload_response.rbs +483 -0
  375. data/sig/imagekitio/models/files/bulk_add_tags_params.rbs +30 -0
  376. data/sig/imagekitio/models/files/bulk_add_tags_response.rbs +20 -0
  377. data/sig/imagekitio/models/files/bulk_delete_params.rbs +26 -0
  378. data/sig/imagekitio/models/files/bulk_delete_response.rbs +20 -0
  379. data/sig/imagekitio/models/files/bulk_remove_ai_tags_params.rbs +30 -0
  380. data/sig/imagekitio/models/files/bulk_remove_ai_tags_response.rbs +20 -0
  381. data/sig/imagekitio/models/files/bulk_remove_tags_params.rbs +30 -0
  382. data/sig/imagekitio/models/files/bulk_remove_tags_response.rbs +20 -0
  383. data/sig/imagekitio/models/files/metadata_get_from_url_params.rbs +25 -0
  384. data/sig/imagekitio/models/files/metadata_get_params.rbs +17 -0
  385. data/sig/imagekitio/models/files/version_delete_params.rbs +25 -0
  386. data/sig/imagekitio/models/files/version_delete_response.rbs +13 -0
  387. data/sig/imagekitio/models/files/version_get_params.rbs +25 -0
  388. data/sig/imagekitio/models/files/version_list_params.rbs +17 -0
  389. data/sig/imagekitio/models/files/version_list_response.rbs +9 -0
  390. data/sig/imagekitio/models/files/version_restore_params.rbs +25 -0
  391. data/sig/imagekitio/models/folder.rbs +69 -0
  392. data/sig/imagekitio/models/folder_copy_params.rbs +38 -0
  393. data/sig/imagekitio/models/folder_copy_response.rbs +13 -0
  394. data/sig/imagekitio/models/folder_create_params.rbs +28 -0
  395. data/sig/imagekitio/models/folder_create_response.rbs +11 -0
  396. data/sig/imagekitio/models/folder_delete_params.rbs +23 -0
  397. data/sig/imagekitio/models/folder_delete_response.rbs +11 -0
  398. data/sig/imagekitio/models/folder_move_params.rbs +28 -0
  399. data/sig/imagekitio/models/folder_move_response.rbs +13 -0
  400. data/sig/imagekitio/models/folder_rename_params.rbs +34 -0
  401. data/sig/imagekitio/models/folder_rename_response.rbs +13 -0
  402. data/sig/imagekitio/models/folders/job_get_params.rbs +17 -0
  403. data/sig/imagekitio/models/folders/job_get_response.rbs +72 -0
  404. data/sig/imagekitio/models/get_image_attributes_options.rbs +43 -0
  405. data/sig/imagekitio/models/image_overlay.rbs +59 -0
  406. data/sig/imagekitio/models/metadata.rbs +546 -0
  407. data/sig/imagekitio/models/overlay.rbs +16 -0
  408. data/sig/imagekitio/models/overlay_position.rbs +85 -0
  409. data/sig/imagekitio/models/overlay_timing.rbs +66 -0
  410. data/sig/imagekitio/models/responsive_image_attributes.rbs +36 -0
  411. data/sig/imagekitio/models/solid_color_overlay.rbs +38 -0
  412. data/sig/imagekitio/models/solid_color_overlay_transformation.rbs +97 -0
  413. data/sig/imagekitio/models/src_options.rbs +64 -0
  414. data/sig/imagekitio/models/streaming_resolution.rbs +20 -0
  415. data/sig/imagekitio/models/subtitle_overlay.rbs +59 -0
  416. data/sig/imagekitio/models/subtitle_overlay_transformation.rbs +78 -0
  417. data/sig/imagekitio/models/text_overlay.rbs +59 -0
  418. data/sig/imagekitio/models/text_overlay_transformation.rbs +195 -0
  419. data/sig/imagekitio/models/transformation.rbs +763 -0
  420. data/sig/imagekitio/models/transformation_position.rbs +14 -0
  421. data/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs +18 -0
  422. data/sig/imagekitio/models/unwrap_webhook_event.rbs +18 -0
  423. data/sig/imagekitio/models/update_file_request.rbs +122 -0
  424. data/sig/imagekitio/models/upload_post_transform_error_event.rbs +192 -0
  425. data/sig/imagekitio/models/upload_post_transform_success_event.rbs +142 -0
  426. data/sig/imagekitio/models/upload_pre_transform_error_event.rbs +115 -0
  427. data/sig/imagekitio/models/upload_pre_transform_success_event.rbs +541 -0
  428. data/sig/imagekitio/models/video_overlay.rbs +59 -0
  429. data/sig/imagekitio/models/video_transformation_accepted_event.rbs +261 -0
  430. data/sig/imagekitio/models/video_transformation_error_event.rbs +300 -0
  431. data/sig/imagekitio/models/video_transformation_ready_event.rbs +359 -0
  432. data/sig/imagekitio/models/webhook_unsafe_unwrap_params.rbs +15 -0
  433. data/sig/imagekitio/models/webhook_unwrap_params.rbs +15 -0
  434. data/sig/imagekitio/models.rbs +119 -0
  435. data/sig/imagekitio/request_options.rbs +36 -0
  436. data/sig/imagekitio/resources/accounts/origins.rbs +34 -0
  437. data/sig/imagekitio/resources/accounts/url_endpoints.rbs +40 -0
  438. data/sig/imagekitio/resources/accounts/usage.rbs +15 -0
  439. data/sig/imagekitio/resources/accounts.rbs +13 -0
  440. data/sig/imagekitio/resources/assets.rbs +18 -0
  441. data/sig/imagekitio/resources/beta/v2/files.rbs +35 -0
  442. data/sig/imagekitio/resources/beta/v2.rbs +11 -0
  443. data/sig/imagekitio/resources/beta.rbs +9 -0
  444. data/sig/imagekitio/resources/cache/invalidation.rbs +19 -0
  445. data/sig/imagekitio/resources/cache.rbs +9 -0
  446. data/sig/imagekitio/resources/custom_metadata_fields.rbs +32 -0
  447. data/sig/imagekitio/resources/files/bulk.rbs +32 -0
  448. data/sig/imagekitio/resources/files/metadata.rbs +19 -0
  449. data/sig/imagekitio/resources/files/versions.rbs +32 -0
  450. data/sig/imagekitio/resources/files.rbs +76 -0
  451. data/sig/imagekitio/resources/folders/job.rbs +14 -0
  452. data/sig/imagekitio/resources/folders.rbs +40 -0
  453. data/sig/imagekitio/resources/webhooks.rbs +27 -0
  454. data/sig/imagekitio/version.rbs +3 -0
  455. metadata +470 -136
  456. data/Rakefile +0 -27
  457. data/lib/active_storage/active_storage.rb +0 -7
  458. data/lib/active_storage/service/ik_file.rb +0 -115
  459. data/lib/active_storage/service/image_kit_io_service.rb +0 -188
  460. data/lib/carrierwave/carrierwave.rb +0 -83
  461. data/lib/carrierwave/storage/ik_file.rb +0 -51
  462. data/lib/carrierwave/storage/imagekit_store.rb +0 -68
  463. data/lib/carrierwave/support/uri_filename.rb +0 -12
  464. data/lib/imagekitio/api_service/bulk.rb +0 -58
  465. data/lib/imagekitio/api_service/custom_metadata_field.rb +0 -52
  466. data/lib/imagekitio/api_service/file.rb +0 -221
  467. data/lib/imagekitio/api_service/folder.rb +0 -49
  468. data/lib/imagekitio/base.rb +0 -12
  469. data/lib/imagekitio/configurable.rb +0 -43
  470. data/lib/imagekitio/constant.rb +0 -36
  471. data/lib/imagekitio/constants/default.rb +0 -22
  472. data/lib/imagekitio/constants/error.rb +0 -69
  473. data/lib/imagekitio/constants/file.rb +0 -11
  474. data/lib/imagekitio/constants/supported_transformation.rb +0 -39
  475. data/lib/imagekitio/constants/url.rb +0 -14
  476. data/lib/imagekitio/railtie.rb +0 -4
  477. data/lib/imagekitio/request.rb +0 -98
  478. data/lib/imagekitio/sdk/version.rb +0 -5
  479. data/lib/imagekitio/url.rb +0 -216
  480. data/lib/imagekitio/utils/calculation.rb +0 -45
  481. data/lib/imagekitio/utils/formatter.rb +0 -48
  482. data/lib/imagekitio/utils/option_validator.rb +0 -36
  483. data/lib/tasks/imagekitio/imagekitio_tasks.rake +0 -4
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagekitio
4
+ module Models
5
+ # @see Imagekitio::Resources::Files#rename
6
+ class FileRenameResponse < Imagekitio::Internal::Type::BaseModel
7
+ # @!attribute purge_request_id
8
+ # Unique identifier of the purge request. This can be used to check the status of
9
+ # the purge request.
10
+ #
11
+ # @return [String, nil]
12
+ optional :purge_request_id, String, api_name: :purgeRequestId
13
+
14
+ # @!method initialize(purge_request_id: nil)
15
+ # Some parameter documentations has been truncated, see
16
+ # {Imagekitio::Models::FileRenameResponse} for more details.
17
+ #
18
+ # @param purge_request_id [String] Unique identifier of the purge request. This can be used to check the status of
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagekitio
4
+ module Models
5
+ # @see Imagekitio::Resources::Files#update
6
+ class FileUpdateParams < Imagekitio::Internal::Type::BaseModel
7
+ extend Imagekitio::Internal::Type::RequestParameters::Converter
8
+ include Imagekitio::Internal::Type::RequestParameters
9
+
10
+ # @!attribute update_file_request
11
+ # Schema for update file update request.
12
+ #
13
+ # @return [Imagekitio::Models::UpdateFileRequest::UpdateFileDetails, Imagekitio::Models::UpdateFileRequest::ChangePublicationStatus]
14
+ required :update_file_request, union: -> { Imagekitio::UpdateFileRequest }
15
+
16
+ # @!method initialize(update_file_request:, request_options: {})
17
+ # @param update_file_request [Imagekitio::Models::UpdateFileRequest::UpdateFileDetails, Imagekitio::Models::UpdateFileRequest::ChangePublicationStatus] Schema for update file update request.
18
+ #
19
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagekitio
4
+ module Models
5
+ # @see Imagekitio::Resources::Files#update
6
+ class FileUpdateResponse < Imagekitio::Models::File
7
+ # @!attribute extension_status
8
+ #
9
+ # @return [Imagekitio::Models::FileUpdateResponse::ExtensionStatus, nil]
10
+ optional :extension_status,
11
+ -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus },
12
+ api_name: :extensionStatus
13
+
14
+ # @!method initialize(extension_status: nil)
15
+ # Object containing details of a file or file version.
16
+ #
17
+ # @param extension_status [Imagekitio::Models::FileUpdateResponse::ExtensionStatus]
18
+
19
+ class ExtensionStatus < Imagekitio::Internal::Type::BaseModel
20
+ # @!attribute ai_auto_description
21
+ #
22
+ # @return [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AIAutoDescription, nil]
23
+ optional :ai_auto_description,
24
+ enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AIAutoDescription },
25
+ api_name: :"ai-auto-description"
26
+
27
+ # @!attribute aws_auto_tagging
28
+ #
29
+ # @return [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AwsAutoTagging, nil]
30
+ optional :aws_auto_tagging,
31
+ enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AwsAutoTagging },
32
+ api_name: :"aws-auto-tagging"
33
+
34
+ # @!attribute google_auto_tagging
35
+ #
36
+ # @return [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::GoogleAutoTagging, nil]
37
+ optional :google_auto_tagging,
38
+ enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::GoogleAutoTagging },
39
+ api_name: :"google-auto-tagging"
40
+
41
+ # @!attribute remove_bg
42
+ #
43
+ # @return [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::RemoveBg, nil]
44
+ optional :remove_bg,
45
+ enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::RemoveBg },
46
+ api_name: :"remove-bg"
47
+
48
+ # @!method initialize(ai_auto_description: nil, aws_auto_tagging: nil, google_auto_tagging: nil, remove_bg: nil)
49
+ # @param ai_auto_description [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AIAutoDescription]
50
+ # @param aws_auto_tagging [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AwsAutoTagging]
51
+ # @param google_auto_tagging [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::GoogleAutoTagging]
52
+ # @param remove_bg [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::RemoveBg]
53
+
54
+ # @see Imagekitio::Models::FileUpdateResponse::ExtensionStatus#ai_auto_description
55
+ module AIAutoDescription
56
+ extend Imagekitio::Internal::Type::Enum
57
+
58
+ SUCCESS = :success
59
+ PENDING = :pending
60
+ FAILED = :failed
61
+
62
+ # @!method self.values
63
+ # @return [Array<Symbol>]
64
+ end
65
+
66
+ # @see Imagekitio::Models::FileUpdateResponse::ExtensionStatus#aws_auto_tagging
67
+ module AwsAutoTagging
68
+ extend Imagekitio::Internal::Type::Enum
69
+
70
+ SUCCESS = :success
71
+ PENDING = :pending
72
+ FAILED = :failed
73
+
74
+ # @!method self.values
75
+ # @return [Array<Symbol>]
76
+ end
77
+
78
+ # @see Imagekitio::Models::FileUpdateResponse::ExtensionStatus#google_auto_tagging
79
+ module GoogleAutoTagging
80
+ extend Imagekitio::Internal::Type::Enum
81
+
82
+ SUCCESS = :success
83
+ PENDING = :pending
84
+ FAILED = :failed
85
+
86
+ # @!method self.values
87
+ # @return [Array<Symbol>]
88
+ end
89
+
90
+ # @see Imagekitio::Models::FileUpdateResponse::ExtensionStatus#remove_bg
91
+ module RemoveBg
92
+ extend Imagekitio::Internal::Type::Enum
93
+
94
+ SUCCESS = :success
95
+ PENDING = :pending
96
+ FAILED = :failed
97
+
98
+ # @!method self.values
99
+ # @return [Array<Symbol>]
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,540 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagekitio
4
+ module Models
5
+ # @see Imagekitio::Resources::Files#upload
6
+ class FileUploadParams < Imagekitio::Internal::Type::BaseModel
7
+ extend Imagekitio::Internal::Type::RequestParameters::Converter
8
+ include Imagekitio::Internal::Type::RequestParameters
9
+
10
+ # Serialize upload options to handle proper formatting for ImageKit backend API.
11
+ # Special cases handled:
12
+ # - tags: converted to comma-separated string
13
+ # - responseFields: converted to comma-separated string
14
+ # - extensions: JSON stringified
15
+ # - customMetadata: JSON stringified
16
+ # - transformation: JSON stringified
17
+ #
18
+ # @api private
19
+ #
20
+ # @param params [Object]
21
+ #
22
+ # @return [Array(Object, Hash{Symbol=>Object})]
23
+ def self.dump_request(params)
24
+ state = {can_retry: true}
25
+ case (dumped = dump(params, state: state))
26
+ in Hash
27
+ serialized = serialize_upload_options(dumped)
28
+ options = Imagekitio::Internal::Util.coerce_hash!(serialized[:request_options]).to_h
29
+ request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
30
+ [serialized.except(:request_options), request_options]
31
+ else
32
+ [dumped, nil]
33
+ end
34
+ end
35
+
36
+ # @api private
37
+ #
38
+ # @param upload_options [Hash{Symbol=>Object}]
39
+ #
40
+ # @return [Hash{Symbol=>Object}]
41
+ def self.serialize_upload_options(upload_options)
42
+ serialized = {}
43
+
44
+ upload_options.each do |key, value|
45
+ # Skip nil values
46
+ if value.nil?
47
+ serialized[key] = value
48
+ next
49
+ end
50
+
51
+ serialized[key] = case key
52
+ when :tags, :responseFields
53
+ # Tags and response fields should be comma-separated strings
54
+ value.is_a?(Array) ? value.join(",") : value
55
+ when :extensions
56
+ # Extensions should be JSON stringified
57
+ value.is_a?(Array) ? JSON.generate(value) : value
58
+ when :customMetadata
59
+ # Custom metadata should be JSON stringified
60
+ value.is_a?(Hash) ? JSON.generate(value) : value
61
+ when :transformation
62
+ # Transformation should be JSON stringified
63
+ value.is_a?(Hash) || value.respond_to?(:to_h) ? JSON.generate(value) : value
64
+ else
65
+ value
66
+ end
67
+ end
68
+
69
+ serialized
70
+ end
71
+
72
+ # @!attribute file
73
+ # The API accepts any of the following:
74
+ #
75
+ # - **Binary data** – send the raw bytes as `multipart/form-data`.
76
+ # - **HTTP / HTTPS URL** – a publicly reachable URL that ImageKit’s servers can
77
+ # fetch.
78
+ # - **Base64 string** – the file encoded as a Base64 data URI or plain Base64.
79
+ #
80
+ # When supplying a URL, the server must receive the response headers within 8
81
+ # seconds; otherwise the request fails with 400 Bad Request.
82
+ #
83
+ # @return [Pathname, StringIO, IO, String, Imagekitio::FilePart]
84
+ required :file, Imagekitio::Internal::Type::FileInput
85
+
86
+ # @!attribute file_name
87
+ # The name with which the file has to be uploaded. The file name can contain:
88
+ #
89
+ # - Alphanumeric Characters: `a-z`, `A-Z`, `0-9`.
90
+ # - Special Characters: `.`, `-`
91
+ #
92
+ # Any other character including space will be replaced by `_`
93
+ #
94
+ # @return [String]
95
+ required :file_name, String, api_name: :fileName
96
+
97
+ # @!attribute token
98
+ # A unique value that the ImageKit.io server will use to recognize and prevent
99
+ # subsequent retries for the same request. We suggest using V4 UUIDs, or another
100
+ # random string with enough entropy to avoid collisions. This field is only
101
+ # required for authentication when uploading a file from the client side.
102
+ #
103
+ # **Note**: Sending a value that has been used in the past will result in a
104
+ # validation error. Even if your previous request resulted in an error, you should
105
+ # always send a new value for this field.
106
+ #
107
+ # @return [String, nil]
108
+ optional :token, String
109
+
110
+ # @!attribute checks
111
+ # Server-side checks to run on the asset. Read more about
112
+ # [Upload API checks](/docs/api-reference/upload-file/upload-file#upload-api-checks).
113
+ #
114
+ # @return [String, nil]
115
+ optional :checks, String
116
+
117
+ # @!attribute custom_coordinates
118
+ # Define an important area in the image. This is only relevant for image type
119
+ # files.
120
+ #
121
+ # - To be passed as a string with the x and y coordinates of the top-left corner,
122
+ # and width and height of the area of interest in the format `x,y,width,height`.
123
+ # For example - `10,10,100,100`
124
+ # - Can be used with fo-customtransformation.
125
+ # - If this field is not specified and the file is overwritten, then
126
+ # customCoordinates will be removed.
127
+ #
128
+ # @return [String, nil]
129
+ optional :custom_coordinates, String, api_name: :customCoordinates
130
+
131
+ # @!attribute custom_metadata
132
+ # JSON key-value pairs to associate with the asset. Create the custom metadata
133
+ # fields before setting these values.
134
+ #
135
+ # @return [Hash{Symbol=>Object}, nil]
136
+ optional :custom_metadata,
137
+ Imagekitio::Internal::Type::HashOf[Imagekitio::Internal::Type::Unknown],
138
+ api_name: :customMetadata
139
+
140
+ # @!attribute description
141
+ # Optional text to describe the contents of the file.
142
+ #
143
+ # @return [String, nil]
144
+ optional :description, String
145
+
146
+ # @!attribute expire
147
+ # The time until your signature is valid. It must be a
148
+ # [Unix time](https://en.wikipedia.org/wiki/Unix_time) in less than 1 hour into
149
+ # the future. It should be in seconds. This field is only required for
150
+ # authentication when uploading a file from the client side.
151
+ #
152
+ # @return [Integer, nil]
153
+ optional :expire, Integer
154
+
155
+ # @!attribute extensions
156
+ # Array of extensions to be applied to the asset. Each extension can be configured
157
+ # with specific parameters based on the extension type.
158
+ #
159
+ # @return [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>, nil]
160
+ optional :extensions, -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem] }
161
+
162
+ # @!attribute folder
163
+ # The folder path in which the image has to be uploaded. If the folder(s) didn't
164
+ # exist before, a new folder(s) is created.
165
+ #
166
+ # The folder name can contain:
167
+ #
168
+ # - Alphanumeric Characters: `a-z` , `A-Z` , `0-9`
169
+ # - Special Characters: `/` , `_` , `-`
170
+ #
171
+ # Using multiple `/` creates a nested folder.
172
+ #
173
+ # @return [String, nil]
174
+ optional :folder, String
175
+
176
+ # @!attribute is_private_file
177
+ # Whether to mark the file as private or not.
178
+ #
179
+ # If `true`, the file is marked as private and is accessible only using named
180
+ # transformation or signed URL.
181
+ #
182
+ # @return [Boolean, nil]
183
+ optional :is_private_file, Imagekitio::Internal::Type::Boolean, api_name: :isPrivateFile
184
+
185
+ # @!attribute is_published
186
+ # Whether to upload file as published or not.
187
+ #
188
+ # If `false`, the file is marked as unpublished, which restricts access to the
189
+ # file only via the media library. Files in draft or unpublished state can only be
190
+ # publicly accessed after being published.
191
+ #
192
+ # The option to upload in draft state is only available in custom enterprise
193
+ # pricing plans.
194
+ #
195
+ # @return [Boolean, nil]
196
+ optional :is_published, Imagekitio::Internal::Type::Boolean, api_name: :isPublished
197
+
198
+ # @!attribute overwrite_ai_tags
199
+ # If set to `true` and a file already exists at the exact location, its AITags
200
+ # will be removed. Set `overwriteAITags` to `false` to preserve AITags.
201
+ #
202
+ # @return [Boolean, nil]
203
+ optional :overwrite_ai_tags, Imagekitio::Internal::Type::Boolean, api_name: :overwriteAITags
204
+
205
+ # @!attribute overwrite_custom_metadata
206
+ # If the request does not have `customMetadata`, and a file already exists at the
207
+ # exact location, existing customMetadata will be removed.
208
+ #
209
+ # @return [Boolean, nil]
210
+ optional :overwrite_custom_metadata,
211
+ Imagekitio::Internal::Type::Boolean,
212
+ api_name: :overwriteCustomMetadata
213
+
214
+ # @!attribute overwrite_file
215
+ # If `false` and `useUniqueFileName` is also `false`, and a file already exists at
216
+ # the exact location, upload API will return an error immediately.
217
+ #
218
+ # @return [Boolean, nil]
219
+ optional :overwrite_file, Imagekitio::Internal::Type::Boolean, api_name: :overwriteFile
220
+
221
+ # @!attribute overwrite_tags
222
+ # If the request does not have `tags`, and a file already exists at the exact
223
+ # location, existing tags will be removed.
224
+ #
225
+ # @return [Boolean, nil]
226
+ optional :overwrite_tags, Imagekitio::Internal::Type::Boolean, api_name: :overwriteTags
227
+
228
+ # @!attribute public_key
229
+ # Your ImageKit.io public key. This field is only required for authentication when
230
+ # uploading a file from the client side.
231
+ #
232
+ # @return [String, nil]
233
+ optional :public_key, String, api_name: :publicKey
234
+
235
+ # @!attribute response_fields
236
+ # Array of response field keys to include in the API response body.
237
+ #
238
+ # @return [Array<Symbol, Imagekitio::Models::FileUploadParams::ResponseField>, nil]
239
+ optional :response_fields,
240
+ -> { Imagekitio::Internal::Type::ArrayOf[enum: Imagekitio::FileUploadParams::ResponseField] },
241
+ api_name: :responseFields
242
+
243
+ # @!attribute signature
244
+ # HMAC-SHA1 digest of the token+expire using your ImageKit.io private API key as a
245
+ # key. Learn how to create a signature on the page below. This should be in
246
+ # lowercase.
247
+ #
248
+ # Signature must be calculated on the server-side. This field is only required for
249
+ # authentication when uploading a file from the client side.
250
+ #
251
+ # @return [String, nil]
252
+ optional :signature, String
253
+
254
+ # @!attribute tags
255
+ # Set the tags while uploading the file. Provide an array of tag strings (e.g.
256
+ # `["tag1", "tag2", "tag3"]`). The combined length of all tag characters must not
257
+ # exceed 500, and the `%` character is not allowed. If this field is not specified
258
+ # and the file is overwritten, the existing tags will be removed.
259
+ #
260
+ # @return [Array<String>, nil]
261
+ optional :tags, Imagekitio::Internal::Type::ArrayOf[String]
262
+
263
+ # @!attribute transformation
264
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
265
+ #
266
+ # - `pre` — applied before the file is uploaded to the Media Library.
267
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
268
+ # resize, compress).
269
+ #
270
+ # - `post` — applied immediately after upload.
271
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
272
+ # in advance, so they're ready for delivery without delay.
273
+ #
274
+ # You can mix and match any combination of post-processing types.
275
+ #
276
+ # @return [Imagekitio::Models::FileUploadParams::Transformation, nil]
277
+ optional :transformation, -> { Imagekitio::FileUploadParams::Transformation }
278
+
279
+ # @!attribute use_unique_file_name
280
+ # Whether to use a unique filename for this file or not.
281
+ #
282
+ # If `true`, ImageKit.io will add a unique suffix to the filename parameter to get
283
+ # a unique filename.
284
+ #
285
+ # If `false`, then the image is uploaded with the provided filename parameter, and
286
+ # any existing file with the same name is replaced.
287
+ #
288
+ # @return [Boolean, nil]
289
+ optional :use_unique_file_name, Imagekitio::Internal::Type::Boolean, api_name: :useUniqueFileName
290
+
291
+ # @!attribute webhook_url
292
+ # The final status of extensions after they have completed execution will be
293
+ # delivered to this endpoint as a POST request.
294
+ # [Learn more](/docs/api-reference/digital-asset-management-dam/managing-assets/update-file-details#webhook-payload-structure)
295
+ # about the webhook payload structure.
296
+ #
297
+ # @return [String, nil]
298
+ optional :webhook_url, String, api_name: :webhookUrl
299
+
300
+ # @!method initialize(file:, file_name:, token: nil, checks: nil, custom_coordinates: nil, custom_metadata: nil, description: nil, expire: nil, extensions: nil, folder: nil, is_private_file: nil, is_published: nil, overwrite_ai_tags: nil, overwrite_custom_metadata: nil, overwrite_file: nil, overwrite_tags: nil, public_key: nil, response_fields: nil, signature: nil, tags: nil, transformation: nil, use_unique_file_name: nil, webhook_url: nil, request_options: {})
301
+ # Some parameter documentations has been truncated, see
302
+ # {Imagekitio::Models::FileUploadParams} for more details.
303
+ #
304
+ # @param file [Pathname, StringIO, IO, String, Imagekitio::FilePart] The API accepts any of the following:
305
+ #
306
+ # @param file_name [String] The name with which the file has to be uploaded.
307
+ #
308
+ # @param token [String] A unique value that the ImageKit.io server will use to recognize and prevent sub
309
+ #
310
+ # @param checks [String] Server-side checks to run on the asset.
311
+ #
312
+ # @param custom_coordinates [String] Define an important area in the image. This is only relevant for image type file
313
+ #
314
+ # @param custom_metadata [Hash{Symbol=>Object}] JSON key-value pairs to associate with the asset. Create the custom metadata fie
315
+ #
316
+ # @param description [String] Optional text to describe the contents of the file.
317
+ #
318
+ # @param expire [Integer] The time until your signature is valid. It must be a [Unix time](https://en.wiki
319
+ #
320
+ # @param extensions [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>] Array of extensions to be applied to the asset. Each extension can be configured
321
+ #
322
+ # @param folder [String] The folder path in which the image has to be uploaded. If the folder(s) didn't e
323
+ #
324
+ # @param is_private_file [Boolean] Whether to mark the file as private or not.
325
+ #
326
+ # @param is_published [Boolean] Whether to upload file as published or not.
327
+ #
328
+ # @param overwrite_ai_tags [Boolean] If set to `true` and a file already exists at the exact location, its AITags wil
329
+ #
330
+ # @param overwrite_custom_metadata [Boolean] If the request does not have `customMetadata`, and a file already exists at the
331
+ #
332
+ # @param overwrite_file [Boolean] If `false` and `useUniqueFileName` is also `false`, and a file already exists at
333
+ #
334
+ # @param overwrite_tags [Boolean] If the request does not have `tags`, and a file already exists at the exact loca
335
+ #
336
+ # @param public_key [String] Your ImageKit.io public key. This field is only required for authentication when
337
+ #
338
+ # @param response_fields [Array<Symbol, Imagekitio::Models::FileUploadParams::ResponseField>] Array of response field keys to include in the API response body.
339
+ #
340
+ # @param signature [String] HMAC-SHA1 digest of the token+expire using your ImageKit.io private API key as a
341
+ #
342
+ # @param tags [Array<String>] Set the tags while uploading the file.
343
+ #
344
+ # @param transformation [Imagekitio::Models::FileUploadParams::Transformation] Configure pre-processing (`pre`) and post-processing (`post`) transformations.
345
+ #
346
+ # @param use_unique_file_name [Boolean] Whether to use a unique filename for this file or not.
347
+ #
348
+ # @param webhook_url [String] The final status of extensions after they have completed execution will be deliv
349
+ #
350
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}]
351
+
352
+ module ResponseField
353
+ extend Imagekitio::Internal::Type::Enum
354
+
355
+ TAGS = :tags
356
+ CUSTOM_COORDINATES = :customCoordinates
357
+ IS_PRIVATE_FILE = :isPrivateFile
358
+ EMBEDDED_METADATA = :embeddedMetadata
359
+ IS_PUBLISHED = :isPublished
360
+ CUSTOM_METADATA = :customMetadata
361
+ METADATA = :metadata
362
+ SELECTED_FIELDS_SCHEMA = :selectedFieldsSchema
363
+
364
+ # @!method self.values
365
+ # @return [Array<Symbol>]
366
+ end
367
+
368
+ class Transformation < Imagekitio::Internal::Type::BaseModel
369
+ # @!attribute post
370
+ # List of transformations to apply _after_ the file is uploaded.
371
+ # Each item must match one of the following types: `transformation`,
372
+ # `gif-to-video`, `thumbnail`, `abs`.
373
+ #
374
+ # @return [Array<Imagekitio::Models::FileUploadParams::Transformation::Post::Transformation, Imagekitio::Models::FileUploadParams::Transformation::Post::GifToVideo, Imagekitio::Models::FileUploadParams::Transformation::Post::Thumbnail, Imagekitio::Models::FileUploadParams::Transformation::Post::Abs>, nil]
375
+ optional :post,
376
+ -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::FileUploadParams::Transformation::Post] }
377
+
378
+ # @!attribute pre
379
+ # Transformation string to apply before uploading the file to the Media Library.
380
+ # Useful for optimizing files at ingestion.
381
+ #
382
+ # @return [String, nil]
383
+ optional :pre, String
384
+
385
+ # @!method initialize(post: nil, pre: nil)
386
+ # Some parameter documentations has been truncated, see
387
+ # {Imagekitio::Models::FileUploadParams::Transformation} for more details.
388
+ #
389
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
390
+ #
391
+ # - `pre` — applied before the file is uploaded to the Media Library.
392
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
393
+ # resize, compress).
394
+ #
395
+ # - `post` — applied immediately after upload.
396
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
397
+ # in advance, so they're ready for delivery without delay.
398
+ #
399
+ # You can mix and match any combination of post-processing types.
400
+ #
401
+ # @param post [Array<Imagekitio::Models::FileUploadParams::Transformation::Post::Transformation, Imagekitio::Models::FileUploadParams::Transformation::Post::GifToVideo, Imagekitio::Models::FileUploadParams::Transformation::Post::Thumbnail, Imagekitio::Models::FileUploadParams::Transformation::Post::Abs>] List of transformations to apply _after_ the file is uploaded.
402
+ #
403
+ # @param pre [String] Transformation string to apply before uploading the file to the Media Library. U
404
+
405
+ module Post
406
+ extend Imagekitio::Internal::Type::Union
407
+
408
+ discriminator :type
409
+
410
+ variant :transformation, -> { Imagekitio::FileUploadParams::Transformation::Post::Transformation }
411
+
412
+ variant :"gif-to-video", -> { Imagekitio::FileUploadParams::Transformation::Post::GifToVideo }
413
+
414
+ variant :thumbnail, -> { Imagekitio::FileUploadParams::Transformation::Post::Thumbnail }
415
+
416
+ variant :abs, -> { Imagekitio::FileUploadParams::Transformation::Post::Abs }
417
+
418
+ class Transformation < Imagekitio::Internal::Type::BaseModel
419
+ # @!attribute type
420
+ # Transformation type.
421
+ #
422
+ # @return [Symbol, :transformation]
423
+ required :type, const: :transformation
424
+
425
+ # @!attribute value
426
+ # Transformation string (e.g. `w-200,h-200`).
427
+ # Same syntax as ImageKit URL-based transformations.
428
+ #
429
+ # @return [String]
430
+ required :value, String
431
+
432
+ # @!method initialize(value:, type: :transformation)
433
+ # Some parameter documentations has been truncated, see
434
+ # {Imagekitio::Models::FileUploadParams::Transformation::Post::Transformation} for
435
+ # more details.
436
+ #
437
+ # @param value [String] Transformation string (e.g. `w-200,h-200`).
438
+ #
439
+ # @param type [Symbol, :transformation] Transformation type.
440
+ end
441
+
442
+ class GifToVideo < Imagekitio::Internal::Type::BaseModel
443
+ # @!attribute type
444
+ # Converts an animated GIF into an MP4.
445
+ #
446
+ # @return [Symbol, :"gif-to-video"]
447
+ required :type, const: :"gif-to-video"
448
+
449
+ # @!attribute value
450
+ # Optional transformation string to apply to the output video.
451
+ # **Example**: `q-80`
452
+ #
453
+ # @return [String, nil]
454
+ optional :value, String
455
+
456
+ # @!method initialize(value: nil, type: :"gif-to-video")
457
+ # Some parameter documentations has been truncated, see
458
+ # {Imagekitio::Models::FileUploadParams::Transformation::Post::GifToVideo} for
459
+ # more details.
460
+ #
461
+ # @param value [String] Optional transformation string to apply to the output video.
462
+ #
463
+ # @param type [Symbol, :"gif-to-video"] Converts an animated GIF into an MP4.
464
+ end
465
+
466
+ class Thumbnail < Imagekitio::Internal::Type::BaseModel
467
+ # @!attribute type
468
+ # Generates a thumbnail image.
469
+ #
470
+ # @return [Symbol, :thumbnail]
471
+ required :type, const: :thumbnail
472
+
473
+ # @!attribute value
474
+ # Optional transformation string.
475
+ # **Example**: `w-150,h-150`
476
+ #
477
+ # @return [String, nil]
478
+ optional :value, String
479
+
480
+ # @!method initialize(value: nil, type: :thumbnail)
481
+ # Some parameter documentations has been truncated, see
482
+ # {Imagekitio::Models::FileUploadParams::Transformation::Post::Thumbnail} for more
483
+ # details.
484
+ #
485
+ # @param value [String] Optional transformation string.
486
+ #
487
+ # @param type [Symbol, :thumbnail] Generates a thumbnail image.
488
+ end
489
+
490
+ class Abs < Imagekitio::Internal::Type::BaseModel
491
+ # @!attribute protocol
492
+ # Streaming protocol to use (`hls` or `dash`).
493
+ #
494
+ # @return [Symbol, Imagekitio::Models::FileUploadParams::Transformation::Post::Abs::Protocol]
495
+ required :protocol, enum: -> { Imagekitio::FileUploadParams::Transformation::Post::Abs::Protocol }
496
+
497
+ # @!attribute type
498
+ # Adaptive Bitrate Streaming (ABS) setup.
499
+ #
500
+ # @return [Symbol, :abs]
501
+ required :type, const: :abs
502
+
503
+ # @!attribute value
504
+ # List of different representations you want to create separated by an underscore.
505
+ #
506
+ # @return [String]
507
+ required :value, String
508
+
509
+ # @!method initialize(protocol:, value:, type: :abs)
510
+ # Some parameter documentations has been truncated, see
511
+ # {Imagekitio::Models::FileUploadParams::Transformation::Post::Abs} for more
512
+ # details.
513
+ #
514
+ # @param protocol [Symbol, Imagekitio::Models::FileUploadParams::Transformation::Post::Abs::Protocol] Streaming protocol to use (`hls` or `dash`).
515
+ #
516
+ # @param value [String] List of different representations you want to create separated by an underscore.
517
+ #
518
+ # @param type [Symbol, :abs] Adaptive Bitrate Streaming (ABS) setup.
519
+
520
+ # Streaming protocol to use (`hls` or `dash`).
521
+ #
522
+ # @see Imagekitio::Models::FileUploadParams::Transformation::Post::Abs#protocol
523
+ module Protocol
524
+ extend Imagekitio::Internal::Type::Enum
525
+
526
+ HLS = :hls
527
+ DASH = :dash
528
+
529
+ # @!method self.values
530
+ # @return [Array<Symbol>]
531
+ end
532
+ end
533
+
534
+ # @!method self.variants
535
+ # @return [Array(Imagekitio::Models::FileUploadParams::Transformation::Post::Transformation, Imagekitio::Models::FileUploadParams::Transformation::Post::GifToVideo, Imagekitio::Models::FileUploadParams::Transformation::Post::Thumbnail, Imagekitio::Models::FileUploadParams::Transformation::Post::Abs)]
536
+ end
537
+ end
538
+ end
539
+ end
540
+ end