imagekitio 4.9.0 → 4.11.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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/imagekitio/helpers/transformation_utils.rb +1 -0
  5. data/lib/imagekitio/models/accounts/webhook.rb +81 -0
  6. data/lib/imagekitio/models/accounts/webhook_create_params.rb +47 -0
  7. data/lib/imagekitio/models/accounts/webhook_delete_params.rb +24 -0
  8. data/lib/imagekitio/models/accounts/webhook_event_type.rb +32 -0
  9. data/lib/imagekitio/models/accounts/webhook_get_params.rb +24 -0
  10. data/lib/imagekitio/models/accounts/webhook_list_params.rb +16 -0
  11. data/lib/imagekitio/models/accounts/webhook_list_response.rb +10 -0
  12. data/lib/imagekitio/models/accounts/webhook_update_params.rb +54 -0
  13. data/lib/imagekitio/models/asset_list_params.rb +22 -0
  14. data/lib/imagekitio/models/beta/v2/file_upload_params.rb +5 -1
  15. data/lib/imagekitio/models/custom_metadata_field.rb +23 -1
  16. data/lib/imagekitio/models/custom_metadata_field_create_params.rb +4 -0
  17. data/lib/imagekitio/models/file_upload_params.rb +5 -1
  18. data/lib/imagekitio/models/folder.rb +33 -1
  19. data/lib/imagekitio/models/folder_create_event.rb +35 -0
  20. data/lib/imagekitio/models/folder_delete_event.rb +47 -0
  21. data/lib/imagekitio/models/folder_update_event.rb +35 -0
  22. data/lib/imagekitio/models/transformation.rb +33 -1
  23. data/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +10 -1
  24. data/lib/imagekitio/models/unwrap_webhook_event.rb +10 -1
  25. data/lib/imagekitio/models/update_file_request.rb +5 -0
  26. data/lib/imagekitio/models.rb +6 -0
  27. data/lib/imagekitio/resources/accounts/webhooks.rb +146 -0
  28. data/lib/imagekitio/resources/accounts.rb +4 -0
  29. data/lib/imagekitio/resources/custom_metadata_fields.rb +2 -2
  30. data/lib/imagekitio/resources/files/versions.rb +2 -2
  31. data/lib/imagekitio/resources/files.rb +4 -16
  32. data/lib/imagekitio/resources/folders.rb +2 -8
  33. data/lib/imagekitio/resources/webhooks.rb +2 -2
  34. data/lib/imagekitio/version.rb +1 -1
  35. data/lib/imagekitio.rb +12 -5
  36. data/rbi/imagekitio/models/accounts/webhook.rbi +109 -0
  37. data/rbi/imagekitio/models/accounts/webhook_create_params.rbi +78 -0
  38. data/rbi/imagekitio/models/accounts/webhook_delete_params.rbi +45 -0
  39. data/rbi/imagekitio/models/accounts/webhook_event_type.rbi +101 -0
  40. data/rbi/imagekitio/models/accounts/webhook_get_params.rbi +45 -0
  41. data/rbi/imagekitio/models/accounts/webhook_list_params.rbi +34 -0
  42. data/rbi/imagekitio/models/accounts/webhook_list_response.rbi +13 -0
  43. data/rbi/imagekitio/models/accounts/webhook_update_params.rbi +98 -0
  44. data/rbi/imagekitio/models/asset_list_params.rbi +41 -0
  45. data/rbi/imagekitio/models/beta/v2/file_upload_params.rbi +10 -2
  46. data/rbi/imagekitio/models/custom_metadata_field.rbi +42 -3
  47. data/rbi/imagekitio/models/custom_metadata_field_create_params.rbi +8 -0
  48. data/rbi/imagekitio/models/file_upload_params.rbi +10 -2
  49. data/rbi/imagekitio/models/folder.rbi +49 -0
  50. data/rbi/imagekitio/models/folder_create_event.rbi +53 -0
  51. data/rbi/imagekitio/models/folder_delete_event.rbi +83 -0
  52. data/rbi/imagekitio/models/folder_update_event.rbi +53 -0
  53. data/rbi/imagekitio/models/transformation.rbi +43 -0
  54. data/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi +4 -1
  55. data/rbi/imagekitio/models/unwrap_webhook_event.rbi +4 -1
  56. data/rbi/imagekitio/models/update_file_request.rbi +10 -0
  57. data/rbi/imagekitio/models.rbi +6 -0
  58. data/rbi/imagekitio/resources/accounts/webhooks.rbi +113 -0
  59. data/rbi/imagekitio/resources/accounts.rbi +3 -0
  60. data/rbi/imagekitio/resources/assets.rbi +9 -0
  61. data/rbi/imagekitio/resources/beta/v2/files.rbi +5 -1
  62. data/rbi/imagekitio/resources/custom_metadata_fields.rbi +5 -1
  63. data/rbi/imagekitio/resources/files/versions.rbi +1 -1
  64. data/rbi/imagekitio/resources/files.rbi +7 -3
  65. data/rbi/imagekitio/resources/folders.rbi +1 -1
  66. data/rbi/imagekitio/resources/webhooks.rbi +8 -2
  67. data/sig/imagekitio/models/accounts/webhook.rbs +52 -0
  68. data/sig/imagekitio/models/accounts/webhook_create_params.rbs +40 -0
  69. data/sig/imagekitio/models/accounts/webhook_delete_params.rbs +25 -0
  70. data/sig/imagekitio/models/accounts/webhook_event_type.rbs +44 -0
  71. data/sig/imagekitio/models/accounts/webhook_get_params.rbs +25 -0
  72. data/sig/imagekitio/models/accounts/webhook_list_params.rbs +17 -0
  73. data/sig/imagekitio/models/accounts/webhook_list_response.rbs +9 -0
  74. data/sig/imagekitio/models/accounts/webhook_update_params.rbs +51 -0
  75. data/sig/imagekitio/models/asset_list_params.rbs +8 -0
  76. data/sig/imagekitio/models/custom_metadata_field.rbs +10 -3
  77. data/sig/imagekitio/models/folder.rbs +32 -5
  78. data/sig/imagekitio/models/folder_create_event.rbs +32 -0
  79. data/sig/imagekitio/models/folder_delete_event.rbs +48 -0
  80. data/sig/imagekitio/models/folder_update_event.rbs +32 -0
  81. data/sig/imagekitio/models/transformation.rbs +17 -0
  82. data/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs +3 -0
  83. data/sig/imagekitio/models/unwrap_webhook_event.rbs +3 -0
  84. data/sig/imagekitio/models.rbs +6 -0
  85. data/sig/imagekitio/resources/accounts/webhooks.rbs +38 -0
  86. data/sig/imagekitio/resources/accounts.rbs +2 -0
  87. data/sig/imagekitio/resources/custom_metadata_fields.rbs +1 -4
  88. data/sig/imagekitio/resources/files/versions.rbs +1 -1
  89. data/sig/imagekitio/resources/files.rbs +2 -2
  90. data/sig/imagekitio/resources/folders.rbs +1 -1
  91. data/sig/imagekitio/resources/webhooks.rbs +8 -2
  92. metadata +38 -17
  93. data/lib/imagekitio/models/custom_metadata_field_delete_response.rb +0 -10
  94. data/lib/imagekitio/models/file_copy_response.rb +0 -10
  95. data/lib/imagekitio/models/file_move_response.rb +0 -10
  96. data/lib/imagekitio/models/files/version_delete_response.rb +0 -12
  97. data/lib/imagekitio/models/folder_delete_response.rb +0 -10
  98. data/rbi/imagekitio/models/custom_metadata_field_delete_response.rbi +0 -23
  99. data/rbi/imagekitio/models/file_copy_response.rbi +0 -23
  100. data/rbi/imagekitio/models/file_move_response.rbi +0 -23
  101. data/rbi/imagekitio/models/files/version_delete_response.rbi +0 -25
  102. data/rbi/imagekitio/models/folder_delete_response.rbi +0 -23
  103. data/sig/imagekitio/models/custom_metadata_field_delete_response.rbs +0 -11
  104. data/sig/imagekitio/models/file_copy_response.rbs +0 -11
  105. data/sig/imagekitio/models/file_move_response.rbs +0 -11
  106. data/sig/imagekitio/models/files/version_delete_response.rbs +0 -13
  107. data/sig/imagekitio/models/folder_delete_response.rbs +0 -11
