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,510 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagekitio
4
+ module Models
5
+ module Beta
6
+ module V2
7
+ # @see Imagekitio::Resources::Beta::V2::Files#upload
8
+ class FileUploadParams < Imagekitio::Internal::Type::BaseModel
9
+ extend Imagekitio::Internal::Type::RequestParameters::Converter
10
+ include Imagekitio::Internal::Type::RequestParameters
11
+
12
+ # Serialize upload options to handle proper formatting for ImageKit backend API.
13
+ # Special cases handled:
14
+ # - tags: converted to comma-separated string
15
+ # - responseFields: converted to comma-separated string
16
+ # - extensions: JSON stringified
17
+ # - customMetadata: JSON stringified
18
+ # - transformation: JSON stringified
19
+ #
20
+ # @api private
21
+ #
22
+ # @param params [Object]
23
+ #
24
+ # @return [Array(Object, Hash{Symbol=>Object})]
25
+ def self.dump_request(params)
26
+ state = {can_retry: true}
27
+ case (dumped = dump(params, state: state))
28
+ in Hash
29
+ serialized = serialize_upload_options(dumped)
30
+ options = Imagekitio::Internal::Util.coerce_hash!(serialized[:request_options]).to_h
31
+ request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
32
+ [serialized.except(:request_options), request_options]
33
+ else
34
+ [dumped, nil]
35
+ end
36
+ end
37
+
38
+ # @api private
39
+ #
40
+ # @param upload_options [Hash{Symbol=>Object}]
41
+ #
42
+ # @return [Hash{Symbol=>Object}]
43
+ def self.serialize_upload_options(upload_options)
44
+ serialized = {}
45
+
46
+ upload_options.each do |key, value|
47
+ # Skip nil values
48
+ if value.nil?
49
+ serialized[key] = value
50
+ next
51
+ end
52
+
53
+ serialized[key] = case key
54
+ when :tags, :responseFields
55
+ # Tags and response fields should be comma-separated strings
56
+ value.is_a?(Array) ? value.join(",") : value
57
+ when :extensions
58
+ # Extensions should be JSON stringified
59
+ value.is_a?(Array) ? JSON.generate(value) : value
60
+ when :customMetadata
61
+ # Custom metadata should be JSON stringified
62
+ value.is_a?(Hash) ? JSON.generate(value) : value
63
+ when :transformation
64
+ # Transformation should be JSON stringified
65
+ value.is_a?(Hash) || value.respond_to?(:to_h) ? JSON.generate(value) : value
66
+ else
67
+ value
68
+ end
69
+ end
70
+
71
+ serialized
72
+ end
73
+
74
+ # @!attribute file
75
+ # The API accepts any of the following:
76
+ #
77
+ # - **Binary data** – send the raw bytes as `multipart/form-data`.
78
+ # - **HTTP / HTTPS URL** – a publicly reachable URL that ImageKit’s servers can
79
+ # fetch.
80
+ # - **Base64 string** – the file encoded as a Base64 data URI or plain Base64.
81
+ #
82
+ # When supplying a URL, the server must receive the response headers within 8
83
+ # seconds; otherwise the request fails with 400 Bad Request.
84
+ #
85
+ # @return [Pathname, StringIO, IO, String, Imagekitio::FilePart]
86
+ required :file, Imagekitio::Internal::Type::FileInput
87
+
88
+ # @!attribute file_name
89
+ # The name with which the file has to be uploaded.
90
+ #
91
+ # @return [String]
92
+ required :file_name, String, api_name: :fileName
93
+
94
+ # @!attribute token
95
+ # This is the client-generated JSON Web Token (JWT). The ImageKit.io server uses
96
+ # it to authenticate and check that the upload request parameters have not been
97
+ # tampered with after the token has been generated. Learn how to create the token
98
+ # on the page below. This field is only required for authentication when uploading
99
+ # a file from the client side.
100
+ #
101
+ # **Note**: Sending a JWT that has been used in the past will result in a
102
+ # validation error. Even if your previous request resulted in an error, you should
103
+ # always send a new token.
104
+ #
105
+ # **⚠️Warning**: JWT must be generated on the server-side because it is generated
106
+ # using your account's private API key. This field is required for authentication
107
+ # when uploading a file from the client-side.
108
+ #
109
+ # @return [String, nil]
110
+ optional :token, String
111
+
112
+ # @!attribute checks
113
+ # Server-side checks to run on the asset. Read more about
114
+ # [Upload API checks](/docs/api-reference/upload-file/upload-file-v2#upload-api-checks).
115
+ #
116
+ # @return [String, nil]
117
+ optional :checks, String
118
+
119
+ # @!attribute custom_coordinates
120
+ # Define an important area in the image. This is only relevant for image type
121
+ # files.
122
+ #
123
+ # - To be passed as a string with the x and y coordinates of the top-left corner,
124
+ # and width and height of the area of interest in the format `x,y,width,height`.
125
+ # For example - `10,10,100,100`
126
+ # - Can be used with fo-customtransformation.
127
+ # - If this field is not specified and the file is overwritten, then
128
+ # customCoordinates will be removed.
129
+ #
130
+ # @return [String, nil]
131
+ optional :custom_coordinates, String, api_name: :customCoordinates
132
+
133
+ # @!attribute custom_metadata
134
+ # JSON key-value pairs to associate with the asset. Create the custom metadata
135
+ # fields before setting these values.
136
+ #
137
+ # @return [Hash{Symbol=>Object}, nil]
138
+ optional :custom_metadata,
139
+ Imagekitio::Internal::Type::HashOf[Imagekitio::Internal::Type::Unknown],
140
+ api_name: :customMetadata
141
+
142
+ # @!attribute description
143
+ # Optional text to describe the contents of the file.
144
+ #
145
+ # @return [String, nil]
146
+ optional :description, String
147
+
148
+ # @!attribute extensions
149
+ # Array of extensions to be applied to the asset. Each extension can be configured
150
+ # with specific parameters based on the extension type.
151
+ #
152
+ # @return [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>, nil]
153
+ optional :extensions, -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem] }
154
+
155
+ # @!attribute folder
156
+ # The folder path in which the image has to be uploaded. If the folder(s) didn't
157
+ # exist before, a new folder(s) is created. Using multiple `/` creates a nested
158
+ # folder.
159
+ #
160
+ # @return [String, nil]
161
+ optional :folder, String
162
+
163
+ # @!attribute is_private_file
164
+ # Whether to mark the file as private or not.
165
+ #
166
+ # If `true`, the file is marked as private and is accessible only using named
167
+ # transformation or signed URL.
168
+ #
169
+ # @return [Boolean, nil]
170
+ optional :is_private_file, Imagekitio::Internal::Type::Boolean, api_name: :isPrivateFile
171
+
172
+ # @!attribute is_published
173
+ # Whether to upload file as published or not.
174
+ #
175
+ # If `false`, the file is marked as unpublished, which restricts access to the
176
+ # file only via the media library. Files in draft or unpublished state can only be
177
+ # publicly accessed after being published.
178
+ #
179
+ # The option to upload in draft state is only available in custom enterprise
180
+ # pricing plans.
181
+ #
182
+ # @return [Boolean, nil]
183
+ optional :is_published, Imagekitio::Internal::Type::Boolean, api_name: :isPublished
184
+
185
+ # @!attribute overwrite_ai_tags
186
+ # If set to `true` and a file already exists at the exact location, its AITags
187
+ # will be removed. Set `overwriteAITags` to `false` to preserve AITags.
188
+ #
189
+ # @return [Boolean, nil]
190
+ optional :overwrite_ai_tags, Imagekitio::Internal::Type::Boolean, api_name: :overwriteAITags
191
+
192
+ # @!attribute overwrite_custom_metadata
193
+ # If the request does not have `customMetadata`, and a file already exists at the
194
+ # exact location, existing customMetadata will be removed.
195
+ #
196
+ # @return [Boolean, nil]
197
+ optional :overwrite_custom_metadata,
198
+ Imagekitio::Internal::Type::Boolean,
199
+ api_name: :overwriteCustomMetadata
200
+
201
+ # @!attribute overwrite_file
202
+ # If `false` and `useUniqueFileName` is also `false`, and a file already exists at
203
+ # the exact location, upload API will return an error immediately.
204
+ #
205
+ # @return [Boolean, nil]
206
+ optional :overwrite_file, Imagekitio::Internal::Type::Boolean, api_name: :overwriteFile
207
+
208
+ # @!attribute overwrite_tags
209
+ # If the request does not have `tags`, and a file already exists at the exact
210
+ # location, existing tags will be removed.
211
+ #
212
+ # @return [Boolean, nil]
213
+ optional :overwrite_tags, Imagekitio::Internal::Type::Boolean, api_name: :overwriteTags
214
+
215
+ # @!attribute response_fields
216
+ # Array of response field keys to include in the API response body.
217
+ #
218
+ # @return [Array<Symbol, Imagekitio::Models::Beta::V2::FileUploadParams::ResponseField>, nil]
219
+ optional :response_fields,
220
+ -> {
221
+ Imagekitio::Internal::Type::ArrayOf[enum: Imagekitio::Beta::V2::FileUploadParams::ResponseField]
222
+ },
223
+ api_name: :responseFields
224
+
225
+ # @!attribute tags
226
+ # Set the tags while uploading the file. Provide an array of tag strings (e.g.
227
+ # `["tag1", "tag2", "tag3"]`). The combined length of all tag characters must not
228
+ # exceed 500, and the `%` character is not allowed. If this field is not specified
229
+ # and the file is overwritten, the existing tags will be removed.
230
+ #
231
+ # @return [Array<String>, nil]
232
+ optional :tags, Imagekitio::Internal::Type::ArrayOf[String]
233
+
234
+ # @!attribute transformation
235
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
236
+ #
237
+ # - `pre` — applied before the file is uploaded to the Media Library.
238
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
239
+ # resize, compress).
240
+ #
241
+ # - `post` — applied immediately after upload.
242
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
243
+ # in advance, so they're ready for delivery without delay.
244
+ #
245
+ # You can mix and match any combination of post-processing types.
246
+ #
247
+ # @return [Imagekitio::Models::Beta::V2::FileUploadParams::Transformation, nil]
248
+ optional :transformation, -> { Imagekitio::Beta::V2::FileUploadParams::Transformation }
249
+
250
+ # @!attribute use_unique_file_name
251
+ # Whether to use a unique filename for this file or not.
252
+ #
253
+ # If `true`, ImageKit.io will add a unique suffix to the filename parameter to get
254
+ # a unique filename.
255
+ #
256
+ # If `false`, then the image is uploaded with the provided filename parameter, and
257
+ # any existing file with the same name is replaced.
258
+ #
259
+ # @return [Boolean, nil]
260
+ optional :use_unique_file_name, Imagekitio::Internal::Type::Boolean, api_name: :useUniqueFileName
261
+
262
+ # @!attribute webhook_url
263
+ # The final status of extensions after they have completed execution will be
264
+ # delivered to this endpoint as a POST request.
265
+ # [Learn more](/docs/api-reference/digital-asset-management-dam/managing-assets/update-file-details#webhook-payload-structure)
266
+ # about the webhook payload structure.
267
+ #
268
+ # @return [String, nil]
269
+ optional :webhook_url, String, api_name: :webhookUrl
270
+
271
+ # @!method initialize(file:, file_name:, token: nil, checks: nil, custom_coordinates: nil, custom_metadata: nil, description: nil, extensions: nil, folder: nil, is_private_file: nil, is_published: nil, overwrite_ai_tags: nil, overwrite_custom_metadata: nil, overwrite_file: nil, overwrite_tags: nil, response_fields: nil, tags: nil, transformation: nil, use_unique_file_name: nil, webhook_url: nil, request_options: {})
272
+ # Some parameter documentations has been truncated, see
273
+ # {Imagekitio::Models::Beta::V2::FileUploadParams} for more details.
274
+ #
275
+ # @param file [Pathname, StringIO, IO, String, Imagekitio::FilePart] The API accepts any of the following:
276
+ #
277
+ # @param file_name [String] The name with which the file has to be uploaded.
278
+ #
279
+ # @param token [String] This is the client-generated JSON Web Token (JWT). The ImageKit.io server uses i
280
+ #
281
+ # @param checks [String] Server-side checks to run on the asset.
282
+ #
283
+ # @param custom_coordinates [String] Define an important area in the image. This is only relevant for image type file
284
+ #
285
+ # @param custom_metadata [Hash{Symbol=>Object}] JSON key-value pairs to associate with the asset. Create the custom metadata fie
286
+ #
287
+ # @param description [String] Optional text to describe the contents of the file.
288
+ #
289
+ # @param extensions [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>] Array of extensions to be applied to the asset. Each extension can be configured
290
+ #
291
+ # @param folder [String] The folder path in which the image has to be uploaded. If the folder(s) didn't e
292
+ #
293
+ # @param is_private_file [Boolean] Whether to mark the file as private or not.
294
+ #
295
+ # @param is_published [Boolean] Whether to upload file as published or not.
296
+ #
297
+ # @param overwrite_ai_tags [Boolean] If set to `true` and a file already exists at the exact location, its AITags wil
298
+ #
299
+ # @param overwrite_custom_metadata [Boolean] If the request does not have `customMetadata`, and a file already exists at the
300
+ #
301
+ # @param overwrite_file [Boolean] If `false` and `useUniqueFileName` is also `false`, and a file already exists at
302
+ #
303
+ # @param overwrite_tags [Boolean] If the request does not have `tags`, and a file already exists at the exact loca
304
+ #
305
+ # @param response_fields [Array<Symbol, Imagekitio::Models::Beta::V2::FileUploadParams::ResponseField>] Array of response field keys to include in the API response body.
306
+ #
307
+ # @param tags [Array<String>] Set the tags while uploading the file.
308
+ #
309
+ # @param transformation [Imagekitio::Models::Beta::V2::FileUploadParams::Transformation] Configure pre-processing (`pre`) and post-processing (`post`) transformations.
310
+ #
311
+ # @param use_unique_file_name [Boolean] Whether to use a unique filename for this file or not.
312
+ #
313
+ # @param webhook_url [String] The final status of extensions after they have completed execution will be deliv
314
+ #
315
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}]
316
+
317
+ module ResponseField
318
+ extend Imagekitio::Internal::Type::Enum
319
+
320
+ TAGS = :tags
321
+ CUSTOM_COORDINATES = :customCoordinates
322
+ IS_PRIVATE_FILE = :isPrivateFile
323
+ EMBEDDED_METADATA = :embeddedMetadata
324
+ IS_PUBLISHED = :isPublished
325
+ CUSTOM_METADATA = :customMetadata
326
+ METADATA = :metadata
327
+ SELECTED_FIELDS_SCHEMA = :selectedFieldsSchema
328
+
329
+ # @!method self.values
330
+ # @return [Array<Symbol>]
331
+ end
332
+
333
+ class Transformation < Imagekitio::Internal::Type::BaseModel
334
+ # @!attribute post
335
+ # List of transformations to apply _after_ the file is uploaded.
336
+ # Each item must match one of the following types: `transformation`,
337
+ # `gif-to-video`, `thumbnail`, `abs`.
338
+ #
339
+ # @return [Array<Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Transformation, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs>, nil]
340
+ optional :post,
341
+ -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::Beta::V2::FileUploadParams::Transformation::Post] }
342
+
343
+ # @!attribute pre
344
+ # Transformation string to apply before uploading the file to the Media Library.
345
+ # Useful for optimizing files at ingestion.
346
+ #
347
+ # @return [String, nil]
348
+ optional :pre, String
349
+
350
+ # @!method initialize(post: nil, pre: nil)
351
+ # Some parameter documentations has been truncated, see
352
+ # {Imagekitio::Models::Beta::V2::FileUploadParams::Transformation} for more
353
+ # details.
354
+ #
355
+ # Configure pre-processing (`pre`) and post-processing (`post`) transformations.
356
+ #
357
+ # - `pre` — applied before the file is uploaded to the Media Library.
358
+ # Useful for reducing file size or applying basic optimizations upfront (e.g.,
359
+ # resize, compress).
360
+ #
361
+ # - `post` — applied immediately after upload.
362
+ # Ideal for generating transformed versions (like video encodes or thumbnails)
363
+ # in advance, so they're ready for delivery without delay.
364
+ #
365
+ # You can mix and match any combination of post-processing types.
366
+ #
367
+ # @param post [Array<Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Transformation, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs>] List of transformations to apply _after_ the file is uploaded.
368
+ #
369
+ # @param pre [String] Transformation string to apply before uploading the file to the Media Library. U
370
+
371
+ module Post
372
+ extend Imagekitio::Internal::Type::Union
373
+
374
+ discriminator :type
375
+
376
+ variant :transformation,
377
+ -> { Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Transformation }
378
+
379
+ variant :"gif-to-video", -> { Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo }
380
+
381
+ variant :thumbnail, -> { Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail }
382
+
383
+ variant :abs, -> { Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs }
384
+
385
+ class Transformation < Imagekitio::Internal::Type::BaseModel
386
+ # @!attribute type
387
+ # Transformation type.
388
+ #
389
+ # @return [Symbol, :transformation]
390
+ required :type, const: :transformation
391
+
392
+ # @!attribute value
393
+ # Transformation string (e.g. `w-200,h-200`).
394
+ # Same syntax as ImageKit URL-based transformations.
395
+ #
396
+ # @return [String]
397
+ required :value, String
398
+
399
+ # @!method initialize(value:, type: :transformation)
400
+ # Some parameter documentations has been truncated, see
401
+ # {Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Transformation}
402
+ # for more details.
403
+ #
404
+ # @param value [String] Transformation string (e.g. `w-200,h-200`).
405
+ #
406
+ # @param type [Symbol, :transformation] Transformation type.
407
+ end
408
+
409
+ class GifToVideo < Imagekitio::Internal::Type::BaseModel
410
+ # @!attribute type
411
+ # Converts an animated GIF into an MP4.
412
+ #
413
+ # @return [Symbol, :"gif-to-video"]
414
+ required :type, const: :"gif-to-video"
415
+
416
+ # @!attribute value
417
+ # Optional transformation string to apply to the output video.
418
+ # **Example**: `q-80`
419
+ #
420
+ # @return [String, nil]
421
+ optional :value, String
422
+
423
+ # @!method initialize(value: nil, type: :"gif-to-video")
424
+ # Some parameter documentations has been truncated, see
425
+ # {Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo}
426
+ # for more details.
427
+ #
428
+ # @param value [String] Optional transformation string to apply to the output video.
429
+ #
430
+ # @param type [Symbol, :"gif-to-video"] Converts an animated GIF into an MP4.
431
+ end
432
+
433
+ class Thumbnail < Imagekitio::Internal::Type::BaseModel
434
+ # @!attribute type
435
+ # Generates a thumbnail image.
436
+ #
437
+ # @return [Symbol, :thumbnail]
438
+ required :type, const: :thumbnail
439
+
440
+ # @!attribute value
441
+ # Optional transformation string.
442
+ # **Example**: `w-150,h-150`
443
+ #
444
+ # @return [String, nil]
445
+ optional :value, String
446
+
447
+ # @!method initialize(value: nil, type: :thumbnail)
448
+ # Some parameter documentations has been truncated, see
449
+ # {Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail}
450
+ # for more details.
451
+ #
452
+ # @param value [String] Optional transformation string.
453
+ #
454
+ # @param type [Symbol, :thumbnail] Generates a thumbnail image.
455
+ end
456
+
457
+ class Abs < Imagekitio::Internal::Type::BaseModel
458
+ # @!attribute protocol
459
+ # Streaming protocol to use (`hls` or `dash`).
460
+ #
461
+ # @return [Symbol, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol]
462
+ required :protocol,
463
+ enum: -> { Imagekitio::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol }
464
+
465
+ # @!attribute type
466
+ # Adaptive Bitrate Streaming (ABS) setup.
467
+ #
468
+ # @return [Symbol, :abs]
469
+ required :type, const: :abs
470
+
471
+ # @!attribute value
472
+ # List of different representations you want to create separated by an underscore.
473
+ #
474
+ # @return [String]
475
+ required :value, String
476
+
477
+ # @!method initialize(protocol:, value:, type: :abs)
478
+ # Some parameter documentations has been truncated, see
479
+ # {Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs} for
480
+ # more details.
481
+ #
482
+ # @param protocol [Symbol, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs::Protocol] Streaming protocol to use (`hls` or `dash`).
483
+ #
484
+ # @param value [String] List of different representations you want to create separated by an underscore.
485
+ #
486
+ # @param type [Symbol, :abs] Adaptive Bitrate Streaming (ABS) setup.
487
+
488
+ # Streaming protocol to use (`hls` or `dash`).
489
+ #
490
+ # @see Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs#protocol
491
+ module Protocol
492
+ extend Imagekitio::Internal::Type::Enum
493
+
494
+ HLS = :hls
495
+ DASH = :dash
496
+
497
+ # @!method self.values
498
+ # @return [Array<Symbol>]
499
+ end
500
+ end
501
+
502
+ # @!method self.variants
503
+ # @return [Array(Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Transformation, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::GifToVideo, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Thumbnail, Imagekitio::Models::Beta::V2::FileUploadParams::Transformation::Post::Abs)]
504
+ end
505
+ end
506
+ end
507
+ end
508
+ end
509
+ end
510
+ end