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,861 @@
1
+ # typed: strong
2
+
3
+ module Imagekitio
4
+ module Models
5
+ module Beta
6
+ module V2
7
+ class FileUploadParams < Imagekitio::Internal::Type::BaseModel
8
+ extend Imagekitio::Internal::Type::RequestParameters::Converter
9
+ include Imagekitio::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ Imagekitio::Beta::V2::FileUploadParams,
15
+ Imagekitio::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ # The API accepts any of the following:
20
+ #
21
+ # - **Binary data** – send the raw bytes as `multipart/form-data`.
22
+ # - **HTTP / HTTPS URL** – a publicly reachable URL that ImageKit’s servers can
23
+ # fetch.
24
+ # - **Base64 string** – the file encoded as a Base64 data URI or plain Base64.
25
+ #
26
+ # When supplying a URL, the server must receive the response headers within 8
27
+ # seconds; otherwise the request fails with 400 Bad Request.
28
+ sig { returns(Imagekitio::Internal::FileInput) }
29
+ attr_accessor :file
30
+
31
+ # The name with which the file has to be uploaded.
32
+ sig { returns(String) }
33
+ attr_accessor :file_name
34
+
35
+ # This is the client-generated JSON Web Token (JWT). The ImageKit.io server uses
36
+ # it to authenticate and check that the upload request parameters have not been
37
+ # tampered with after the token has been generated. Learn how to create the token
38
+ # on the page below. This field is only required for authentication when uploading
39
+ # a file from the client side.
40
+ #
41
+ # **Note**: Sending a JWT that has been used in the past will result in a
42
+ # validation error. Even if your previous request resulted in an error, you should
43
+ # always send a new token.
44
+ #
45
+ # **⚠️Warning**: JWT must be generated on the server-side because it is generated
46
+ # using your account's private API key. This field is required for authentication
47
+ # when uploading a file from the client-side.
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :token
50
+
51
+ sig { params(token: String).void }
52
+ attr_writer :token
53
+
54
+ # Server-side checks to run on the asset. Read more about
55
+ # [Upload API checks](/docs/api-reference/upload-file/upload-file-v2#upload-api-checks).
56
+ sig { returns(T.nilable(String)) }
57
+ attr_reader :checks
58
+
59
+ sig { params(checks: String).void }
60
+ attr_writer :checks
61
+
62
+ # Define an important area in the image. This is only relevant for image type
63
+ # files.
64
+ #
65
+ # - To be passed as a string with the x and y coordinates of the top-left corner,
66
+ # and width and height of the area of interest in the format `x,y,width,height`.
67
+ # For example - `10,10,100,100`
68
+ # - Can be used with fo-customtransformation.
69
+ # - If this field is not specified and the file is overwritten, then
70
+ # customCoordinates will be removed.
71
+ sig { returns(T.nilable(String)) }
72
+ attr_reader :custom_coordinates
73
+
74
+ sig { params(custom_coordinates: String).void }
75
+ attr_writer :custom_coordinates
76
+
77
+ # JSON key-value pairs to associate with the asset. Create the custom metadata
78
+ # fields before setting these values.
79
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
80
+ attr_reader :custom_metadata
81
+
82
+ sig { params(custom_metadata: T::Hash[Symbol, T.anything]).void }
83
+ attr_writer :custom_metadata
84
+
85
+ # Optional text to describe the contents of the file.
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :description
88
+
89
+ sig { params(description: String).void }
90
+ attr_writer :description
91
+
92
+ # Array of extensions to be applied to the asset. Each extension can be configured
93
+ # with specific parameters based on the extension type.
94
+ sig do
95
+ returns(
96
+ T.nilable(
97
+ T::Array[
98
+ T.any(
99
+ Imagekitio::ExtensionItem::RemoveBg,
100
+ Imagekitio::ExtensionItem::AIAutoDescription,
101
+ Imagekitio::ExtensionItem::AutoTaggingExtension
102
+ )
103
+ ]
104
+ )
105
+ )
106
+ end
107
+ attr_reader :extensions
108
+
109
+ sig do
110
+ params(
111
+ extensions:
112
+ T::Array[
113
+ T.any(
114
+ Imagekitio::ExtensionItem::RemoveBg::OrHash,
115
+ Imagekitio::ExtensionItem::AIAutoDescription::OrHash,
116
+ Imagekitio::ExtensionItem::AutoTaggingExtension::OrHash
117
+ )
118
+ ]
119
+ ).void
120
+ end
121
+ attr_writer :extensions
122
+
123
+ # The folder path in which the image has to be uploaded. If the folder(s) didn't
124
+ # exist before, a new folder(s) is created. Using multiple `/` creates a nested
125
+ # folder.
126
+ sig { returns(T.nilable(String)) }
127
+ attr_reader :folder
128
+
129
+ sig { params(folder: String).void }
130
+ attr_writer :folder
131
+
132
+ # Whether to mark the file as private or not.
133
+ #
134
+ # If `true`, the file is marked as private and is accessible only using named
135
+ # transformation or signed URL.
136
+ sig { returns(T.nilable(T::Boolean)) }
137
+ attr_reader :is_private_file
138
+
139
+ sig { params(is_private_file: T::Boolean).void }
140
+ attr_writer :is_private_file
141
+
142
+ # Whether to upload file as published or not.
143
+ #
144
+ # If `false`, the file is marked as unpublished, which restricts access to the
145
+ # file only via the media library. Files in draft or unpublished state can only be
146
+ # publicly accessed after being published.
147
+ #
148
+ # The option to upload in draft state is only available in custom enterprise
149
+ # pricing plans.
150
+ sig { returns(T.nilable(T::Boolean)) }
151
+ attr_reader :is_published
152
+
153
+ sig { params(is_published: T::Boolean).void }
154
+ attr_writer :is_published
155
+
156
+ # If set to `true` and a file already exists at the exact location, its AITags
157
+ # will be removed. Set `overwriteAITags` to `false` to preserve AITags.
158
+ sig { returns(T.nilable(T::Boolean)) }
159
+ attr_reader :overwrite_ai_tags
160
+
161
+ sig { params(overwrite_ai_tags: T::Boolean).void }
162
+ attr_writer :overwrite_ai_tags
163
+
164
+ # If the request does not have `customMetadata`, and a file already exists at the
165
+ # exact location, existing customMetadata will be removed.
166
+ sig { returns(T.nilable(T::Boolean)) }
167
+ attr_reader :overwrite_custom_metadata
168
+
169
+ sig { params(overwrite_custom_metadata: T::Boolean).void }
170
+ attr_writer :overwrite_custom_metadata
171
+
172
+ # If `false` and `useUniqueFileName` is also `false`, and a file already exists at
173
+ # the exact location, upload API will return an error immediately.
174
+ sig { returns(T.nilable(T::Boolean)) }
175
+ attr_reader :overwrite_file
176
+
177
+ sig { params(overwrite_file: T::Boolean).void }
178
+ attr_writer :overwrite_file
179
+
180
+ # If the request does not have `tags`, and a file already exists at the exact
181
+ # location, existing tags will be removed.
182
+ sig { returns(T.nilable(T::Boolean)) }
183
+ attr_reader :overwrite_tags
184
+
185
+ sig { params(overwrite_tags: T::Boolean).void }
186
+ attr_writer :overwrite_tags
187
+
188
+ # Array of response field keys to include in the API response body.
189
+ sig do
190
+ returns(
191
+ T.nilable(
192
+ T::Array[
193
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::OrSymbol
194
+ ]
195
+ )
196
+ )
197
+ end
198
+ attr_reader :response_fields
199
+
200
+ sig do
201
+ params(
202
+ response_fields:
203
+ T::Array[
204
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::OrSymbol
205
+ ]
206
+ ).void
207
+ end
208
+ attr_writer :response_fields
209
+
210
+ # Set the tags while uploading the file. Provide an array of tag strings (e.g.
211
+ # `["tag1", "tag2", "tag3"]`). The combined length of all tag characters must not
212
+ # exceed 500, and the `%` character is not allowed. If this field is not specified
213
+ # and the file is overwritten, the existing tags will be removed.
214
+ sig { returns(T.nilable(T::Array[String])) }
215
+ attr_reader :tags
216
+
217
+ sig { params(tags: T::Array[String]).void }
218
+ attr_writer :tags
219
+
220
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
221
+ #
222
+ # - `pre` — applied before the file is uploaded to the Media Library.
223
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
224
+ # resize, compress).
225
+ #
226
+ # - `post` — applied immediately after upload.
227
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
228
+ # in advance, so they're ready for delivery without delay.
229
+ #
230
+ # You can mix and match any combination of post-processing types.
231
+ sig do
232
+ returns(
233
+ T.nilable(Imagekitio::Beta::V2::FileUploadParams::Transformation)
234
+ )
235
+ end
236
+ attr_reader :transformation
237
+
238
+ sig do
239
+ params(
240
+ transformation:
241
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::OrHash
242
+ ).void
243
+ end
244
+ attr_writer :transformation
245
+
246
+ # Whether to use a unique filename for this file or not.
247
+ #
248
+ # If `true`, ImageKit.io will add a unique suffix to the filename parameter to get
249
+ # a unique filename.
250
+ #
251
+ # If `false`, then the image is uploaded with the provided filename parameter, and
252
+ # any existing file with the same name is replaced.
253
+ sig { returns(T.nilable(T::Boolean)) }
254
+ attr_reader :use_unique_file_name
255
+
256
+ sig { params(use_unique_file_name: T::Boolean).void }
257
+ attr_writer :use_unique_file_name
258
+
259
+ # The final status of extensions after they have completed execution will be
260
+ # delivered to this endpoint as a POST request.
261
+ # [Learn more](/docs/api-reference/digital-asset-management-dam/managing-assets/update-file-details#webhook-payload-structure)
262
+ # about the webhook payload structure.
263
+ sig { returns(T.nilable(String)) }
264
+ attr_reader :webhook_url
265
+
266
+ sig { params(webhook_url: String).void }
267
+ attr_writer :webhook_url
268
+
269
+ sig do
270
+ params(
271
+ file: Imagekitio::Internal::FileInput,
272
+ file_name: String,
273
+ token: String,
274
+ checks: String,
275
+ custom_coordinates: String,
276
+ custom_metadata: T::Hash[Symbol, T.anything],
277
+ description: String,
278
+ extensions:
279
+ T::Array[
280
+ T.any(
281
+ Imagekitio::ExtensionItem::RemoveBg::OrHash,
282
+ Imagekitio::ExtensionItem::AIAutoDescription::OrHash,
283
+ Imagekitio::ExtensionItem::AutoTaggingExtension::OrHash
284
+ )
285
+ ],
286
+ folder: String,
287
+ is_private_file: T::Boolean,
288
+ is_published: T::Boolean,
289
+ overwrite_ai_tags: T::Boolean,
290
+ overwrite_custom_metadata: T::Boolean,
291
+ overwrite_file: T::Boolean,
292
+ overwrite_tags: T::Boolean,
293
+ response_fields:
294
+ T::Array[
295
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::OrSymbol
296
+ ],
297
+ tags: T::Array[String],
298
+ transformation:
299
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::OrHash,
300
+ use_unique_file_name: T::Boolean,
301
+ webhook_url: String,
302
+ request_options: Imagekitio::RequestOptions::OrHash
303
+ ).returns(T.attached_class)
304
+ end
305
+ def self.new(
306
+ # The API accepts any of the following:
307
+ #
308
+ # - **Binary data** – send the raw bytes as `multipart/form-data`.
309
+ # - **HTTP / HTTPS URL** – a publicly reachable URL that ImageKit’s servers can
310
+ # fetch.
311
+ # - **Base64 string** – the file encoded as a Base64 data URI or plain Base64.
312
+ #
313
+ # When supplying a URL, the server must receive the response headers within 8
314
+ # seconds; otherwise the request fails with 400 Bad Request.
315
+ file:,
316
+ # The name with which the file has to be uploaded.
317
+ file_name:,
318
+ # This is the client-generated JSON Web Token (JWT). The ImageKit.io server uses
319
+ # it to authenticate and check that the upload request parameters have not been
320
+ # tampered with after the token has been generated. Learn how to create the token
321
+ # on the page below. This field is only required for authentication when uploading
322
+ # a file from the client side.
323
+ #
324
+ # **Note**: Sending a JWT that has been used in the past will result in a
325
+ # validation error. Even if your previous request resulted in an error, you should
326
+ # always send a new token.
327
+ #
328
+ # **⚠️Warning**: JWT must be generated on the server-side because it is generated
329
+ # using your account's private API key. This field is required for authentication
330
+ # when uploading a file from the client-side.
331
+ token: nil,
332
+ # Server-side checks to run on the asset. Read more about
333
+ # [Upload API checks](/docs/api-reference/upload-file/upload-file-v2#upload-api-checks).
334
+ checks: nil,
335
+ # Define an important area in the image. This is only relevant for image type
336
+ # files.
337
+ #
338
+ # - To be passed as a string with the x and y coordinates of the top-left corner,
339
+ # and width and height of the area of interest in the format `x,y,width,height`.
340
+ # For example - `10,10,100,100`
341
+ # - Can be used with fo-customtransformation.
342
+ # - If this field is not specified and the file is overwritten, then
343
+ # customCoordinates will be removed.
344
+ custom_coordinates: nil,
345
+ # JSON key-value pairs to associate with the asset. Create the custom metadata
346
+ # fields before setting these values.
347
+ custom_metadata: nil,
348
+ # Optional text to describe the contents of the file.
349
+ description: nil,
350
+ # Array of extensions to be applied to the asset. Each extension can be configured
351
+ # with specific parameters based on the extension type.
352
+ extensions: nil,
353
+ # The folder path in which the image has to be uploaded. If the folder(s) didn't
354
+ # exist before, a new folder(s) is created. Using multiple `/` creates a nested
355
+ # folder.
356
+ folder: nil,
357
+ # Whether to mark the file as private or not.
358
+ #
359
+ # If `true`, the file is marked as private and is accessible only using named
360
+ # transformation or signed URL.
361
+ is_private_file: nil,
362
+ # Whether to upload file as published or not.
363
+ #
364
+ # If `false`, the file is marked as unpublished, which restricts access to the
365
+ # file only via the media library. Files in draft or unpublished state can only be
366
+ # publicly accessed after being published.
367
+ #
368
+ # The option to upload in draft state is only available in custom enterprise
369
+ # pricing plans.
370
+ is_published: nil,
371
+ # If set to `true` and a file already exists at the exact location, its AITags
372
+ # will be removed. Set `overwriteAITags` to `false` to preserve AITags.
373
+ overwrite_ai_tags: nil,
374
+ # If the request does not have `customMetadata`, and a file already exists at the
375
+ # exact location, existing customMetadata will be removed.
376
+ overwrite_custom_metadata: nil,
377
+ # If `false` and `useUniqueFileName` is also `false`, and a file already exists at
378
+ # the exact location, upload API will return an error immediately.
379
+ overwrite_file: nil,
380
+ # If the request does not have `tags`, and a file already exists at the exact
381
+ # location, existing tags will be removed.
382
+ overwrite_tags: nil,
383
+ # Array of response field keys to include in the API response body.
384
+ response_fields: nil,
385
+ # Set the tags while uploading the file. Provide an array of tag strings (e.g.
386
+ # `["tag1", "tag2", "tag3"]`). The combined length of all tag characters must not
387
+ # exceed 500, and the `%` character is not allowed. If this field is not specified
388
+ # and the file is overwritten, the existing tags will be removed.
389
+ tags: nil,
390
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
391
+ #
392
+ # - `pre` — applied before the file is uploaded to the Media Library.
393
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
394
+ # resize, compress).
395
+ #
396
+ # - `post` — applied immediately after upload.
397
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
398
+ # in advance, so they're ready for delivery without delay.
399
+ #
400
+ # You can mix and match any combination of post-processing types.
401
+ transformation: nil,
402
+ # Whether to use a unique filename for this file or not.
403
+ #
404
+ # If `true`, ImageKit.io will add a unique suffix to the filename parameter to get
405
+ # a unique filename.
406
+ #
407
+ # If `false`, then the image is uploaded with the provided filename parameter, and
408
+ # any existing file with the same name is replaced.
409
+ use_unique_file_name: nil,
410
+ # The final status of extensions after they have completed execution will be
411
+ # delivered to this endpoint as a POST request.
412
+ # [Learn more](/docs/api-reference/digital-asset-management-dam/managing-assets/update-file-details#webhook-payload-structure)
413
+ # about the webhook payload structure.
414
+ webhook_url: nil,
415
+ request_options: {}
416
+ )
417
+ end
418
+
419
+ sig do
420
+ override.returns(
421
+ {
422
+ file: Imagekitio::Internal::FileInput,
423
+ file_name: String,
424
+ token: String,
425
+ checks: String,
426
+ custom_coordinates: String,
427
+ custom_metadata: T::Hash[Symbol, T.anything],
428
+ description: String,
429
+ extensions:
430
+ T::Array[
431
+ T.any(
432
+ Imagekitio::ExtensionItem::RemoveBg,
433
+ Imagekitio::ExtensionItem::AIAutoDescription,
434
+ Imagekitio::ExtensionItem::AutoTaggingExtension
435
+ )
436
+ ],
437
+ folder: String,
438
+ is_private_file: T::Boolean,
439
+ is_published: T::Boolean,
440
+ overwrite_ai_tags: T::Boolean,
441
+ overwrite_custom_metadata: T::Boolean,
442
+ overwrite_file: T::Boolean,
443
+ overwrite_tags: T::Boolean,
444
+ response_fields:
445
+ T::Array[
446
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::OrSymbol
447
+ ],
448
+ tags: T::Array[String],
449
+ transformation:
450
+ Imagekitio::Beta::V2::FileUploadParams::Transformation,
451
+ use_unique_file_name: T::Boolean,
452
+ webhook_url: String,
453
+ request_options: Imagekitio::RequestOptions
454
+ }
455
+ )
456
+ end
457
+ def to_hash
458
+ end
459
+
460
+ module ResponseField
461
+ extend Imagekitio::Internal::Type::Enum
462
+
463
+ TaggedSymbol =
464
+ T.type_alias do
465
+ T.all(
466
+ Symbol,
467
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField
468
+ )
469
+ end
470
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
471
+
472
+ TAGS =
473
+ T.let(
474
+ :tags,
475
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
476
+ )
477
+ CUSTOM_COORDINATES =
478
+ T.let(
479
+ :customCoordinates,
480
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
481
+ )
482
+ IS_PRIVATE_FILE =
483
+ T.let(
484
+ :isPrivateFile,
485
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
486
+ )
487
+ EMBEDDED_METADATA =
488
+ T.let(
489
+ :embeddedMetadata,
490
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
491
+ )
492
+ IS_PUBLISHED =
493
+ T.let(
494
+ :isPublished,
495
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
496
+ )
497
+ CUSTOM_METADATA =
498
+ T.let(
499
+ :customMetadata,
500
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
501
+ )
502
+ METADATA =
503
+ T.let(
504
+ :metadata,
505
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
506
+ )
507
+ SELECTED_FIELDS_SCHEMA =
508
+ T.let(
509
+ :selectedFieldsSchema,
510
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
511
+ )
512
+
513
+ sig do
514
+ override.returns(
515
+ T::Array[
516
+ Imagekitio::Beta::V2::FileUploadParams::ResponseField::TaggedSymbol
517
+ ]
518
+ )
519
+ end
520
+ def self.values
521
+ end
522
+ end
523
+
524
+ class Transformation < Imagekitio::Internal::Type::BaseModel
525
+ OrHash =
526
+ T.type_alias do
527
+ T.any(
528
+ Imagekitio::Beta::V2::FileUploadParams::Transformation,
529
+ Imagekitio::Internal::AnyHash
530
+ )
531
+ end
532
+
533
+ # List of transformations to apply _after_ the file is uploaded.
534
+ # Each item must match one of the following types: `transformation`,
535
+ # `gif-to-video`, `thumbnail`, `abs`.
536
+ sig do
537
+ returns(
538
+ T.nilable(
539
+ T::Array[
540
+ T.any(
541
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation,
542
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo,
543
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail,
544
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs
545
+ )
546
+ ]
547
+ )
548
+ )
549
+ end
550
+ attr_reader :post
551
+
552
+ sig do
553
+ params(
554
+ post:
555
+ T::Array[
556
+ T.any(
557
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation::OrHash,
558
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo::OrHash,
559
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail::OrHash,
560
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::OrHash
561
+ )
562
+ ]
563
+ ).void
564
+ end
565
+ attr_writer :post
566
+
567
+ # Transformation string to apply before uploading the file to the Media Library.
568
+ # Useful for optimizing files at ingestion.
569
+ sig { returns(T.nilable(String)) }
570
+ attr_reader :pre
571
+
572
+ sig { params(pre: String).void }
573
+ attr_writer :pre
574
+
575
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
576
+ #
577
+ # - `pre` — applied before the file is uploaded to the Media Library.
578
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
579
+ # resize, compress).
580
+ #
581
+ # - `post` — applied immediately after upload.
582
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
583
+ # in advance, so they're ready for delivery without delay.
584
+ #
585
+ # You can mix and match any combination of post-processing types.
586
+ sig do
587
+ params(
588
+ post:
589
+ T::Array[
590
+ T.any(
591
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation::OrHash,
592
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo::OrHash,
593
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail::OrHash,
594
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::OrHash
595
+ )
596
+ ],
597
+ pre: String
598
+ ).returns(T.attached_class)
599
+ end
600
+ def self.new(
601
+ # List of transformations to apply _after_ the file is uploaded.
602
+ # Each item must match one of the following types: `transformation`,
603
+ # `gif-to-video`, `thumbnail`, `abs`.
604
+ post: nil,
605
+ # Transformation string to apply before uploading the file to the Media Library.
606
+ # Useful for optimizing files at ingestion.
607
+ pre: nil
608
+ )
609
+ end
610
+
611
+ sig do
612
+ override.returns(
613
+ {
614
+ post:
615
+ T::Array[
616
+ T.any(
617
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation,
618
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo,
619
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail,
620
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs
621
+ )
622
+ ],
623
+ pre: String
624
+ }
625
+ )
626
+ end
627
+ def to_hash
628
+ end
629
+
630
+ module Post
631
+ extend Imagekitio::Internal::Type::Union
632
+
633
+ Variants =
634
+ T.type_alias do
635
+ T.any(
636
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation,
637
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo,
638
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail,
639
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs
640
+ )
641
+ end
642
+
643
+ class Transformation < Imagekitio::Internal::Type::BaseModel
644
+ OrHash =
645
+ T.type_alias do
646
+ T.any(
647
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation,
648
+ Imagekitio::Internal::AnyHash
649
+ )
650
+ end
651
+
652
+ # Transformation type.
653
+ sig { returns(Symbol) }
654
+ attr_accessor :type
655
+
656
+ # Transformation string (e.g. `w-200,h-200`).
657
+ # Same syntax as ImageKit URL-based transformations.
658
+ sig { returns(String) }
659
+ attr_accessor :value
660
+
661
+ sig do
662
+ params(value: String, type: Symbol).returns(T.attached_class)
663
+ end
664
+ def self.new(
665
+ # Transformation string (e.g. `w-200,h-200`).
666
+ # Same syntax as ImageKit URL-based transformations.
667
+ value:,
668
+ # Transformation type.
669
+ type: :transformation
670
+ )
671
+ end
672
+
673
+ sig { override.returns({ type: Symbol, value: String }) }
674
+ def to_hash
675
+ end
676
+ end
677
+
678
+ class GifToVideo < Imagekitio::Internal::Type::BaseModel
679
+ OrHash =
680
+ T.type_alias do
681
+ T.any(
682
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo,
683
+ Imagekitio::Internal::AnyHash
684
+ )
685
+ end
686
+
687
+ # Converts an animated GIF into an MP4.
688
+ sig { returns(Symbol) }
689
+ attr_accessor :type
690
+
691
+ # Optional transformation string to apply to the output video.
692
+ # **Example**: `q-80`
693
+ sig { returns(T.nilable(String)) }
694
+ attr_reader :value
695
+
696
+ sig { params(value: String).void }
697
+ attr_writer :value
698
+
699
+ sig do
700
+ params(value: String, type: Symbol).returns(T.attached_class)
701
+ end
702
+ def self.new(
703
+ # Optional transformation string to apply to the output video.
704
+ # **Example**: `q-80`
705
+ value: nil,
706
+ # Converts an animated GIF into an MP4.
707
+ type: :"gif-to-video"
708
+ )
709
+ end
710
+
711
+ sig { override.returns({ type: Symbol, value: String }) }
712
+ def to_hash
713
+ end
714
+ end
715
+
716
+ class Thumbnail < Imagekitio::Internal::Type::BaseModel
717
+ OrHash =
718
+ T.type_alias do
719
+ T.any(
720
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail,
721
+ Imagekitio::Internal::AnyHash
722
+ )
723
+ end
724
+
725
+ # Generates a thumbnail image.
726
+ sig { returns(Symbol) }
727
+ attr_accessor :type
728
+
729
+ # Optional transformation string.
730
+ # **Example**: `w-150,h-150`
731
+ sig { returns(T.nilable(String)) }
732
+ attr_reader :value
733
+
734
+ sig { params(value: String).void }
735
+ attr_writer :value
736
+
737
+ sig do
738
+ params(value: String, type: Symbol).returns(T.attached_class)
739
+ end
740
+ def self.new(
741
+ # Optional transformation string.
742
+ # **Example**: `w-150,h-150`
743
+ value: nil,
744
+ # Generates a thumbnail image.
745
+ type: :thumbnail
746
+ )
747
+ end
748
+
749
+ sig { override.returns({ type: Symbol, value: String }) }
750
+ def to_hash
751
+ end
752
+ end
753
+
754
+ class Abs < Imagekitio::Internal::Type::BaseModel
755
+ OrHash =
756
+ T.type_alias do
757
+ T.any(
758
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs,
759
+ Imagekitio::Internal::AnyHash
760
+ )
761
+ end
762
+
763
+ # Streaming protocol to use (`hls` or `dash`).
764
+ sig do
765
+ returns(
766
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol::OrSymbol
767
+ )
768
+ end
769
+ attr_accessor :protocol
770
+
771
+ # Adaptive Bitrate Streaming (ABS) setup.
772
+ sig { returns(Symbol) }
773
+ attr_accessor :type
774
+
775
+ # List of different representations you want to create separated by an underscore.
776
+ sig { returns(String) }
777
+ attr_accessor :value
778
+
779
+ sig do
780
+ params(
781
+ protocol:
782
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol::OrSymbol,
783
+ value: String,
784
+ type: Symbol
785
+ ).returns(T.attached_class)
786
+ end
787
+ def self.new(
788
+ # Streaming protocol to use (`hls` or `dash`).
789
+ protocol:,
790
+ # List of different representations you want to create separated by an underscore.
791
+ value:,
792
+ # Adaptive Bitrate Streaming (ABS) setup.
793
+ type: :abs
794
+ )
795
+ end
796
+
797
+ sig do
798
+ override.returns(
799
+ {
800
+ protocol:
801
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol::OrSymbol,
802
+ type: Symbol,
803
+ value: String
804
+ }
805
+ )
806
+ end
807
+ def to_hash
808
+ end
809
+
810
+ # Streaming protocol to use (`hls` or `dash`).
811
+ module Protocol
812
+ extend Imagekitio::Internal::Type::Enum
813
+
814
+ TaggedSymbol =
815
+ T.type_alias do
816
+ T.all(
817
+ Symbol,
818
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol
819
+ )
820
+ end
821
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
822
+
823
+ HLS =
824
+ T.let(
825
+ :hls,
826
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol::TaggedSymbol
827
+ )
828
+ DASH =
829
+ T.let(
830
+ :dash,
831
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol::TaggedSymbol
832
+ )
833
+
834
+ sig do
835
+ override.returns(
836
+ T::Array[
837
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol::TaggedSymbol
838
+ ]
839
+ )
840
+ end
841
+ def self.values
842
+ end
843
+ end
844
+ end
845
+
846
+ sig do
847
+ override.returns(
848
+ T::Array[
849
+ Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Variants
850
+ ]
851
+ )
852
+ end
853
+ def self.variants
854
+ end
855
+ end
856
+ end
857
+ end
858
+ end
859
+ end
860
+ end
861
+ end