@@ -201,6 +201,17 @@ module Imagekitio
201
201
  # @return [String, nil]
202
202
  optional :default_image, String, api_name: :defaultImage
203
203
 
204
+ # @!attribute density
205
+ # Sets the output image density in dots per inch (DPI). Accepts an integer from 1
206
+ # to 1200 or an arithmetic expression using the `idn` variable, such as
207
+ # `idn_mul_2`. For raster images, this updates density metadata without changing
208
+ # dimensions. For vector images, it controls the DPI used during rasterization.
209
+ # Cannot be used inside layers. See
210
+ # [Density](https://imagekit.io/docs/image-optimization#density---dn).
211
+ #
212
+ # @return [Integer, String, nil]
213
+ optional :density, union: -> { Imagekitio::Transformation::Density }
214
+
204
215
  # @!attribute distort
205
216
  # Distorts the shape of an image. Supports two modes:
206
217
  #
@@ -510,7 +521,7 @@ module Imagekitio
510
521
  # @return [Float, nil]
511
522
  optional :zoom, Float
512
523
 
513
- # @!method initialize(ai_change_background: nil, ai_drop_shadow: nil, ai_edit: nil, ai_remove_background: nil, ai_remove_background_external: nil, ai_retouch: nil, ai_upscale: nil, ai_variation: nil, aspect_ratio: nil, audio_codec: nil, background: nil, blur: nil, border: nil, colorize: nil, color_profile: nil, color_replace: nil, contrast_stretch: nil, crop: nil, crop_mode: nil, default_image: nil, distort: nil, dpr: nil, duration: nil, end_offset: nil, flip: nil, focus: nil, format_: nil, gradient: nil, grayscale: nil, height: nil, lossless: nil, metadata: nil, named: nil, opacity: nil, original: nil, overlay: nil, page: nil, progressive: nil, quality: nil, radius: nil, raw: nil, rotation: nil, shadow: nil, sharpen: nil, start_offset: nil, streaming_resolutions: nil, trim: nil, unsharp_mask: nil, video_codec: nil, width: nil, x: nil, x_center: nil, y_: nil, y_center: nil, zoom: nil)
524
+ # @!method initialize(ai_change_background: nil, ai_drop_shadow: nil, ai_edit: nil, ai_remove_background: nil, ai_remove_background_external: nil, ai_retouch: nil, ai_upscale: nil, ai_variation: nil, aspect_ratio: nil, audio_codec: nil, background: nil, blur: nil, border: nil, colorize: nil, color_profile: nil, color_replace: nil, contrast_stretch: nil, crop: nil, crop_mode: nil, default_image: nil, density: nil, distort: nil, dpr: nil, duration: nil, end_offset: nil, flip: nil, focus: nil, format_: nil, gradient: nil, grayscale: nil, height: nil, lossless: nil, metadata: nil, named: nil, opacity: nil, original: nil, overlay: nil, page: nil, progressive: nil, quality: nil, radius: nil, raw: nil, rotation: nil, shadow: nil, sharpen: nil, start_offset: nil, streaming_resolutions: nil, trim: nil, unsharp_mask: nil, video_codec: nil, width: nil, x: nil, x_center: nil, y_: nil, y_center: nil, zoom: nil)
514
525
  # Some parameter documentations has been truncated, see
