From c97f9da47da0c1ce96b1ef07836273e1ba398ac8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:13:45 +0000 Subject: [PATCH 1/2] feat(api): api update --- .stats.yml | 4 +- .../models/content_submit_params.rb | 45 ++++++++++++- lib/moderation_api/resources/content.rb | 2 +- .../models/content_submit_params.rbi | 66 +++++++++++++++++++ rbi/moderation_api/resources/content.rbi | 1 + .../models/content_submit_params.rbs | 32 +++++++++ 6 files changed, 144 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index ec34a10..e615fc9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 27 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/moderation-api/moderation-api-3bb06bde0f76baa35ecc698b0c60371c9eadfd7b58c00b77cbc124d5be5dcb8b.yml -openapi_spec_hash: b4339d93d43fb725be0e98bd3bbf4f0b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/moderation-api/moderation-api-2a9024f55f158ede9f9d4811ab4035e470afc920d0f15513da6603d011b2bef7.yml +openapi_spec_hash: cc3275c46438bd043ac96e669e27276f config_hash: 9d144cc6c49d3fd53e5b4472c1e22165 diff --git a/lib/moderation_api/models/content_submit_params.rb b/lib/moderation_api/models/content_submit_params.rb index f9e3e09..3529be1 100644 --- a/lib/moderation_api/models/content_submit_params.rb +++ b/lib/moderation_api/models/content_submit_params.rb @@ -59,7 +59,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] } @@ -90,7 +90,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 # @@ -403,6 +403,8 @@ module Policy variant -> { ModerationAPI::ContentSubmitParams::Policy::Spam } + variant -> { ModerationAPI::ContentSubmitParams::Policy::LowQualityContent } + variant -> { ModerationAPI::ContentSubmitParams::Policy::SelfPromotion } variant -> { ModerationAPI::ContentSubmitParams::Policy::Political } @@ -837,6 +839,43 @@ class Spam < ModerationAPI::Internal::Type::BaseModel # @param id [Symbol, :spam] end + class LowQualityContent < ModerationAPI::Internal::Type::BaseModel + # @!attribute id + # + # @return [Symbol, :low_quality] + required :id, const: :low_quality + + # @!attribute flag + # + # @return [Boolean] + required :flag, ModerationAPI::Internal::Type::Boolean + + # @!attribute min_words + # Flag content with fewer than this many words as low-effort. Defaults to 3. Set + # to disable by omitting. + # + # @return [Integer, nil] + optional :min_words, Integer, api_name: :minWords + + # @!attribute threshold + # + # @return [Float, nil] + optional :threshold, Float + + # @!method initialize(flag:, min_words: nil, threshold: nil, id: :low_quality) + # Some parameter documentations has been truncated, see + # {ModerationAPI::Models::ContentSubmitParams::Policy::LowQualityContent} for more + # details. + # + # @param flag [Boolean] + # + # @param min_words [Integer] Flag content with fewer than this many words as low-effort. Defaults to 3. Set t + # + # @param threshold [Float] + # + # @param id [Symbol, :low_quality] + end + class SelfPromotion < ModerationAPI::Internal::Type::BaseModel # @!attribute id # @@ -1111,7 +1150,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::SelfPromotion, ModerationAPI::Models::ContentSubmitParams::Policy::Political, ModerationAPI::Models::ContentSubmitParams::Policy::Religion, ModerationAPI::Models::ContentSubmitParams::Policy::CodeAbuse, 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::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::SelfPromotion, ModerationAPI::Models::ContentSubmitParams::Policy::Political, ModerationAPI::Models::ContentSubmitParams::Policy::Religion, ModerationAPI::Models::ContentSubmitParams::Policy::CodeAbuse, 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/content.rb b/lib/moderation_api/resources/content.rb index 5e1ad2b..c6af0d0 100644 --- a/lib/moderation_api/resources/content.rb +++ b/lib/moderation_api/resources/content.rb @@ -24,7 +24,7 @@ class Content # # @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/rbi/moderation_api/models/content_submit_params.rbi b/rbi/moderation_api/models/content_submit_params.rbi index f6725fa..f19f884 100644 --- a/rbi/moderation_api/models/content_submit_params.rbi +++ b/rbi/moderation_api/models/content_submit_params.rbi @@ -111,6 +111,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Violence, ModerationAPI::ContentSubmitParams::Policy::SelfHarm, ModerationAPI::ContentSubmitParams::Policy::Spam, + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent, ModerationAPI::ContentSubmitParams::Policy::SelfPromotion, ModerationAPI::ContentSubmitParams::Policy::Political, ModerationAPI::ContentSubmitParams::Policy::Religion, @@ -150,6 +151,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Violence::OrHash, ModerationAPI::ContentSubmitParams::Policy::SelfHarm::OrHash, ModerationAPI::ContentSubmitParams::Policy::Spam::OrHash, + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent::OrHash, ModerationAPI::ContentSubmitParams::Policy::SelfPromotion::OrHash, ModerationAPI::ContentSubmitParams::Policy::Political::OrHash, ModerationAPI::ContentSubmitParams::Policy::Religion::OrHash, @@ -211,6 +213,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Violence::OrHash, ModerationAPI::ContentSubmitParams::Policy::SelfHarm::OrHash, ModerationAPI::ContentSubmitParams::Policy::Spam::OrHash, + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent::OrHash, ModerationAPI::ContentSubmitParams::Policy::SelfPromotion::OrHash, ModerationAPI::ContentSubmitParams::Policy::Political::OrHash, ModerationAPI::ContentSubmitParams::Policy::Religion::OrHash, @@ -292,6 +295,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Violence, ModerationAPI::ContentSubmitParams::Policy::SelfHarm, ModerationAPI::ContentSubmitParams::Policy::Spam, + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent, ModerationAPI::ContentSubmitParams::Policy::SelfPromotion, ModerationAPI::ContentSubmitParams::Policy::Political, ModerationAPI::ContentSubmitParams::Policy::Religion, @@ -800,6 +804,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Violence, ModerationAPI::ContentSubmitParams::Policy::SelfHarm, ModerationAPI::ContentSubmitParams::Policy::Spam, + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent, ModerationAPI::ContentSubmitParams::Policy::SelfPromotion, ModerationAPI::ContentSubmitParams::Policy::Political, ModerationAPI::ContentSubmitParams::Policy::Religion, @@ -1495,6 +1500,67 @@ module ModerationAPI end end + class LowQualityContent < ModerationAPI::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent, + ModerationAPI::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :id + + sig { returns(T::Boolean) } + attr_accessor :flag + + # Flag content with fewer than this many words as low-effort. Defaults to 3. Set + # to disable by omitting. + sig { returns(T.nilable(Integer)) } + attr_reader :min_words + + sig { params(min_words: Integer).void } + attr_writer :min_words + + sig { returns(T.nilable(Float)) } + attr_reader :threshold + + sig { params(threshold: Float).void } + attr_writer :threshold + + sig do + params( + flag: T::Boolean, + min_words: Integer, + threshold: Float, + id: Symbol + ).returns(T.attached_class) + end + def self.new( + flag:, + # Flag content with fewer than this many words as low-effort. Defaults to 3. Set + # to disable by omitting. + min_words: nil, + threshold: nil, + id: :low_quality + ) + end + + sig do + override.returns( + { + id: Symbol, + flag: T::Boolean, + min_words: Integer, + threshold: Float + } + ) + end + def to_hash + end + end + class SelfPromotion < ModerationAPI::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/moderation_api/resources/content.rbi b/rbi/moderation_api/resources/content.rbi index a11a4bd..d7dc19f 100644 --- a/rbi/moderation_api/resources/content.rbi +++ b/rbi/moderation_api/resources/content.rbi @@ -42,6 +42,7 @@ module ModerationAPI ModerationAPI::ContentSubmitParams::Policy::Violence::OrHash, ModerationAPI::ContentSubmitParams::Policy::SelfHarm::OrHash, ModerationAPI::ContentSubmitParams::Policy::Spam::OrHash, + ModerationAPI::ContentSubmitParams::Policy::LowQualityContent::OrHash, ModerationAPI::ContentSubmitParams::Policy::SelfPromotion::OrHash, ModerationAPI::ContentSubmitParams::Policy::Political::OrHash, ModerationAPI::ContentSubmitParams::Policy::Religion::OrHash, diff --git a/sig/moderation_api/models/content_submit_params.rbs b/sig/moderation_api/models/content_submit_params.rbs index bed50ab..117e551 100644 --- a/sig/moderation_api/models/content_submit_params.rbs +++ b/sig/moderation_api/models/content_submit_params.rbs @@ -293,6 +293,7 @@ module ModerationAPI | ModerationAPI::ContentSubmitParams::Policy::Violence | ModerationAPI::ContentSubmitParams::Policy::SelfHarm | ModerationAPI::ContentSubmitParams::Policy::Spam + | ModerationAPI::ContentSubmitParams::Policy::LowQualityContent | ModerationAPI::ContentSubmitParams::Policy::SelfPromotion | ModerationAPI::ContentSubmitParams::Policy::Political | ModerationAPI::ContentSubmitParams::Policy::Religion @@ -680,6 +681,37 @@ module ModerationAPI def to_hash: -> { id: :spam, flag: bool, threshold: Float } end + type low_quality_content = + { id: :low_quality, flag: bool, min_words: Integer, threshold: Float } + + class LowQualityContent < ModerationAPI::Internal::Type::BaseModel + attr_accessor id: :low_quality + + attr_accessor flag: bool + + attr_reader min_words: Integer? + + def min_words=: (Integer) -> Integer + + attr_reader threshold: Float? + + def threshold=: (Float) -> Float + + def initialize: ( + flag: bool, + ?min_words: Integer, + ?threshold: Float, + ?id: :low_quality + ) -> void + + def to_hash: -> { + id: :low_quality, + flag: bool, + min_words: Integer, + threshold: Float + } + end + type self_promotion = { id: :self_promotion, flag: bool, threshold: Float } From a47079bc7ed01ea47a6e75f8ad55b858a919c9ef Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:14:51 +0000 Subject: [PATCH 2/2] release: 2.19.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ Gemfile.lock | 2 +- README.md | 2 +- lib/moderation_api/version.rb | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index ca3496a..60b44f4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.18.0" + ".": "2.19.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 6aced00..a3830a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.19.0 (2026-06-01) + +Full Changelog: [v2.18.0...v2.19.0](https://github.com/moderation-api/sdk-ruby/compare/v2.18.0...v2.19.0) + +### Features + +* **api:** api update ([c97f9da](https://github.com/moderation-api/sdk-ruby/commit/c97f9da47da0c1ce96b1ef07836273e1ba398ac8)) + ## 2.18.0 (2026-05-19) Full Changelog: [v2.17.1...v2.18.0](https://github.com/moderation-api/sdk-ruby/compare/v2.17.1...v2.18.0) diff --git a/Gemfile.lock b/Gemfile.lock index 83860cd..62afcc7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - moderation_api (2.18.0) + moderation_api (2.19.0) cgi connection_pool diff --git a/README.md b/README.md index 0ea1e80..4f3dcff 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.18.0" +gem "moderation_api", "~> 2.19.0" ``` diff --git a/lib/moderation_api/version.rb b/lib/moderation_api/version.rb index 4746e1c..0707e1c 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.18.0" + VERSION = "2.19.0" end