Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "4.3.0"
".": "4.4.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 47
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-63aff1629530786015da3c86131afa8a9b60545d488884b77641f1d4b89c6e9d.yml
openapi_spec_hash: 586d357bd7e5217d240a99e0d83c6d1f
config_hash: 47cb702ee2cb52c58d803ae39ade9b44
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-d73a37dc3426586109bd153f02c6a605036b6a7396bba5173d013468c5291ce6.yml
openapi_spec_hash: c193c6e557ff477481ec8d5ac8a0c96e
config_hash: 32b155378f65c234d3abeb18519fb3cd
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## 4.4.0 (2026-04-10)

Full Changelog: [v4.3.0...v4.4.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.3.0...v4.4.0)

### Features

* **api:** dam related webhook events ([d2ffbf3](https://github.com/imagekit-developer/imagekit-ruby/commit/d2ffbf33cabaddffbb97d4c7bc7e54be100a3c67))
* **api:** fix spec indentation ([74e7a6a](https://github.com/imagekit-developer/imagekit-ruby/commit/74e7a6ae49a83d6faa29796443309f20633b430d))
* **api:** indentation fix ([fae3b74](https://github.com/imagekit-developer/imagekit-ruby/commit/fae3b74e0de1bdd3e5a29c6061f546aacfc423cb))
* **api:** merge with main to bring back missing parameters ([78377b5](https://github.com/imagekit-developer/imagekit-ruby/commit/78377b55c03f7818a5f2ae57d19464dfae58763a))
* **api:** update webhook event names and remove DAM prefix ([c621b14](https://github.com/imagekit-developer/imagekit-ruby/commit/c621b14ca3a92b3428bd3a41156539aba3668097))


### Bug Fixes

* **api:** rename DamFile events to File for consistency ([5998787](https://github.com/imagekit-developer/imagekit-ruby/commit/5998787a6607eb936b51b46b92e24679ac2dd321))
* **docs:** remove unnecessary password parameter from example ([77c9134](https://github.com/imagekit-developer/imagekit-ruby/commit/77c9134775b106ac5107579f3059390870ced790))
* multipart encoding for file arrays ([5f02f3a](https://github.com/imagekit-developer/imagekit-ruby/commit/5f02f3a700d92bdcba063ce82d64c82fc70d37f8))

## 4.3.0 (2026-04-06)

Full Changelog: [v4.2.0...v4.3.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.2.0...v4.3.0)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
imagekitio (4.3.0)
imagekitio (4.4.0)
cgi
connection_pool
standardwebhooks
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "imagekitio", "~> 4.3.0"
gem "imagekitio", "~> 4.4.0"
```

<!-- x-release-please-end -->
Expand Down
7 changes: 6 additions & 1 deletion lib/imagekitio.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@
require_relative "imagekitio/client"
require_relative "imagekitio/models/accounts/origin_request"
require_relative "imagekitio/models/accounts/url_endpoint_request"
require_relative "imagekitio/models/base_webhook_event"
require_relative "imagekitio/models/update_file_request"
require_relative "imagekitio/models/file"
require_relative "imagekitio/models/src_options"
require_relative "imagekitio/models/base_overlay"
require_relative "imagekitio/models/base_webhook_event"
require_relative "imagekitio/models/accounts/origin_create_params"
require_relative "imagekitio/models/accounts/origin_delete_params"
require_relative "imagekitio/models/accounts/origin_get_params"
Expand Down Expand Up @@ -95,6 +95,8 @@
require_relative "imagekitio/models/extensions"
require_relative "imagekitio/models/file_copy_params"
require_relative "imagekitio/models/file_copy_response"
require_relative "imagekitio/models/file_create_event"
require_relative "imagekitio/models/file_delete_event"
require_relative "imagekitio/models/file_delete_params"
require_relative "imagekitio/models/file_get_params"
require_relative "imagekitio/models/file_move_params"
Expand All @@ -117,10 +119,13 @@
require_relative "imagekitio/models/files/version_list_params"
require_relative "imagekitio/models/files/version_list_response"
require_relative "imagekitio/models/files/version_restore_params"
require_relative "imagekitio/models/file_update_event"
require_relative "imagekitio/models/file_update_params"
require_relative "imagekitio/models/file_update_response"
require_relative "imagekitio/models/file_upload_params"
require_relative "imagekitio/models/file_upload_response"
require_relative "imagekitio/models/file_version_create_event"
require_relative "imagekitio/models/file_version_delete_event"
require_relative "imagekitio/models/folder"
require_relative "imagekitio/models/folder_copy_params"
require_relative "imagekitio/models/folder_copy_response"
Expand Down
4 changes: 3 additions & 1 deletion lib/imagekitio/internal/util.rb
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,7 @@ def encode_query_params(query)
#
# @return [Array(String, Enumerable<String>)]
private def encode_multipart_streaming(body)
# rubocop:disable Style/CaseEquality
# RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
boundary = SecureRandom.urlsafe_base64(46)

Expand All @@ -619,7 +620,7 @@ def encode_query_params(query)
in Hash
body.each do |key, val|
case val
in Array if val.all? { primitive?(_1) }
in Array if val.all? { primitive?(_1) || Imagekitio::Internal::Type::FileInput === _1 }
val.each do |v|
write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
end
Expand All @@ -635,6 +636,7 @@ def encode_query_params(query)

fused_io = fused_enum(strio) { closing.each(&:call) }
[boundary, fused_io]
# rubocop:enable Style/CaseEquality
end

# @api private
Expand Down
10 changes: 10 additions & 0 deletions lib/imagekitio/models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ module Imagekitio

FileCopyParams = Imagekitio::Models::FileCopyParams

FileCreateEvent = Imagekitio::Models::FileCreateEvent

FileDeleteEvent = Imagekitio::Models::FileDeleteEvent

FileDeleteParams = Imagekitio::Models::FileDeleteParams

FileGetParams = Imagekitio::Models::FileGetParams
Expand All @@ -82,10 +86,16 @@ module Imagekitio

Files = Imagekitio::Models::Files

FileUpdateEvent = Imagekitio::Models::FileUpdateEvent

FileUpdateParams = Imagekitio::Models::FileUpdateParams

FileUploadParams = Imagekitio::Models::FileUploadParams

FileVersionCreateEvent = Imagekitio::Models::FileVersionCreateEvent

FileVersionDeleteEvent = Imagekitio::Models::FileVersionDeleteEvent

Folder = Imagekitio::Models::Folder

FolderCopyParams = Imagekitio::Models::FolderCopyParams
Expand Down
34 changes: 34 additions & 0 deletions lib/imagekitio/models/file_create_event.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# frozen_string_literal: true

module Imagekitio
module Models
class FileCreateEvent < Imagekitio::Models::BaseWebhookEvent
# @!attribute created_at
# Timestamp of when the event occurred in ISO8601 format.
#
# @return [Time]
required :created_at, Time

# @!attribute data
# Object containing details of a file or file version.
#
# @return [Imagekitio::Models::File]
required :data, -> { Imagekitio::File }

# @!attribute type
# Type of the webhook event.
#
# @return [Symbol, :"file.created"]
required :type, const: :"file.created"

# @!method initialize(created_at:, data:, type: :"file.created")
# Triggered when a file is created.
#
# @param created_at [Time] Timestamp of when the event occurred in ISO8601 format.
#
# @param data [Imagekitio::Models::File] Object containing details of a file or file version.
#
# @param type [Symbol, :"file.created"] Type of the webhook event.
end
end
end
44 changes: 44 additions & 0 deletions lib/imagekitio/models/file_delete_event.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# frozen_string_literal: true

module Imagekitio
module Models
class FileDeleteEvent < Imagekitio::Models::BaseWebhookEvent
# @!attribute created_at
# Timestamp of when the event occurred in ISO8601 format.
#
# @return [Time]
required :created_at, Time

# @!attribute data
#
# @return [Imagekitio::Models::FileDeleteEvent::Data]
required :data, -> { Imagekitio::FileDeleteEvent::Data }

# @!attribute type
# Type of the webhook event.
#
# @return [Symbol, :"file.deleted"]
required :type, const: :"file.deleted"

# @!method initialize(created_at:, data:, type: :"file.deleted")
# Triggered when a file is deleted.
#
# @param created_at [Time] Timestamp of when the event occurred in ISO8601 format.
#
# @param data [Imagekitio::Models::FileDeleteEvent::Data]
#
# @param type [Symbol, :"file.deleted"] Type of the webhook event.

class Data < Imagekitio::Internal::Type::BaseModel
# @!attribute file_id
# The unique `fileId` of the deleted file.
#
# @return [String]
required :file_id, String, api_name: :fileId

# @!method initialize(file_id:)
# @param file_id [String] The unique `fileId` of the deleted file.
end
end
end
end
34 changes: 34 additions & 0 deletions lib/imagekitio/models/file_update_event.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# frozen_string_literal: true

module Imagekitio
module Models
class FileUpdateEvent < Imagekitio::Models::BaseWebhookEvent
# @!attribute created_at
# Timestamp of when the event occurred in ISO8601 format.
#
# @return [Time]
required :created_at, Time

# @!attribute data
# Object containing details of a file or file version.
#
# @return [Imagekitio::Models::File]
required :data, -> { Imagekitio::File }

# @!attribute type
# Type of the webhook event.
#
# @return [Symbol, :"file.updated"]
required :type, const: :"file.updated"

# @!method initialize(created_at:, data:, type: :"file.updated")
# Triggered when a file is updated.
#
# @param created_at [Time] Timestamp of when the event occurred in ISO8601 format.
#
# @param data [Imagekitio::Models::File] Object containing details of a file or file version.
#
# @param type [Symbol, :"file.updated"] Type of the webhook event.
end
end
end
34 changes: 34 additions & 0 deletions lib/imagekitio/models/file_version_create_event.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# frozen_string_literal: true

module Imagekitio
module Models
class FileVersionCreateEvent < Imagekitio::Models::BaseWebhookEvent
# @!attribute created_at
# Timestamp of when the event occurred in ISO8601 format.
#
# @return [Time]
required :created_at, Time

# @!attribute data
# Object containing details of a file or file version.
#
# @return [Imagekitio::Models::File]
required :data, -> { Imagekitio::File }

# @!attribute type
# Type of the webhook event.
#
# @return [Symbol, :"file-version.created"]
required :type, const: :"file-version.created"

# @!method initialize(created_at:, data:, type: :"file-version.created")
# Triggered when a file version is created.
#
# @param created_at [Time] Timestamp of when the event occurred in ISO8601 format.
#
# @param data [Imagekitio::Models::File] Object containing details of a file or file version.
#
# @param type [Symbol, :"file-version.created"] Type of the webhook event.
end
end
end
52 changes: 52 additions & 0 deletions lib/imagekitio/models/file_version_delete_event.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# frozen_string_literal: true

module Imagekitio
module Models
class FileVersionDeleteEvent < Imagekitio::Models::BaseWebhookEvent
# @!attribute created_at
# Timestamp of when the event occurred in ISO8601 format.
#
# @return [Time]
required :created_at, Time

# @!attribute data
#
# @return [Imagekitio::Models::FileVersionDeleteEvent::Data]
required :data, -> { Imagekitio::FileVersionDeleteEvent::Data }

# @!attribute type
# Type of the webhook event.
#
# @return [Symbol, :"file-version.deleted"]
required :type, const: :"file-version.deleted"

# @!method initialize(created_at:, data:, type: :"file-version.deleted")
# Triggered when a file version is deleted.
#
# @param created_at [Time] Timestamp of when the event occurred in ISO8601 format.
#
# @param data [Imagekitio::Models::FileVersionDeleteEvent::Data]
#
# @param type [Symbol, :"file-version.deleted"] Type of the webhook event.

class Data < Imagekitio::Internal::Type::BaseModel
# @!attribute file_id
# The unique `fileId` of the deleted file.
#
# @return [String]
required :file_id, String, api_name: :fileId

# @!attribute version_id
# The unique `versionId` of the deleted file version.
#
# @return [String]
required :version_id, String, api_name: :versionId

# @!method initialize(file_id:, version_id:)
# @param file_id [String] The unique `fileId` of the deleted file.
#
# @param version_id [String] The unique `versionId` of the deleted file version.
end
end
end
end
17 changes: 16 additions & 1 deletion lib/imagekitio/models/unsafe_unwrap_webhook_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,23 @@ module UnsafeUnwrapWebhookEvent
# Triggered when a post-transformation fails. The original file remains available, but the requested transformation could not be generated.
variant -> { Imagekitio::UploadPostTransformErrorEvent }

# Triggered when a file is created.
variant -> { Imagekitio::FileCreateEvent }

# Triggered when a file is updated.
variant -> { Imagekitio::FileUpdateEvent }

# Triggered when a file is deleted.
variant -> { Imagekitio::FileDeleteEvent }

# Triggered when a file version is created.
variant -> { Imagekitio::FileVersionCreateEvent }

# Triggered when a file version is deleted.
variant -> { Imagekitio::FileVersionDeleteEvent }

# @!method self.variants
# @return [Array(Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent)]
# @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)]
end
end
end
17 changes: 16 additions & 1 deletion lib/imagekitio/models/unwrap_webhook_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,23 @@ module UnwrapWebhookEvent
# Triggered when a post-transformation fails. The original file remains available, but the requested transformation could not be generated.
variant -> { Imagekitio::UploadPostTransformErrorEvent }

# Triggered when a file is created.
variant -> { Imagekitio::FileCreateEvent }

# Triggered when a file is updated.
variant -> { Imagekitio::FileUpdateEvent }

# Triggered when a file is deleted.
variant -> { Imagekitio::FileDeleteEvent }

# Triggered when a file version is created.
variant -> { Imagekitio::FileVersionCreateEvent }

# Triggered when a file version is deleted.
variant -> { Imagekitio::FileVersionDeleteEvent }

# @!method self.variants
# @return [Array(Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent)]
# @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)]
end
end
end
Loading
Loading