515
526
  # {Imagekitio::Models::Transformation} for more details.
516
527
  #
@@ -561,6 +572,8 @@ module Imagekitio
561
572
  #
562
573
  # @param default_image [String] Specifies a fallback image if the resource is not found, e.g., a URL or file pat
563
574
  #
575
+ # @param density [Integer, String] Sets the output image density in dots per inch (DPI). Accepts an integer from 1
576
+ #
564
577
  # @param distort [String] Distorts the shape of an image. Supports two modes:
565
578
  #
566
579
  # @param dpr [Float] Accepts values between 0.1 and 5, or `auto` for automatic device pixel ratio (DP
@@ -802,6 +815,25 @@ module Imagekitio
802
815
  # @return [Array<Symbol>]
803
816
  end
804
817
 
818
+ # Sets the output image density in dots per inch (DPI). Accepts an integer from 1
819
+ # to 1200 or an arithmetic expression using the `idn` variable, such as
820
+ # `idn_mul_2`. For raster images, this updates density metadata without changing
821
+ # dimensions. For vector images, it controls the DPI used during rasterization.
822
+ # Cannot be used inside layers. See
823
+ # [Density](https://imagekit.io/docs/image-optimization#density---dn).
824
+ #
825
+ # @see Imagekitio::Models::Transformation#density
826
+ module Density
827
+ extend Imagekitio::Internal::Type::Union
828
+
829
+ variant Integer
830
+
831
+ variant String
832
+
833
+ # @!method self.variants
834
+ # @return [Array(Integer, String)]
835
+ end
836
+
805
837
  # Specifies the duration (in seconds) for trimming videos, e.g., `5` or `10.5`.
806
838
  # Typically used with startOffset to indicate the length from the start offset.
807
839
  # Arithmetic expressions are supported. See
@@ -46,8 +46,17 @@ module Imagekitio
46
46
  # Triggered when a file version is deleted.
47
47
  variant -> { Imagekitio::FileVersionDeleteEvent }
48
48
 
49
+ # Triggered when a folder is created, whether explicitly, by copying or moving a folder, or implicitly when an upload creates missing parent folders. Copying or moving a folder tree sends one event per folder in the tree.
50
+ variant -> { Imagekitio::FolderCreateEvent }
51
+
52
+ # Triggered when a folder is updated, for example when its custom metadata changes or it is renamed. Renaming a folder sends one event per folder in the tree, each with its new `folderPath`.
53
+ variant -> { Imagekitio::FolderUpdateEvent }
54
+
55
+ # Triggered when a folder is deleted. Deleting a folder tree sends one event per folder in the tree; the files inside it send `file.deleted` events and their versions send `file-version.deleted` events. Moving a folder sends this event for the old `folderId` and `folder.created` for the new one.
56
+ variant -> { Imagekitio::FolderDeleteEvent }
57
+
49
58
  # @!method self.variants
50
- # @return [Array(Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent)]
59
+ # @return [Array(Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent, Imagekitio::Models::FolderCreateEvent, Imagekitio::Models::FolderUpdateEvent, Imagekitio::Models::FolderDeleteEvent)]
51
60
  end
