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