diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 69efe8f..29ad411 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.40.0" + ".": "2.41.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 7564488..ac64174 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 34 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/moderation-api/moderation-api-4e324c5b209f6b1e2451e0fbafd20b35ba5fe2b57e3c70dd082faad332c3b779.yml -openapi_spec_hash: e974a7107729bb684c55008102a17754 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/moderation-api/moderation-api-a4c5163e3271601b36a74223b756d304ce8246f832f8c531d53cdd30f9ee4c68.yml +openapi_spec_hash: fd9fe8a54c1c46032bd5fccb995f04b8 config_hash: 6e090a71f4d354167d93b4534a0e7f05 diff --git a/CHANGELOG.md b/CHANGELOG.md index 52e81c9..0369496 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 2.41.0 (2026-09-14) + +Full Changelog: [v2.40.0...v2.41.0](https://github.com/moderation-api/sdk-ruby/compare/v2.40.0...v2.41.0) + +### Features + +* **api:** api update ([0bd8a67](https://github.com/moderation-api/sdk-ruby/commit/0bd8a67acc01c28b5d95cf976b9a573e779ec249)) +* **api:** api update ([99151aa](https://github.com/moderation-api/sdk-ruby/commit/99151aa7336b11514ce4c78f1dabd55418c45c3a)) + ## 2.40.0 (2026-08-28) Full Changelog: [v2.39.0...v2.40.0](https://github.com/moderation-api/sdk-ruby/compare/v2.39.0...v2.40.0) diff --git a/Gemfile.lock b/Gemfile.lock index a56e56e..b438c48 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - moderation_api (2.40.0) + moderation_api (2.41.0) cgi connection_pool diff --git a/README.md b/README.md index a2770b5..d36e69d 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "moderation_api", "~> 2.40.0" +gem "moderation_api", "~> 2.41.0" ``` diff --git a/lib/moderation_api/models/author_delete_params.rb b/lib/moderation_api/models/author_delete_params.rb index ffc5924..5510c9e 100644 --- a/lib/moderation_api/models/author_delete_params.rb +++ b/lib/moderation_api/models/author_delete_params.rb @@ -8,12 +8,14 @@ class AuthorDeleteParams < ModerationAPI::Internal::Type::BaseModel include ModerationAPI::Internal::Type::RequestParameters # @!attribute id + # Either external ID or the ID assigned by moderation API. # # @return [String] required :id, String # @!method initialize(id:, request_options: {}) - # @param id [String] + # @param id [String] Either external ID or the ID assigned by moderation API. + # # @param request_options [ModerationAPI::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/moderation_api/models/content_submit_params.rb b/lib/moderation_api/models/content_submit_params.rb index c58caf0..5b7fa6b 100644 --- a/lib/moderation_api/models/content_submit_params.rb +++ b/lib/moderation_api/models/content_submit_params.rb @@ -71,7 +71,7 @@ class ContentSubmitParams < ModerationAPI::Internal::Type::BaseModel # @!attribute policies # (Enterprise) override the channel policies for this moderation request only. # - # @return [Array, nil] + # @return [Array, nil] optional :policies, -> { ModerationAPI::Internal::Type::ArrayOf[union: ModerationAPI::ContentSubmitParams::Policy] } @@ -104,7 +104,7 @@ class ContentSubmitParams < ModerationAPI::Internal::Type::BaseModel # # @param meta_type [Symbol, ModerationAPI::Models::ContentSubmitParams::MetaType] The meta type of content being moderated # - # @param policies [Array] (Enterprise) override the channel policies for this moderation request only. + # @param policies [Array] (Enterprise) override the channel policies for this moderation request only. # # @param timestamp [Float] Unix timestamp (in milliseconds) of when the content was created. Use if content # @@ -479,6 +479,8 @@ module Policy variant -> { ModerationAPI::ContentSubmitParams::Policy::Sexual } + variant -> { ModerationAPI::ContentSubmitParams::Policy::SexualMinors } + variant -> { ModerationAPI::ContentSubmitParams::Policy::Flirtation } variant -> { ModerationAPI::ContentSubmitParams::Policy::Profanity } @@ -819,6 +821,28 @@ class Sexual < ModerationAPI::Internal::Type::BaseModel # @param id [Symbol, :sexual] end + class SexualMinors < ModerationAPI::Internal::Type::BaseModel + # @!attribute id + # + # @return [Symbol, :sexual_minors] + required :id, const: :sexual_minors + + # @!attribute flag + # + # @return [Boolean] + required :flag, ModerationAPI::Internal::Type::Boolean + + # @!attribute threshold + # + # @return [Float, nil] + optional :threshold, Float + + # @!method initialize(flag:, threshold: nil, id: :sexual_minors) + # @param flag [Boolean] + # @param threshold [Float] + # @param id [Symbol, :sexual_minors] + end + class Flirtation < ModerationAPI::Internal::Type::BaseModel # @!attribute id # @@ -1350,7 +1374,7 @@ class Guideline < ModerationAPI::Internal::Type::BaseModel end # @!method self.variants - # @return [Array(ModerationAPI::Models::ContentSubmitParams::Policy::Toxicity, ModerationAPI::Models::ContentSubmitParams::Policy::PersonalInformation, ModerationAPI::Models::ContentSubmitParams::Policy::ToxicitySevere, ModerationAPI::Models::ContentSubmitParams::Policy::Hate, ModerationAPI::Models::ContentSubmitParams::Policy::Illicit, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitDrugs, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitAlcohol, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitFirearms, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitTobacco, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitGambling, ModerationAPI::Models::ContentSubmitParams::Policy::Cannabis, ModerationAPI::Models::ContentSubmitParams::Policy::Adult, ModerationAPI::Models::ContentSubmitParams::Policy::Crypto, ModerationAPI::Models::ContentSubmitParams::Policy::Sexual, ModerationAPI::Models::ContentSubmitParams::Policy::Flirtation, ModerationAPI::Models::ContentSubmitParams::Policy::Profanity, ModerationAPI::Models::ContentSubmitParams::Policy::Violence, ModerationAPI::Models::ContentSubmitParams::Policy::SelfHarm, ModerationAPI::Models::ContentSubmitParams::Policy::Spam, ModerationAPI::Models::ContentSubmitParams::Policy::LowQualityContent, ModerationAPI::Models::ContentSubmitParams::Policy::FaceDetection, ModerationAPI::Models::ContentSubmitParams::Policy::SelfPromotion, ModerationAPI::Models::ContentSubmitParams::Policy::Political, ModerationAPI::Models::ContentSubmitParams::Policy::Religion, ModerationAPI::Models::ContentSubmitParams::Policy::CodeAbuse, ModerationAPI::Models::ContentSubmitParams::Policy::UnicodeSpoofing, ModerationAPI::Models::ContentSubmitParams::Policy::PiiMasking, ModerationAPI::Models::ContentSubmitParams::Policy::URLMasking, ModerationAPI::Models::ContentSubmitParams::Policy::URLRisk, ModerationAPI::Models::ContentSubmitParams::Policy::Guideline)] + # @return [Array(ModerationAPI::Models::ContentSubmitParams::Policy::Toxicity, ModerationAPI::Models::ContentSubmitParams::Policy::PersonalInformation, ModerationAPI::Models::ContentSubmitParams::Policy::ToxicitySevere, ModerationAPI::Models::ContentSubmitParams::Policy::Hate, ModerationAPI::Models::ContentSubmitParams::Policy::Illicit, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitDrugs, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitAlcohol, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitFirearms, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitTobacco, ModerationAPI::Models::ContentSubmitParams::Policy::IllicitGambling, ModerationAPI::Models::ContentSubmitParams::Policy::Cannabis, ModerationAPI::Models::ContentSubmitParams::Policy::Adult, ModerationAPI::Models::ContentSubmitParams::Policy::Crypto, ModerationAPI::Models::ContentSubmitParams::Policy::Sexual, ModerationAPI::Models::ContentSubmitParams::Policy::SexualMinors, ModerationAPI::Models::ContentSubmitParams::Policy::Flirtation, ModerationAPI::Models::ContentSubmitParams::Policy::Profanity, ModerationAPI::Models::ContentSubmitParams::Policy::Violence, ModerationAPI::Models::ContentSubmitParams::Policy::SelfHarm, ModerationAPI::Models::ContentSubmitParams::Policy::Spam, ModerationAPI::Models::ContentSubmitParams::Policy::LowQualityContent, ModerationAPI::Models::ContentSubmitParams::Policy::FaceDetection, ModerationAPI::Models::ContentSubmitParams::Policy::SelfPromotion, ModerationAPI::Models::ContentSubmitParams::Policy::Political, ModerationAPI::Models::ContentSubmitParams::Policy::Religion, ModerationAPI::Models::ContentSubmitParams::Policy::CodeAbuse, ModerationAPI::Models::ContentSubmitParams::Policy::UnicodeSpoofing, ModerationAPI::Models::ContentSubmitParams::Policy::PiiMasking, ModerationAPI::Models::ContentSubmitParams::Policy::URLMasking, ModerationAPI::Models::ContentSubmitParams::Policy::URLRisk, ModerationAPI::Models::ContentSubmitParams::Policy::Guideline)] end end end diff --git a/lib/moderation_api/resources/authors.rb b/lib/moderation_api/resources/authors.rb index 26b1593..e6a5359 100644 --- a/lib/moderation_api/resources/authors.rb +++ b/lib/moderation_api/resources/authors.rb @@ -154,11 +154,14 @@ def list(params = {}) ) end - # Delete a specific author + # Delete a specific author. This resets the author: status, blocks, trust level, + # metrics and action history are removed. The author is created again with a clean + # record the next time content is moderated for the same ID. # # @overload delete(id, request_options: {}) # - # @param id [String] + # @param id [String] Either external ID or the ID assigned by moderation API. + # # @param request_options [ModerationAPI::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [ModerationAPI::Models::AuthorDeleteResponse] diff --git a/lib/moderation_api/resources/content.rb b/lib/moderation_api/resources/content.rb index 4c61a68..421d13a 100644 --- a/lib/moderation_api/resources/content.rb +++ b/lib/moderation_api/resources/content.rb @@ -68,7 +68,7 @@ def stream(params) # # @param meta_type [Symbol, ModerationAPI::Models::ContentSubmitParams::MetaType] The meta type of content being moderated # - # @param policies [Array] (Enterprise) override the channel policies for this moderation request only. + # @param policies [Array] (Enterprise) override the channel policies for this moderation request only. # # @param timestamp [Float] Unix timestamp (in milliseconds) of when the content was created. Use if content # diff --git a/lib/moderation_api/version.rb b/lib/moderation_api/version.rb index 6e07454..0dfb555 100644 --- a/lib/moderation_api/version.rb +++ b/lib/moderation_api/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module ModerationAPI - VERSION = "2.40.0" + VERSION = "2.41.0" end diff --git a/rbi/moderation_api/models/author_delete_params.rbi b/rbi/moderation_api/models/author_delete_params.rbi index c80a215..0c3e374 100644 --- a/rbi/moderation_api/models/author_delete_params.rbi +++ b/rbi/moderation_api/models/author_delete_params.rbi @@ -14,6 +14,7 @@ module ModerationAPI ) end + # Either external ID or the ID assigned by moderation API. sig { returns(String) } attr_accessor :id @@ -23,7 +24,11 @@ module ModerationAPI request_options: ModerationAPI::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(id:, request_options: {}) + def self.new( + # Either external ID or the ID assigned by moderation API. + id:, + request_options: {} + ) end sig do diff --git a/rbi/moderation_api/models/content_submit_params.rbi b/rbi/moderation_api/models/content_submit_params.rbi index 35ce856..d444fdd 100644 --- a/rbi/moderation_api/models/content_submit_params.rbi +++ b/rbi/moderation_api/models/content_submit_params.rbi @@ -122,6 +122,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Adult, ModerationAPI::ContentSubmitParams::Policy::Crypto, ModerationAPI::ContentSubmitParams::Policy::Sexual, + ModerationAPI::ContentSubmitParams::Policy::SexualMinors, ModerationAPI::ContentSubmitParams::Policy::Flirtation, ModerationAPI::ContentSubmitParams::Policy::Profanity, ModerationAPI::ContentSubmitParams::Policy::Violence, @@ -164,6 +165,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Adult::OrHash, ModerationAPI::ContentSubmitParams::Policy::Crypto::OrHash, ModerationAPI::ContentSubmitParams::Policy::Sexual::OrHash, + ModerationAPI::ContentSubmitParams::Policy::SexualMinors::OrHash, ModerationAPI::ContentSubmitParams::Policy::Flirtation::OrHash, ModerationAPI::ContentSubmitParams::Policy::Profanity::OrHash, ModerationAPI::ContentSubmitParams::Policy::Violence::OrHash, @@ -230,6 +232,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Adult::OrHash, ModerationAPI::ContentSubmitParams::Policy::Crypto::OrHash, ModerationAPI::ContentSubmitParams::Policy::Sexual::OrHash, + ModerationAPI::ContentSubmitParams::Policy::SexualMinors::OrHash, ModerationAPI::ContentSubmitParams::Policy::Flirtation::OrHash, ModerationAPI::ContentSubmitParams::Policy::Profanity::OrHash, ModerationAPI::ContentSubmitParams::Policy::Violence::OrHash, @@ -319,6 +322,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Adult, ModerationAPI::ContentSubmitParams::Policy::Crypto, ModerationAPI::ContentSubmitParams::Policy::Sexual, + ModerationAPI::ContentSubmitParams::Policy::SexualMinors, ModerationAPI::ContentSubmitParams::Policy::Flirtation, ModerationAPI::ContentSubmitParams::Policy::Profanity, ModerationAPI::ContentSubmitParams::Policy::Violence, @@ -1003,6 +1007,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Adult, ModerationAPI::ContentSubmitParams::Policy::Crypto, ModerationAPI::ContentSubmitParams::Policy::Sexual, + ModerationAPI::ContentSubmitParams::Policy::SexualMinors, ModerationAPI::ContentSubmitParams::Policy::Flirtation, ModerationAPI::ContentSubmitParams::Policy::Profanity, ModerationAPI::ContentSubmitParams::Policy::Violence, @@ -1526,6 +1531,42 @@ module ModerationAPI end end + class SexualMinors < ModerationAPI::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + ModerationAPI::ContentSubmitParams::Policy::SexualMinors, + ModerationAPI::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :id + + sig { returns(T::Boolean) } + attr_accessor :flag + + sig { returns(T.nilable(Float)) } + attr_reader :threshold + + sig { params(threshold: Float).void } + attr_writer :threshold + + sig do + params(flag: T::Boolean, threshold: Float, id: Symbol).returns( + T.attached_class + ) + end + def self.new(flag:, threshold: nil, id: :sexual_minors) + end + + sig do + override.returns({ id: Symbol, flag: T::Boolean, threshold: Float }) + end + def to_hash + end + end + class Flirtation < ModerationAPI::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/moderation_api/resources/authors.rbi b/rbi/moderation_api/resources/authors.rbi index 5d92ae8..e8eca33 100644 --- a/rbi/moderation_api/resources/authors.rbi +++ b/rbi/moderation_api/resources/authors.rbi @@ -130,14 +130,20 @@ module ModerationAPI ) end - # Delete a specific author + # Delete a specific author. This resets the author: status, blocks, trust level, + # metrics and action history are removed. The author is created again with a clean + # record the next time content is moderated for the same ID. sig do params( id: String, request_options: ModerationAPI::RequestOptions::OrHash ).returns(ModerationAPI::Models::AuthorDeleteResponse) end - def delete(id, request_options: {}) + def delete( + # Either external ID or the ID assigned by moderation API. + id, + request_options: {} + ) end # @api private diff --git a/rbi/moderation_api/resources/content.rbi b/rbi/moderation_api/resources/content.rbi index 98fb6ae..7fa348d 100644 --- a/rbi/moderation_api/resources/content.rbi +++ b/rbi/moderation_api/resources/content.rbi @@ -73,6 +73,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Adult::OrHash, ModerationAPI::ContentSubmitParams::Policy::Crypto::OrHash, ModerationAPI::ContentSubmitParams::Policy::Sexual::OrHash, + ModerationAPI::ContentSubmitParams::Policy::SexualMinors::OrHash, ModerationAPI::ContentSubmitParams::Policy::Flirtation::OrHash, ModerationAPI::ContentSubmitParams::Policy::Profanity::OrHash, ModerationAPI::ContentSubmitParams::Policy::Violence::OrHash, diff --git a/sig/moderation_api/models/content_submit_params.rbs b/sig/moderation_api/models/content_submit_params.rbs index 8958d91..a997e82 100644 --- a/sig/moderation_api/models/content_submit_params.rbs +++ b/sig/moderation_api/models/content_submit_params.rbs @@ -362,6 +362,7 @@ module ModerationAPI | ModerationAPI::ContentSubmitParams::Policy::Adult | ModerationAPI::ContentSubmitParams::Policy::Crypto | ModerationAPI::ContentSubmitParams::Policy::Sexual + | ModerationAPI::ContentSubmitParams::Policy::SexualMinors | ModerationAPI::ContentSubmitParams::Policy::Flirtation | ModerationAPI::ContentSubmitParams::Policy::Profanity | ModerationAPI::ContentSubmitParams::Policy::Violence @@ -661,6 +662,27 @@ module ModerationAPI def to_hash: -> { id: :sexual, flag: bool, threshold: Float } end + type sexual_minors = + { id: :sexual_minors, flag: bool, threshold: Float } + + class SexualMinors < ModerationAPI::Internal::Type::BaseModel + attr_accessor id: :sexual_minors + + attr_accessor flag: bool + + attr_reader threshold: Float? + + def threshold=: (Float) -> Float + + def initialize: ( + flag: bool, + ?threshold: Float, + ?id: :sexual_minors + ) -> void + + def to_hash: -> { id: :sexual_minors, flag: bool, threshold: Float } + end + type flirtation = { id: :flirtation, flag: bool, threshold: Float } class Flirtation < ModerationAPI::Internal::Type::BaseModel