52
61
  end
53
62
  end
@@ -46,8 +46,17 @@ module Imagekitio
46
46
  # Triggered when a file version is deleted.
47
47
  variant -> { Imagekitio::FileVersionDeleteEvent }
48
48
 
49
+ # Triggered when a folder is created, whether explicitly, by copying or moving a folder, or implicitly when an upload creates missing parent folders. Copying or moving a folder tree sends one event per folder in the tree.
50
+ variant -> { Imagekitio::FolderCreateEvent }
51
+
52
+ # Triggered when a folder is updated, for example when its custom metadata changes or it is renamed. Renaming a folder sends one event per folder in the tree, each with its new `folderPath`.
53
+ variant -> { Imagekitio::FolderUpdateEvent }
54
+
55
+ # Triggered when a folder is deleted. Deleting a folder tree sends one event per folder in the tree; the files inside it send `file.deleted` events and their versions send `file-version.deleted` events. Moving a folder sends this event for the old `folderId` and `folder.created` for the new one.
56
+ variant -> { Imagekitio::FolderDeleteEvent }
57
+
49
58
  # @!method self.variants
50
- # @return [Array(Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent)]
59
+ # @return [Array(Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent, Imagekitio::Models::FolderCreateEvent, Imagekitio::Models::FolderUpdateEvent, Imagekitio::Models::FolderDeleteEvent)]
51
60
  end
52
61
  end
53
62
  end
@@ -23,6 +23,11 @@ module Imagekitio
23
23
  # value for that key. Before setting any custom metadata on an asset you have to
24
24
  # create the field using custom metadata fields API.
25
25
  #
26
+ # To preserve the original creation date of an asset migrated from another system,
27
+ # set the reserved `_internal_original_created_datetime` key to an ISO 8601 date
28
+ # string. This key is available once the original creation date setting is enabled
29
+ # in the media library settings.
30
+ #
26
31
  # @return [Hash{Symbol=>Object}, nil]
27
32
  optional :custom_metadata,
28
33
  Imagekitio::Internal::Type::HashOf[Imagekitio::Internal::Type::Unknown],
@@ -108,8 +108,12 @@ module Imagekitio
108
108
 
109
109
  FolderCopyParams = Imagekitio::Models::FolderCopyParams
110
110
 
111
+ FolderCreateEvent = Imagekitio::Models::FolderCreateEvent
112
+
111
113
  FolderCreateParams = Imagekitio::Models::FolderCreateParams
112
114
 
115
+ FolderDeleteEvent = Imagekitio::Models::FolderDeleteEvent
116
+
113
117
  FolderDeleteParams = Imagekitio::Models::FolderDeleteParams
114
118
 
115
119
  FolderMoveParams = Imagekitio::Models::FolderMoveParams
@@ -118,6 +122,8 @@ module Imagekitio
118
122
 
119
123
  Folders = Imagekitio::Models::Folders
120
124
 
125
+ FolderUpdateEvent = Imagekitio::Models::FolderUpdateEvent
126
+
121
127
  GetImageAttributesOptions = Imagekitio::Models::GetImageAttributesOptions
122
128
 
123
129
  ImageOverlay = Imagekitio::Models::ImageOverlay
