diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 29102aeb..934f2cc0 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "4.3.0" + ".": "4.4.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index df5aafb6..aae6cba6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b5aacb..b3116fb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/Gemfile.lock b/Gemfile.lock index 04807972..fe1dd7d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - imagekitio (4.3.0) + imagekitio (4.4.0) cgi connection_pool standardwebhooks diff --git a/README.md b/README.md index eb891d04..b66d5fba 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "imagekitio", "~> 4.3.0" +gem "imagekitio", "~> 4.4.0" ``` diff --git a/lib/imagekitio.rb b/lib/imagekitio.rb index 73020544..1a186f13 100644 --- a/lib/imagekitio.rb +++ b/lib/imagekitio.rb @@ -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" @@ -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" @@ -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" diff --git a/lib/imagekitio/internal/util.rb b/lib/imagekitio/internal/util.rb index 84dfdcd1..ca4779fb 100644 --- a/lib/imagekitio/internal/util.rb +++ b/lib/imagekitio/internal/util.rb @@ -610,6 +610,7 @@ def encode_query_params(query) # # @return [Array(String, Enumerable)] 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) @@ -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 @@ -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 diff --git a/lib/imagekitio/models.rb b/lib/imagekitio/models.rb index bc8f57a4..5d531d8f 100644 --- a/lib/imagekitio/models.rb +++ b/lib/imagekitio/models.rb @@ -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 @@ -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 diff --git a/lib/imagekitio/models/file_create_event.rb b/lib/imagekitio/models/file_create_event.rb new file mode 100644 index 00000000..d553fcd5 --- /dev/null +++ b/lib/imagekitio/models/file_create_event.rb @@ -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 diff --git a/lib/imagekitio/models/file_delete_event.rb b/lib/imagekitio/models/file_delete_event.rb new file mode 100644 index 00000000..018b7e8e --- /dev/null +++ b/lib/imagekitio/models/file_delete_event.rb @@ -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 diff --git a/lib/imagekitio/models/file_update_event.rb b/lib/imagekitio/models/file_update_event.rb new file mode 100644 index 00000000..ffda8f90 --- /dev/null +++ b/lib/imagekitio/models/file_update_event.rb @@ -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 diff --git a/lib/imagekitio/models/file_version_create_event.rb b/lib/imagekitio/models/file_version_create_event.rb new file mode 100644 index 00000000..9d1a5a5d --- /dev/null +++ b/lib/imagekitio/models/file_version_create_event.rb @@ -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 diff --git a/lib/imagekitio/models/file_version_delete_event.rb b/lib/imagekitio/models/file_version_delete_event.rb new file mode 100644 index 00000000..32592f6c --- /dev/null +++ b/lib/imagekitio/models/file_version_delete_event.rb @@ -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 diff --git a/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb b/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb index 11c26bf4..c2fcb0fb 100644 --- a/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +++ b/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb @@ -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 diff --git a/lib/imagekitio/models/unwrap_webhook_event.rb b/lib/imagekitio/models/unwrap_webhook_event.rb index c9f71bc9..8c1121f3 100644 --- a/lib/imagekitio/models/unwrap_webhook_event.rb +++ b/lib/imagekitio/models/unwrap_webhook_event.rb @@ -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 diff --git a/lib/imagekitio/resources/webhooks.rb b/lib/imagekitio/resources/webhooks.rb index b00673ff..266396d2 100644 --- a/lib/imagekitio/resources/webhooks.rb +++ b/lib/imagekitio/resources/webhooks.rb @@ -5,7 +5,7 @@ module Resources class Webhooks # @param payload [String] The raw webhook payload as a string # - # @return [Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent] + # @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] def unsafe_unwrap(payload) parsed = JSON.parse(payload, symbolize_names: true) Imagekitio::Internal::Type::Converter.coerce(Imagekitio::Models::UnsafeUnwrapWebhookEvent, parsed) @@ -17,7 +17,7 @@ def unsafe_unwrap(payload) # # @param key [String, nil] The webhook signing key # - # @return [Imagekitio::Models::VideoTransformationAcceptedEvent, Imagekitio::Models::VideoTransformationReadyEvent, Imagekitio::Models::VideoTransformationErrorEvent, Imagekitio::Models::UploadPreTransformSuccessEvent, Imagekitio::Models::UploadPreTransformErrorEvent, Imagekitio::Models::UploadPostTransformSuccessEvent, Imagekitio::Models::UploadPostTransformErrorEvent] + # @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] def unwrap(payload, headers:, key: @client.webhook_secret) if key.nil? raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_secret or passed in as an argument") diff --git a/lib/imagekitio/version.rb b/lib/imagekitio/version.rb index 5d680d0b..cb9c766c 100644 --- a/lib/imagekitio/version.rb +++ b/lib/imagekitio/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Imagekitio - VERSION = "4.3.0" + VERSION = "4.4.0" end diff --git a/rbi/imagekitio/models.rbi b/rbi/imagekitio/models.rbi index 0d061049..b010079c 100644 --- a/rbi/imagekitio/models.rbi +++ b/rbi/imagekitio/models.rbi @@ -38,6 +38,10 @@ module Imagekitio FileCopyParams = Imagekitio::Models::FileCopyParams + FileCreateEvent = Imagekitio::Models::FileCreateEvent + + FileDeleteEvent = Imagekitio::Models::FileDeleteEvent + FileDeleteParams = Imagekitio::Models::FileDeleteParams FileGetParams = Imagekitio::Models::FileGetParams @@ -48,10 +52,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 diff --git a/rbi/imagekitio/models/file_create_event.rbi b/rbi/imagekitio/models/file_create_event.rbi new file mode 100644 index 00000000..69ff431c --- /dev/null +++ b/rbi/imagekitio/models/file_create_event.rbi @@ -0,0 +1,53 @@ +# typed: strong + +module Imagekitio + module Models + class FileCreateEvent < Imagekitio::Models::BaseWebhookEvent + OrHash = + T.type_alias do + T.any(Imagekitio::FileCreateEvent, Imagekitio::Internal::AnyHash) + end + + # Timestamp of when the event occurred in ISO8601 format. + sig { returns(Time) } + attr_accessor :created_at + + # Object containing details of a file or file version. + sig { returns(Imagekitio::File) } + attr_reader :data + + sig { params(data: Imagekitio::File::OrHash).void } + attr_writer :data + + # Type of the webhook event. + sig { returns(Symbol) } + attr_accessor :type + + # Triggered when a file is created. + sig do + params( + created_at: Time, + data: Imagekitio::File::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Timestamp of when the event occurred in ISO8601 format. + created_at:, + # Object containing details of a file or file version. + data:, + # Type of the webhook event. + type: :"file.created" + ) + end + + sig do + override.returns( + { created_at: Time, data: Imagekitio::File, type: Symbol } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/imagekitio/models/file_delete_event.rbi b/rbi/imagekitio/models/file_delete_event.rbi new file mode 100644 index 00000000..71f2042b --- /dev/null +++ b/rbi/imagekitio/models/file_delete_event.rbi @@ -0,0 +1,80 @@ +# typed: strong + +module Imagekitio + module Models + class FileDeleteEvent < Imagekitio::Models::BaseWebhookEvent + OrHash = + T.type_alias do + T.any(Imagekitio::FileDeleteEvent, Imagekitio::Internal::AnyHash) + end + + # Timestamp of when the event occurred in ISO8601 format. + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(Imagekitio::FileDeleteEvent::Data) } + attr_reader :data + + sig { params(data: Imagekitio::FileDeleteEvent::Data::OrHash).void } + attr_writer :data + + # Type of the webhook event. + sig { returns(Symbol) } + attr_accessor :type + + # Triggered when a file is deleted. + sig do + params( + created_at: Time, + data: Imagekitio::FileDeleteEvent::Data::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Timestamp of when the event occurred in ISO8601 format. + created_at:, + data:, + # Type of the webhook event. + type: :"file.deleted" + ) + end + + sig do + override.returns( + { + created_at: Time, + data: Imagekitio::FileDeleteEvent::Data, + type: Symbol + } + ) + end + def to_hash + end + + class Data < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::FileDeleteEvent::Data, + Imagekitio::Internal::AnyHash + ) + end + + # The unique `fileId` of the deleted file. + sig { returns(String) } + attr_accessor :file_id + + sig { params(file_id: String).returns(T.attached_class) } + def self.new( + # The unique `fileId` of the deleted file. + file_id: + ) + end + + sig { override.returns({ file_id: String }) } + def to_hash + end + end + end + end +end diff --git a/rbi/imagekitio/models/file_update_event.rbi b/rbi/imagekitio/models/file_update_event.rbi new file mode 100644 index 00000000..2315aa75 --- /dev/null +++ b/rbi/imagekitio/models/file_update_event.rbi @@ -0,0 +1,53 @@ +# typed: strong + +module Imagekitio + module Models + class FileUpdateEvent < Imagekitio::Models::BaseWebhookEvent + OrHash = + T.type_alias do + T.any(Imagekitio::FileUpdateEvent, Imagekitio::Internal::AnyHash) + end + + # Timestamp of when the event occurred in ISO8601 format. + sig { returns(Time) } + attr_accessor :created_at + + # Object containing details of a file or file version. + sig { returns(Imagekitio::File) } + attr_reader :data + + sig { params(data: Imagekitio::File::OrHash).void } + attr_writer :data + + # Type of the webhook event. + sig { returns(Symbol) } + attr_accessor :type + + # Triggered when a file is updated. + sig do + params( + created_at: Time, + data: Imagekitio::File::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Timestamp of when the event occurred in ISO8601 format. + created_at:, + # Object containing details of a file or file version. + data:, + # Type of the webhook event. + type: :"file.updated" + ) + end + + sig do + override.returns( + { created_at: Time, data: Imagekitio::File, type: Symbol } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/imagekitio/models/file_version_create_event.rbi b/rbi/imagekitio/models/file_version_create_event.rbi new file mode 100644 index 00000000..da6844b3 --- /dev/null +++ b/rbi/imagekitio/models/file_version_create_event.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Imagekitio + module Models + class FileVersionCreateEvent < Imagekitio::Models::BaseWebhookEvent + OrHash = + T.type_alias do + T.any( + Imagekitio::FileVersionCreateEvent, + Imagekitio::Internal::AnyHash + ) + end + + # Timestamp of when the event occurred in ISO8601 format. + sig { returns(Time) } + attr_accessor :created_at + + # Object containing details of a file or file version. + sig { returns(Imagekitio::File) } + attr_reader :data + + sig { params(data: Imagekitio::File::OrHash).void } + attr_writer :data + + # Type of the webhook event. + sig { returns(Symbol) } + attr_accessor :type + + # Triggered when a file version is created. + sig do + params( + created_at: Time, + data: Imagekitio::File::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Timestamp of when the event occurred in ISO8601 format. + created_at:, + # Object containing details of a file or file version. + data:, + # Type of the webhook event. + type: :"file-version.created" + ) + end + + sig do + override.returns( + { created_at: Time, data: Imagekitio::File, type: Symbol } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/imagekitio/models/file_version_delete_event.rbi b/rbi/imagekitio/models/file_version_delete_event.rbi new file mode 100644 index 00000000..586ea3d9 --- /dev/null +++ b/rbi/imagekitio/models/file_version_delete_event.rbi @@ -0,0 +1,93 @@ +# typed: strong + +module Imagekitio + module Models + class FileVersionDeleteEvent < Imagekitio::Models::BaseWebhookEvent + OrHash = + T.type_alias do + T.any( + Imagekitio::FileVersionDeleteEvent, + Imagekitio::Internal::AnyHash + ) + end + + # Timestamp of when the event occurred in ISO8601 format. + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(Imagekitio::FileVersionDeleteEvent::Data) } + attr_reader :data + + sig do + params(data: Imagekitio::FileVersionDeleteEvent::Data::OrHash).void + end + attr_writer :data + + # Type of the webhook event. + sig { returns(Symbol) } + attr_accessor :type + + # Triggered when a file version is deleted. + sig do + params( + created_at: Time, + data: Imagekitio::FileVersionDeleteEvent::Data::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Timestamp of when the event occurred in ISO8601 format. + created_at:, + data:, + # Type of the webhook event. + type: :"file-version.deleted" + ) + end + + sig do + override.returns( + { + created_at: Time, + data: Imagekitio::FileVersionDeleteEvent::Data, + type: Symbol + } + ) + end + def to_hash + end + + class Data < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::FileVersionDeleteEvent::Data, + Imagekitio::Internal::AnyHash + ) + end + + # The unique `fileId` of the deleted file. + sig { returns(String) } + attr_accessor :file_id + + # The unique `versionId` of the deleted file version. + sig { returns(String) } + attr_accessor :version_id + + sig do + params(file_id: String, version_id: String).returns(T.attached_class) + end + def self.new( + # The unique `fileId` of the deleted file. + file_id:, + # The unique `versionId` of the deleted file version. + version_id: + ) + end + + sig { override.returns({ file_id: String, version_id: String }) } + def to_hash + end + end + end + end +end diff --git a/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi b/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi index 2e878626..2738c1ac 100644 --- a/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi +++ b/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi @@ -17,7 +17,12 @@ module Imagekitio Imagekitio::UploadPreTransformSuccessEvent, Imagekitio::UploadPreTransformErrorEvent, Imagekitio::UploadPostTransformSuccessEvent, - Imagekitio::UploadPostTransformErrorEvent + Imagekitio::UploadPostTransformErrorEvent, + Imagekitio::FileCreateEvent, + Imagekitio::FileUpdateEvent, + Imagekitio::FileDeleteEvent, + Imagekitio::FileVersionCreateEvent, + Imagekitio::FileVersionDeleteEvent ) end diff --git a/rbi/imagekitio/models/unwrap_webhook_event.rbi b/rbi/imagekitio/models/unwrap_webhook_event.rbi index 8dcbd0dd..a567656f 100644 --- a/rbi/imagekitio/models/unwrap_webhook_event.rbi +++ b/rbi/imagekitio/models/unwrap_webhook_event.rbi @@ -17,7 +17,12 @@ module Imagekitio Imagekitio::UploadPreTransformSuccessEvent, Imagekitio::UploadPreTransformErrorEvent, Imagekitio::UploadPostTransformSuccessEvent, - Imagekitio::UploadPostTransformErrorEvent + Imagekitio::UploadPostTransformErrorEvent, + Imagekitio::FileCreateEvent, + Imagekitio::FileUpdateEvent, + Imagekitio::FileDeleteEvent, + Imagekitio::FileVersionCreateEvent, + Imagekitio::FileVersionDeleteEvent ) end diff --git a/rbi/imagekitio/resources/webhooks.rbi b/rbi/imagekitio/resources/webhooks.rbi index 93b2c422..e835a320 100644 --- a/rbi/imagekitio/resources/webhooks.rbi +++ b/rbi/imagekitio/resources/webhooks.rbi @@ -12,7 +12,12 @@ module Imagekitio Imagekitio::UploadPreTransformSuccessEvent, Imagekitio::UploadPreTransformErrorEvent, Imagekitio::UploadPostTransformSuccessEvent, - Imagekitio::UploadPostTransformErrorEvent + Imagekitio::UploadPostTransformErrorEvent, + Imagekitio::FileCreateEvent, + Imagekitio::FileUpdateEvent, + Imagekitio::FileDeleteEvent, + Imagekitio::FileVersionCreateEvent, + Imagekitio::FileVersionDeleteEvent ) ) end @@ -35,7 +40,12 @@ module Imagekitio Imagekitio::UploadPreTransformSuccessEvent, Imagekitio::UploadPreTransformErrorEvent, Imagekitio::UploadPostTransformSuccessEvent, - Imagekitio::UploadPostTransformErrorEvent + Imagekitio::UploadPostTransformErrorEvent, + Imagekitio::FileCreateEvent, + Imagekitio::FileUpdateEvent, + Imagekitio::FileDeleteEvent, + Imagekitio::FileVersionCreateEvent, + Imagekitio::FileVersionDeleteEvent ) ) end diff --git a/sig/imagekitio/models.rbs b/sig/imagekitio/models.rbs index 37031be9..0e631373 100644 --- a/sig/imagekitio/models.rbs +++ b/sig/imagekitio/models.rbs @@ -31,6 +31,10 @@ module Imagekitio class FileCopyParams = Imagekitio::Models::FileCopyParams + class FileCreateEvent = Imagekitio::Models::FileCreateEvent + + class FileDeleteEvent = Imagekitio::Models::FileDeleteEvent + class FileDeleteParams = Imagekitio::Models::FileDeleteParams class FileGetParams = Imagekitio::Models::FileGetParams @@ -41,10 +45,16 @@ module Imagekitio module Files = Imagekitio::Models::Files + class FileUpdateEvent = Imagekitio::Models::FileUpdateEvent + class FileUpdateParams = Imagekitio::Models::FileUpdateParams class FileUploadParams = Imagekitio::Models::FileUploadParams + class FileVersionCreateEvent = Imagekitio::Models::FileVersionCreateEvent + + class FileVersionDeleteEvent = Imagekitio::Models::FileVersionDeleteEvent + class Folder = Imagekitio::Models::Folder class FolderCopyParams = Imagekitio::Models::FolderCopyParams diff --git a/sig/imagekitio/models/file_create_event.rbs b/sig/imagekitio/models/file_create_event.rbs new file mode 100644 index 00000000..d981e2e3 --- /dev/null +++ b/sig/imagekitio/models/file_create_event.rbs @@ -0,0 +1,32 @@ +module Imagekitio + module Models + type file_create_event = + { created_at: Time, data: Imagekitio::File, type: :"file.created" } + + class FileCreateEvent < Imagekitio::Models::BaseWebhookEvent + def created_at: -> Time + + def created_at=: (Time _) -> Time + + def data: -> Imagekitio::File + + def data=: (Imagekitio::File _) -> Imagekitio::File + + def `type`: -> :"file.created" + + def type=: (:"file.created" _) -> :"file.created" + + def initialize: ( + created_at: Time, + data: Imagekitio::File, + ?type: :"file.created" + ) -> void + + def to_hash: -> { + created_at: Time, + data: Imagekitio::File, + type: :"file.created" + } + end + end +end diff --git a/sig/imagekitio/models/file_delete_event.rbs b/sig/imagekitio/models/file_delete_event.rbs new file mode 100644 index 00000000..fd7337cc --- /dev/null +++ b/sig/imagekitio/models/file_delete_event.rbs @@ -0,0 +1,48 @@ +module Imagekitio + module Models + type file_delete_event = + { + created_at: Time, + data: Imagekitio::FileDeleteEvent::Data, + type: :"file.deleted" + } + + class FileDeleteEvent < Imagekitio::Models::BaseWebhookEvent + def created_at: -> Time + + def created_at=: (Time _) -> Time + + def data: -> Imagekitio::FileDeleteEvent::Data + + def data=: ( + Imagekitio::FileDeleteEvent::Data _ + ) -> Imagekitio::FileDeleteEvent::Data + + def `type`: -> :"file.deleted" + + def type=: (:"file.deleted" _) -> :"file.deleted" + + def initialize: ( + created_at: Time, + data: Imagekitio::FileDeleteEvent::Data, + ?type: :"file.deleted" + ) -> void + + def to_hash: -> { + created_at: Time, + data: Imagekitio::FileDeleteEvent::Data, + type: :"file.deleted" + } + + type data = { file_id: String } + + class Data < Imagekitio::Internal::Type::BaseModel + attr_accessor file_id: String + + def initialize: (file_id: String) -> void + + def to_hash: -> { file_id: String } + end + end + end +end diff --git a/sig/imagekitio/models/file_update_event.rbs b/sig/imagekitio/models/file_update_event.rbs new file mode 100644 index 00000000..f9ddae3b --- /dev/null +++ b/sig/imagekitio/models/file_update_event.rbs @@ -0,0 +1,32 @@ +module Imagekitio + module Models + type file_update_event = + { created_at: Time, data: Imagekitio::File, type: :"file.updated" } + + class FileUpdateEvent < Imagekitio::Models::BaseWebhookEvent + def created_at: -> Time + + def created_at=: (Time _) -> Time + + def data: -> Imagekitio::File + + def data=: (Imagekitio::File _) -> Imagekitio::File + + def `type`: -> :"file.updated" + + def type=: (:"file.updated" _) -> :"file.updated" + + def initialize: ( + created_at: Time, + data: Imagekitio::File, + ?type: :"file.updated" + ) -> void + + def to_hash: -> { + created_at: Time, + data: Imagekitio::File, + type: :"file.updated" + } + end + end +end diff --git a/sig/imagekitio/models/file_version_create_event.rbs b/sig/imagekitio/models/file_version_create_event.rbs new file mode 100644 index 00000000..b6872e4c --- /dev/null +++ b/sig/imagekitio/models/file_version_create_event.rbs @@ -0,0 +1,36 @@ +module Imagekitio + module Models + type file_version_create_event = + { + created_at: Time, + data: Imagekitio::File, + type: :"file-version.created" + } + + class FileVersionCreateEvent < Imagekitio::Models::BaseWebhookEvent + def created_at: -> Time + + def created_at=: (Time _) -> Time + + def data: -> Imagekitio::File + + def data=: (Imagekitio::File _) -> Imagekitio::File + + def `type`: -> :"file-version.created" + + def type=: (:"file-version.created" _) -> :"file-version.created" + + def initialize: ( + created_at: Time, + data: Imagekitio::File, + ?type: :"file-version.created" + ) -> void + + def to_hash: -> { + created_at: Time, + data: Imagekitio::File, + type: :"file-version.created" + } + end + end +end diff --git a/sig/imagekitio/models/file_version_delete_event.rbs b/sig/imagekitio/models/file_version_delete_event.rbs new file mode 100644 index 00000000..e4667c92 --- /dev/null +++ b/sig/imagekitio/models/file_version_delete_event.rbs @@ -0,0 +1,50 @@ +module Imagekitio + module Models + type file_version_delete_event = + { + created_at: Time, + data: Imagekitio::FileVersionDeleteEvent::Data, + type: :"file-version.deleted" + } + + class FileVersionDeleteEvent < Imagekitio::Models::BaseWebhookEvent + def created_at: -> Time + + def created_at=: (Time _) -> Time + + def data: -> Imagekitio::FileVersionDeleteEvent::Data + + def data=: ( + Imagekitio::FileVersionDeleteEvent::Data _ + ) -> Imagekitio::FileVersionDeleteEvent::Data + + def `type`: -> :"file-version.deleted" + + def type=: (:"file-version.deleted" _) -> :"file-version.deleted" + + def initialize: ( + created_at: Time, + data: Imagekitio::FileVersionDeleteEvent::Data, + ?type: :"file-version.deleted" + ) -> void + + def to_hash: -> { + created_at: Time, + data: Imagekitio::FileVersionDeleteEvent::Data, + type: :"file-version.deleted" + } + + type data = { file_id: String, version_id: String } + + class Data < Imagekitio::Internal::Type::BaseModel + attr_accessor file_id: String + + attr_accessor version_id: String + + def initialize: (file_id: String, version_id: String) -> void + + def to_hash: -> { file_id: String, version_id: String } + end + end + end +end diff --git a/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs b/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs index 12322bc6..c61e069e 100644 --- a/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs +++ b/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs @@ -8,6 +8,11 @@ module Imagekitio | Imagekitio::UploadPreTransformErrorEvent | Imagekitio::UploadPostTransformSuccessEvent | Imagekitio::UploadPostTransformErrorEvent + | Imagekitio::FileCreateEvent + | Imagekitio::FileUpdateEvent + | Imagekitio::FileDeleteEvent + | Imagekitio::FileVersionCreateEvent + | Imagekitio::FileVersionDeleteEvent module UnsafeUnwrapWebhookEvent extend Imagekitio::Internal::Type::Union diff --git a/sig/imagekitio/models/unwrap_webhook_event.rbs b/sig/imagekitio/models/unwrap_webhook_event.rbs index f6d1bbc3..4468c7b7 100644 --- a/sig/imagekitio/models/unwrap_webhook_event.rbs +++ b/sig/imagekitio/models/unwrap_webhook_event.rbs @@ -8,6 +8,11 @@ module Imagekitio | Imagekitio::UploadPreTransformErrorEvent | Imagekitio::UploadPostTransformSuccessEvent | Imagekitio::UploadPostTransformErrorEvent + | Imagekitio::FileCreateEvent + | Imagekitio::FileUpdateEvent + | Imagekitio::FileDeleteEvent + | Imagekitio::FileVersionCreateEvent + | Imagekitio::FileVersionDeleteEvent module UnwrapWebhookEvent extend Imagekitio::Internal::Type::Union diff --git a/sig/imagekitio/resources/webhooks.rbs b/sig/imagekitio/resources/webhooks.rbs index a3ba0487..5126929f 100644 --- a/sig/imagekitio/resources/webhooks.rbs +++ b/sig/imagekitio/resources/webhooks.rbs @@ -9,7 +9,12 @@ module Imagekitio | Imagekitio::UploadPreTransformSuccessEvent | Imagekitio::UploadPreTransformErrorEvent | Imagekitio::UploadPostTransformSuccessEvent - | Imagekitio::UploadPostTransformErrorEvent) + | Imagekitio::UploadPostTransformErrorEvent + | Imagekitio::FileCreateEvent + | Imagekitio::FileUpdateEvent + | Imagekitio::FileDeleteEvent + | Imagekitio::FileVersionCreateEvent + | Imagekitio::FileVersionDeleteEvent) def unwrap: ( String payload, @@ -21,7 +26,12 @@ module Imagekitio | Imagekitio::UploadPreTransformSuccessEvent | Imagekitio::UploadPreTransformErrorEvent | Imagekitio::UploadPostTransformSuccessEvent - | Imagekitio::UploadPostTransformErrorEvent) + | Imagekitio::UploadPostTransformErrorEvent + | Imagekitio::FileCreateEvent + | Imagekitio::FileUpdateEvent + | Imagekitio::FileDeleteEvent + | Imagekitio::FileVersionCreateEvent + | Imagekitio::FileVersionDeleteEvent) def initialize: (client: Imagekitio::Client) -> void end