@@ -0,0 +1,146 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagekitio
4
+ module Resources
5
+ class Accounts
6
+ class Webhooks
7
+ # Some parameter documentations has been truncated, see
8
+ # {Imagekitio::Models::Accounts::WebhookCreateParams} for more details.
9
+ #
10
+ # Creates a new webhook and returns the created object, including the generated
11
+ # signing `secret`.
12
+ #
13
+ # ImageKit sends a `POST` request to the webhook `endpoint` whenever one of the
14
+ # subscribed `events` occurs. Use the `secret` to verify the signature of each
15
+ # request. Learn more about [webhooks](https://imagekit.io/docs/webhooks).
16
+ #
17
+ # You can create up to 3 webhooks per account.
18
+ #
19
+ # @overload create(endpoint:, events:, enabled: nil, request_options: {})
20
+ #
21
+ # @param endpoint [String] The URL where ImageKit sends webhook events as `POST` requests. Must use the `ht
22
+ #
23
+ # @param events [Array<Symbol, Imagekitio::Models::Accounts::WebhookEventType>] The event types this webhook is subscribed to. ImageKit sends a request to the `
24
+ #
25
+ # @param enabled [Boolean] Whether the webhook is enabled. When `false`, ImageKit doesn't send any events t
26
+ #
27
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
28
+ #
29
+ # @return [Imagekitio::Models::Accounts::Webhook]
30
+ #
31
+ # @see Imagekitio::Models::Accounts::WebhookCreateParams
32
+ def create(params)
33
+ parsed, options = Imagekitio::Accounts::WebhookCreateParams.dump_request(params)
34
+ @client.request(
35
+ method: :post,
36
+ path: "v1/accounts/webhooks",
37
+ body: parsed,
38
+ model: Imagekitio::Accounts::Webhook,
39
+ options: options
40
+ )
41
+ end
42
+
43
+ # Some parameter documentations has been truncated, see
44
+ # {Imagekitio::Models::Accounts::WebhookUpdateParams} for more details.
45
+ #
46
+ # Updates the webhook identified by `id` and returns the updated object. Only the
47
+ # fields included in the request body are changed.
48
+ #
49
+ # When `events` is provided, it replaces the existing list of subscribed events.
50
+ # The signing `secret` can't be changed.
51
+ #
52
+ # @overload update(id, enabled: nil, endpoint: nil, events: nil, request_options: {})
53
+ #
54
+ # @param id [String] Unique identifier for a webhook.
55
+ #
56
+ # @param enabled [Boolean] Whether the webhook is enabled. Omit to leave the current value unchanged.
57
+ #
58
+ # @param endpoint [String] The URL where ImageKit sends webhook events as `POST` requests. Must use the `ht
59
+ #
60
+ # @param events [Array<Symbol, Imagekitio::Models::Accounts::WebhookEventType>] The event types this webhook is subscribed to. Replaces the existing list. Omit
61
+ #
62
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
63
+ #
64
+ # @return [Imagekitio::Models::Accounts::Webhook]
65
+ #
66
+ # @see Imagekitio::Models::Accounts::WebhookUpdateParams
67
+ def update(id, params = {})
68
+ parsed, options = Imagekitio::Accounts::WebhookUpdateParams.dump_request(params)
69
+ @client.request(
70
+ method: :patch,
71
+ path: ["v1/accounts/webhooks/%1$s", id],
72
+ body: parsed,
73
+ model: Imagekitio::Accounts::Webhook,
74
+ options: options
75
+ )
76
+ end
77
+
78
+ # Returns an array of all webhooks configured for your account.
79
+ #
80
+ # @overload list(request_options: {})
81
+ #
82
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
83
+ #
84
+ # @return [Array<Imagekitio::Models::Accounts::Webhook>]
85
+ #
86
+ # @see Imagekitio::Models::Accounts::WebhookListParams
87
+ def list(params = {})
88
+ @client.request(
89
+ method: :get,
90
+ path: "v1/accounts/webhooks",
91
+ model: Imagekitio::Internal::Type::ArrayOf[Imagekitio::Accounts::Webhook],
92
+ options: params[:request_options]
93
+ )
94
+ end
95
+
96
+ # Permanently deletes the webhook identified by `id`. ImageKit stops sending
97
+ # events to its endpoint.
98
+ #
99
+ # @overload delete(id, request_options: {})
100
+ #
101
+ # @param id [String] Unique identifier for a webhook.
102
+ #
103
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
104
+ #
105
+ # @return [nil]
106
+ #
107
+ # @see Imagekitio::Models::Accounts::WebhookDeleteParams
108
+ def delete(id, params = {})
109
+ @client.request(
110
+ method: :delete,
111
+ path: ["v1/accounts/webhooks/%1$s", id],
112
+ model: NilClass,
113
+ options: params[:request_options]
114
+ )
115
+ end
116
+
117
+ # Retrieves the webhook identified by `id`.
118
+ #
119
+ # @overload get(id, request_options: {})
120
+ #
121
+ # @param id [String] Unique identifier for a webhook.
122
+ #
123
+ # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
124
+ #
125
+ # @return [Imagekitio::Models::Accounts::Webhook]
126
+ #
127
+ # @see Imagekitio::Models::Accounts::WebhookGetParams
128
+ def get(id, params = {})
129
+ @client.request(
130
+ method: :get,
131
+ path: ["v1/accounts/webhooks/%1$s", id],
132
+ model: Imagekitio::Accounts::Webhook,
133
+ options: params[:request_options]
134
+ )
135
+ end
136
+
137
+ # @api private
138
+ #
139
+ # @param client [Imagekitio::Client]
140
+ def initialize(client:)
141
+ @client = client
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
@@ -15,6 +15,9 @@ module Imagekitio
15
15
  # @return [Imagekitio::Resources::Accounts::URLEndpoints]
16
16
  attr_reader :url_endpoints
17
17
 
18
+ # @return [Imagekitio::Resources::Accounts::Webhooks]
19
+ attr_reader :webhooks
20
+
18
21
  # @api private
19
22
  #
20
23
  # @param client [Imagekitio::Client]
@@ -24,6 +27,7 @@ module Imagekitio
24
27
  @usage_analytics = Imagekitio::Resources::Accounts::UsageAnalytics.new(client: client)
25
28
  @origins = Imagekitio::Resources::Accounts::Origins.new(client: client)
26
29
  @url_endpoints = Imagekitio::Resources::Accounts::URLEndpoints.new(client: client)
30
+ @webhooks = Imagekitio::Resources::Accounts::Webhooks.new(client: client)
27
31
  end
28
32
  end
29
33
  end
@@ -116,14 +116,14 @@ module Imagekitio
116
116
  #
117
117
  # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
118
118
  #
119
- # @return [Imagekitio::Models::CustomMetadataFieldDeleteResponse]
119
+ # @return [nil]
120
120
  #
121
121
  # @see Imagekitio::Models::CustomMetadataFieldDeleteParams
122
122
  def delete(id, params = {})
123
123
  @client.request(
124
124
  method: :delete,
125
125
  path: ["v1/customMetadataFields/%1$s", id],
126
- model: Imagekitio::Models::CustomMetadataFieldDeleteResponse,
126
+ model: NilClass,
127
127
  options: params[:request_options]
128
128
  )
129
129
  end
@@ -43,7 +43,7 @@ module Imagekitio
43
43
  #
44
44
  # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
45
45
  #
46
- # @return [Imagekitio::Models::Files::VersionDeleteResponse]
46
+ # @return [nil]
47
47
  #
48
48
  # @see Imagekitio::Models::Files::VersionDeleteParams
49
49
  def delete(version_id, params)
@@ -55,7 +55,7 @@ module Imagekitio
55
55
  @client.request(
56
56
  method: :delete,
57
57
  path: ["v1/files/%1$s/versions/%2$s", file_id, version_id],
58
- model: Imagekitio::Models::Files::VersionDeleteResponse,
58
+ model: NilClass,
59
59
  options: options
60
60
  )
61
61
  end
@@ -87,18 +87,12 @@ module Imagekitio
87
87
  #
88
88
  # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
89
89
  #
90
- # @return [Imagekitio::Models::FileCopyResponse]
90
+ # @return [nil]
91
91
  #
92
92
  # @see Imagekitio::Models::FileCopyParams
93
93
  def copy(params)
94
94
  parsed, options = Imagekitio::FileCopyParams.dump_request(params)
95
- @client.request(
96
- method: :post,
97
- path: "v1/files/copy",
98
- body: parsed,
99
- model: Imagekitio::Models::FileCopyResponse,
100
- options: options
101
- )
95
+ @client.request(method: :post, path: "v1/files/copy", body: parsed, model: NilClass, options: options)
102
96
  end
103
97
 
104
98
  # Some parameter documentations has been truncated, see
@@ -141,18 +135,12 @@ module Imagekitio
141
135
  #
142
136
  # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
143
137
  #
144
- # @return [Imagekitio::Models::FileMoveResponse]
138
+ # @return [nil]
145
139
  #
146
140
  # @see Imagekitio::Models::FileMoveParams
147
141
  def move(params)
148
142
  parsed, options = Imagekitio::FileMoveParams.dump_request(params)
149
- @client.request(
150
- method: :post,
151
- path: "v1/files/move",
152
- body: parsed,
153
- model: Imagekitio::Models::FileMoveResponse,
154
- options: options
155
- )
143
+ @client.request(method: :post, path: "v1/files/move", body: parsed, model: NilClass, options: options)
156
144
  end
157
145
 
158
146
  # Some parameter documentations has been truncated, see
@@ -46,18 +46,12 @@ module Imagekitio
46
46
  #
47
47
  # @param request_options [Imagekitio::RequestOptions, Hash{Symbol=>Object}, nil]
48
48
  #
49
- # @return [Imagekitio::Models::FolderDeleteResponse]
49
+ # @return [nil]
50
50
  #
51
51
  # @see Imagekitio::Models::FolderDeleteParams
52
52
  def delete(params)
53
53
  parsed, options = Imagekitio::FolderDeleteParams.dump_request(params)
54
- @client.request(
55
- method: :delete,
56
- path: "v1/folder",
57
- body: parsed,
58
- model: Imagekitio::Models::FolderDeleteResponse,
59
- options: options
60
- )
54
+ @client.request(method: :delete, path: "v1/folder", body: parsed, model: NilClass, options: options)
61
55
  end
62
56
 
63
57
  # Some parameter documentations has been truncated, see
@@ -5,7 +5,7 @@ module Imagekitio
5
5
  class Webhooks
6
6
  # @param payload [String] The raw webhook payload as a string
7
7
  #
8
- # @return [Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent]
8
+ # @return [Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent, Imagekitio::Models::FolderCreateEvent, Imagekitio::Models::FolderUpdateEvent, Imagekitio::Models::FolderDeleteEvent]
9
9
  def unsafe_unwrap(payload)
10
10
  parsed = JSON.parse(payload, symbolize_names: true)
11
11
  Imagekitio::Internal::Type::Converter.coerce(Imagekitio::Models::UnsafeUnwrapWebhookEvent, parsed)
@@ -17,7 +17,7 @@ module Imagekitio
17
17
  #
18
18
  # @param key [String, nil] The webhook signing key
19
19
  #
20
- # @return [Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent]
20
+ # @return [Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent, Imagekitio::Models::FileCreateEvent, Imagekitio::Models::FileUpdateEvent, Imagekitio::Models::FileDeleteEvent, Imagekitio::Models::FileVersionCreateEvent, Imagekitio::Models::FileVersionDeleteEvent, Imagekitio::Models::FolderCreateEvent, Imagekitio::Models::FolderUpdateEvent, Imagekitio::Models::FolderDeleteEvent]
21
21
  def unwrap(payload, headers:, key: @client.webhook_secret)
22
22
  if key.nil?
23
23
  raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_secret or passed in as an argument")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Imagekitio
4
- VERSION = "4.9.0"
4
+ VERSION = "4.11.0"
5
5
  end
data/lib/imagekitio.rb CHANGED
@@ -79,6 +79,14 @@ require_relative "imagekitio/models/accounts/usage_analytics_get_params"
79
79
  require_relative "imagekitio/models/accounts/usage_analytics_response"
80
80
  require_relative "imagekitio/models/accounts/usage_get_params"
81
81
  require_relative "imagekitio/models/accounts/usage_get_response"
82
+ require_relative "imagekitio/models/accounts/webhook"
83
+ require_relative "imagekitio/models/accounts/webhook_create_params"
84
+ require_relative "imagekitio/models/accounts/webhook_delete_params"
85
+ require_relative "imagekitio/models/accounts/webhook_event_type"
86
+ require_relative "imagekitio/models/accounts/webhook_get_params"
87
+ require_relative "imagekitio/models/accounts/webhook_list_params"
88
+ require_relative "imagekitio/models/accounts/webhook_list_response"
89
+ require_relative "imagekitio/models/accounts/webhook_update_params"
82
90
  require_relative "imagekitio/models/ai_tag"
83
91
  require_relative "imagekitio/models/asset_list_params"
84
92
  require_relative "imagekitio/models/asset_list_response"
@@ -92,7 +100,6 @@ require_relative "imagekitio/models/custom_metadata"
92
100
  require_relative "imagekitio/models/custom_metadata_field"
93
101
  require_relative "imagekitio/models/custom_metadata_field_create_params"
94
102
  require_relative "imagekitio/models/custom_metadata_field_delete_params"
95
- require_relative "imagekitio/models/custom_metadata_field_delete_response"
96
103
  require_relative "imagekitio/models/custom_metadata_field_list_params"
97
104
  require_relative "imagekitio/models/custom_metadata_field_list_response"
98
105
  require_relative "imagekitio/models/custom_metadata_field_update_params"
@@ -101,13 +108,11 @@ require_relative "imagekitio/models/extension_config"
101
108
  require_relative "imagekitio/models/extension_item"
102
109
  require_relative "imagekitio/models/extensions"
103
110
  require_relative "imagekitio/models/file_copy_params"
104
- require_relative "imagekitio/models/file_copy_response"
105
111
  require_relative "imagekitio/models/file_create_event"
106
112
  require_relative "imagekitio/models/file_delete_event"
107
113
  require_relative "imagekitio/models/file_delete_params"
108
114
  require_relative "imagekitio/models/file_get_params"
109
115
  require_relative "imagekitio/models/file_move_params"
110
- require_relative "imagekitio/models/file_move_response"
111
116
  require_relative "imagekitio/models/file_rename_params"
112
117
  require_relative "imagekitio/models/file_rename_response"
113
118
  require_relative "imagekitio/models/files/bulk_add_tags_params"
@@ -121,7 +126,6 @@ require_relative "imagekitio/models/files/bulk_remove_tags_response"
121
126
  require_relative "imagekitio/models/files/metadata_get_from_url_params"
122
127
  require_relative "imagekitio/models/files/metadata_get_params"
123
128
  require_relative "imagekitio/models/files/version_delete_params"
124
- require_relative "imagekitio/models/files/version_delete_response"
125
129
  require_relative "imagekitio/models/files/version_get_params"
126
130
  require_relative "imagekitio/models/files/version_list_params"
127
131
  require_relative "imagekitio/models/files/version_list_response"
@@ -136,16 +140,18 @@ require_relative "imagekitio/models/file_version_delete_event"
136
140
  require_relative "imagekitio/models/folder"
137
141
  require_relative "imagekitio/models/folder_copy_params"
138
142
  require_relative "imagekitio/models/folder_copy_response"
143
+ require_relative "imagekitio/models/folder_create_event"
139
144
  require_relative "imagekitio/models/folder_create_params"
140
145
  require_relative "imagekitio/models/folder_create_response"
146
+ require_relative "imagekitio/models/folder_delete_event"
141
147
  require_relative "imagekitio/models/folder_delete_params"
142
- require_relative "imagekitio/models/folder_delete_response"
143
148
  require_relative "imagekitio/models/folder_move_params"
144
149
  require_relative "imagekitio/models/folder_move_response"
145
150
  require_relative "imagekitio/models/folder_rename_params"
146
151
  require_relative "imagekitio/models/folder_rename_response"
147
152
  require_relative "imagekitio/models/folders/job_get_params"
148
153
  require_relative "imagekitio/models/folders/job_get_response"
154
+ require_relative "imagekitio/models/folder_update_event"
149
155
  require_relative "imagekitio/models/get_image_attributes_options"
150
156
  require_relative "imagekitio/models/image_overlay"
151
157
  require_relative "imagekitio/models/metadata"
@@ -196,6 +202,7 @@ require_relative "imagekitio/resources/accounts/origins"
196
202
  require_relative "imagekitio/resources/accounts/url_endpoints"
197
203
  require_relative "imagekitio/resources/accounts/usage"
198
204
  require_relative "imagekitio/resources/accounts/usage_analytics"
205
+ require_relative "imagekitio/resources/accounts/webhooks"
199
206
  require_relative "imagekitio/resources/assets"
200
207
  require_relative "imagekitio/resources/beta"
201
208
  require_relative "imagekitio/resources/beta/v2"
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module Imagekitio
4
+ module Models
5
+ module Accounts
6
+ class Webhook < Imagekitio::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Imagekitio::Accounts::Webhook, Imagekitio::Internal::AnyHash)
10
+ end
11
+
12
+ # Unique identifier for a webhook.
13
+ sig { returns(String) }
14
+ attr_accessor :id
15
+
16
+ # ISO 8601 timestamp of when the webhook was created.
17
+ sig { returns(Time) }
18
+ attr_accessor :created_at
19
+
20
+ # Whether the webhook is enabled. When `false`, ImageKit doesn't send any events
21
+ # to the `endpoint`.
22
+ sig { returns(T::Boolean) }
23
+ attr_accessor :enabled
24
+
25
+ # The URL where ImageKit sends webhook events as `POST` requests. Must use the
26
+ # `http` or `https` protocol, and must be unique across all webhooks for your
27
+ # account.
28
+ sig { returns(String) }
29
+ attr_accessor :endpoint
30
+
31
+ # The event types this webhook is subscribed to. ImageKit sends a request to the
32
+ # `endpoint` only for these events.
33
+ sig do
34
+ returns(
35
+ T::Array[Imagekitio::Accounts::WebhookEventType::TaggedSymbol]
36
+ )
37
+ end
38
+ attr_accessor :events
39
+
40
+ # Signing secret generated by ImageKit, used to verify that webhook requests come
41
+ # from ImageKit. Starts with `whsec_`. This value can't be set or changed through
42
+ # the API. Learn more about
43
+ # [verifying webhook signatures](https://imagekit.io/docs/webhooks#verify-webhook-signature).
44
+ sig { returns(String) }
45
+ attr_accessor :secret
46
+
47
+ # ISO 8601 timestamp of when the webhook was last updated.
48
+ sig { returns(Time) }
49
+ attr_accessor :updated_at
50
+
51
+ # A webhook is an HTTP endpoint that ImageKit notifies when subscribed events
52
+ # occur in your account. Learn more about
53
+ # [webhooks](https://imagekit.io/docs/webhooks).
54
+ sig do
55
+ params(
56
+ id: String,
57
+ created_at: Time,
58
+ enabled: T::Boolean,
59
+ endpoint: String,
60
+ events: T::Array[Imagekitio::Accounts::WebhookEventType::OrSymbol],
61
+ secret: String,
62
+ updated_at: Time
63
+ ).returns(T.attached_class)
64
+ end
65
+ def self.new(
66
+ # Unique identifier for a webhook.
67
+ id:,
68
+ # ISO 8601 timestamp of when the webhook was created.
69
+ created_at:,
70
+ # Whether the webhook is enabled. When `false`, ImageKit doesn't send any events
71
+ # to the `endpoint`.
72
+ enabled:,
73
+ # The URL where ImageKit sends webhook events as `POST` requests. Must use the
74
+ # `http` or `https` protocol, and must be unique across all webhooks for your
75
+ # account.
76
+ endpoint:,
77
+ # The event types this webhook is subscribed to. ImageKit sends a request to the
78
+ # `endpoint` only for these events.
79
+ events:,
80
+ # Signing secret generated by ImageKit, used to verify that webhook requests come
81
+ # from ImageKit. Starts with `whsec_`. This value can't be set or changed through
82
+ # the API. Learn more about
83
+ # [verifying webhook signatures](https://imagekit.io/docs/webhooks#verify-webhook-signature).
84
+ secret:,
85
+ # ISO 8601 timestamp of when the webhook was last updated.
86
+ updated_at:
87
+ )
88
+ end
89
+
90
+ sig do
91
+ override.returns(
92
+ {
93
+ id: String,
94
+ created_at: Time,
95
+ enabled: T::Boolean,
96
+ endpoint: String,
97
+ events:
98
+ T::Array[Imagekitio::Accounts::WebhookEventType::TaggedSymbol],
99
+ secret: String,
100
+ updated_at: Time
101
+ }
102
+ )
103
+ end
104
+ def to_hash
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end