diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 5868289..cff01f2 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.14.0" + ".": "2.15.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 5019f81..a8430a3 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%2Fmoderation-api-5cee858ce17e48e25e7503767dd979c6570a485511274e48129a1922eae67098.yml -openapi_spec_hash: 54c716ac4e888bfddc2c6402192bb33a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/moderation-api/moderation-api-6fe842e0549fd5b4fdb1cca0bf44fa9f71a107ca98eb30a9bb3e4d3c2adeaca9.yml +openapi_spec_hash: ee56658b235950cbf3808b56ddde4919 config_hash: 13d10207114afb65f7ac4e21f4c0e358 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c7ed3f..a86bedb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.15.0 (2026-05-06) + +Full Changelog: [v2.14.0...v2.15.0](https://github.com/moderation-api/sdk-ruby/compare/v2.14.0...v2.15.0) + +### Features + +* **api:** api update ([db53bf6](https://github.com/moderation-api/sdk-ruby/commit/db53bf6ff1ba85a2a7fab66b097317133a377e5f)) + ## 2.14.0 (2026-04-29) Full Changelog: [v2.13.0...v2.14.0](https://github.com/moderation-api/sdk-ruby/compare/v2.13.0...v2.14.0) diff --git a/Gemfile.lock b/Gemfile.lock index 9afa770..7b50043 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - moderation_api (2.14.0) + moderation_api (2.15.0) cgi connection_pool diff --git a/README.md b/README.md index d4d797d..967fd67 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.14.0" +gem "moderation_api", "~> 2.15.0" ``` diff --git a/lib/moderation_api/models/author_create_params.rb b/lib/moderation_api/models/author_create_params.rb index aa779d0..f8c218d 100644 --- a/lib/moderation_api/models/author_create_params.rb +++ b/lib/moderation_api/models/author_create_params.rb @@ -13,6 +13,12 @@ class AuthorCreateParams < ModerationAPI::Internal::Type::BaseModel # @return [String] required :external_id, String + # @!attribute company + # The author's company or organization + # + # @return [String, nil] + optional :company, String, nil?: true + # @!attribute email # Author email address # @@ -61,12 +67,14 @@ class AuthorCreateParams < ModerationAPI::Internal::Type::BaseModel # @return [String, nil] optional :profile_picture, String, nil?: true - # @!method initialize(external_id:, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) + # @!method initialize(external_id:, company: nil, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::AuthorCreateParams} for more details. # # @param external_id [String] External ID of the user, typically the ID of the author in your database. # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_link [String, nil] URL of the author's external profile diff --git a/lib/moderation_api/models/author_create_response.rb b/lib/moderation_api/models/author_create_response.rb index 2ff341b..1787150 100644 --- a/lib/moderation_api/models/author_create_response.rb +++ b/lib/moderation_api/models/author_create_response.rb @@ -57,6 +57,12 @@ class AuthorCreateResponse < ModerationAPI::Internal::Type::BaseModel # @return [ModerationAPI::Models::AuthorCreateResponse::TrustLevel] required :trust_level, -> { ModerationAPI::Models::AuthorCreateResponse::TrustLevel } + # @!attribute company + # The author's company or organization + # + # @return [String, nil] + optional :company, String, nil?: true + # @!attribute email # Author email address # @@ -93,7 +99,7 @@ class AuthorCreateResponse < ModerationAPI::Internal::Type::BaseModel # @return [String, nil] optional :profile_picture, String, nil?: true - # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) + # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, company: nil, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::AuthorCreateResponse} for more details. # @@ -115,6 +121,8 @@ class AuthorCreateResponse < ModerationAPI::Internal::Type::BaseModel # # @param trust_level [ModerationAPI::Models::AuthorCreateResponse::TrustLevel] # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_id [String, nil] The author's ID from your system diff --git a/lib/moderation_api/models/author_list_response.rb b/lib/moderation_api/models/author_list_response.rb index 16dc108..513fbc7 100644 --- a/lib/moderation_api/models/author_list_response.rb +++ b/lib/moderation_api/models/author_list_response.rb @@ -75,6 +75,12 @@ class Author < ModerationAPI::Internal::Type::BaseModel # @return [ModerationAPI::Models::AuthorListResponse::Author::TrustLevel] required :trust_level, -> { ModerationAPI::Models::AuthorListResponse::Author::TrustLevel } + # @!attribute company + # The author's company or organization + # + # @return [String, nil] + optional :company, String, nil?: true + # @!attribute email # Author email address # @@ -111,7 +117,7 @@ class Author < ModerationAPI::Internal::Type::BaseModel # @return [String, nil] optional :profile_picture, String, nil?: true - # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) + # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, company: nil, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::AuthorListResponse::Author} for more details. # @@ -133,6 +139,8 @@ class Author < ModerationAPI::Internal::Type::BaseModel # # @param trust_level [ModerationAPI::Models::AuthorListResponse::Author::TrustLevel] # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_id [String, nil] The author's ID from your system diff --git a/lib/moderation_api/models/author_retrieve_response.rb b/lib/moderation_api/models/author_retrieve_response.rb index 2a32479..ac9b3c9 100644 --- a/lib/moderation_api/models/author_retrieve_response.rb +++ b/lib/moderation_api/models/author_retrieve_response.rb @@ -59,6 +59,12 @@ class AuthorRetrieveResponse < ModerationAPI::Internal::Type::BaseModel # @return [ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel] required :trust_level, -> { ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel } + # @!attribute company + # The author's company or organization + # + # @return [String, nil] + optional :company, String, nil?: true + # @!attribute email # Author email address # @@ -95,7 +101,7 @@ class AuthorRetrieveResponse < ModerationAPI::Internal::Type::BaseModel # @return [String, nil] optional :profile_picture, String, nil?: true - # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) + # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, company: nil, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::AuthorRetrieveResponse} for more details. # @@ -117,6 +123,8 @@ class AuthorRetrieveResponse < ModerationAPI::Internal::Type::BaseModel # # @param trust_level [ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel] # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_id [String, nil] The author's ID from your system diff --git a/lib/moderation_api/models/author_update_params.rb b/lib/moderation_api/models/author_update_params.rb index 4644a31..6e5160d 100644 --- a/lib/moderation_api/models/author_update_params.rb +++ b/lib/moderation_api/models/author_update_params.rb @@ -13,6 +13,12 @@ class AuthorUpdateParams < ModerationAPI::Internal::Type::BaseModel # @return [String] required :id, String + # @!attribute company + # The author's company or organization + # + # @return [String, nil] + optional :company, String, nil?: true + # @!attribute email # Author email address # @@ -61,12 +67,14 @@ class AuthorUpdateParams < ModerationAPI::Internal::Type::BaseModel # @return [String, nil] optional :profile_picture, String, nil?: true - # @!method initialize(id:, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) + # @!method initialize(id:, company: nil, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::AuthorUpdateParams} for more details. # # @param id [String] Either external ID or the ID assigned by moderation API. # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_link [String, nil] URL of the author's external profile diff --git a/lib/moderation_api/models/author_update_response.rb b/lib/moderation_api/models/author_update_response.rb index 2a02452..4168e53 100644 --- a/lib/moderation_api/models/author_update_response.rb +++ b/lib/moderation_api/models/author_update_response.rb @@ -57,6 +57,12 @@ class AuthorUpdateResponse < ModerationAPI::Internal::Type::BaseModel # @return [ModerationAPI::Models::AuthorUpdateResponse::TrustLevel] required :trust_level, -> { ModerationAPI::Models::AuthorUpdateResponse::TrustLevel } + # @!attribute company + # The author's company or organization + # + # @return [String, nil] + optional :company, String, nil?: true + # @!attribute email # Author email address # @@ -93,7 +99,7 @@ class AuthorUpdateResponse < ModerationAPI::Internal::Type::BaseModel # @return [String, nil] optional :profile_picture, String, nil?: true - # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) + # @!method initialize(id:, block:, first_seen:, last_seen:, metadata:, metrics:, risk_evaluation:, status:, trust_level:, company: nil, email: nil, external_id: nil, external_link: nil, last_incident: nil, name: nil, profile_picture: nil) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::AuthorUpdateResponse} for more details. # @@ -115,6 +121,8 @@ class AuthorUpdateResponse < ModerationAPI::Internal::Type::BaseModel # # @param trust_level [ModerationAPI::Models::AuthorUpdateResponse::TrustLevel] # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_id [String, nil] The author's ID from your system diff --git a/lib/moderation_api/models/content_submit_params.rb b/lib/moderation_api/models/content_submit_params.rb index c962081..f9e3e09 100644 --- a/lib/moderation_api/models/content_submit_params.rb +++ b/lib/moderation_api/models/content_submit_params.rb @@ -1045,12 +1045,21 @@ class URLRisk < ModerationAPI::Internal::Type::BaseModel ModerationAPI::Internal::Type::ArrayOf[String], api_name: :blocklistWordlistIds + # @!attribute flag_link_shorteners + # When true, any URL detected as a free link shortener (bit.ly, t.co, tinyurl, + # etc.) is always flagged regardless of risk score. Allowlist matches still win. + # + # @return [Boolean, nil] + optional :flag_link_shorteners, + ModerationAPI::Internal::Type::Boolean, + api_name: :flagLinkShorteners + # @!attribute threshold # # @return [Float, nil] optional :threshold, Float - # @!method initialize(flag:, allowlist_wordlist_ids: nil, blocklist_wordlist_ids: nil, threshold: nil, id: :url_risk) + # @!method initialize(flag:, allowlist_wordlist_ids: nil, blocklist_wordlist_ids: nil, flag_link_shorteners: nil, threshold: nil, id: :url_risk) # Some parameter documentations has been truncated, see # {ModerationAPI::Models::ContentSubmitParams::Policy::URLRisk} for more details. # @@ -1060,6 +1069,8 @@ class URLRisk < ModerationAPI::Internal::Type::BaseModel # # @param blocklist_wordlist_ids [Array] IDs of wordlists whose entries are treated as blocked URL domains. Matches short # + # @param flag_link_shorteners [Boolean] When true, any URL detected as a free link shortener (bit.ly, t.co, tinyurl, etc + # # @param threshold [Float] # # @param id [Symbol, :url_risk] diff --git a/lib/moderation_api/resources/authors.rb b/lib/moderation_api/resources/authors.rb index 835c2a7..26b1593 100644 --- a/lib/moderation_api/resources/authors.rb +++ b/lib/moderation_api/resources/authors.rb @@ -9,10 +9,12 @@ class Authors # Create a new author. Typically not needed as authors are created automatically # when content is moderated. # - # @overload create(external_id:, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) + # @overload create(external_id:, company: nil, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) # # @param external_id [String] External ID of the user, typically the ID of the author in your database. # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_link [String, nil] URL of the author's external profile @@ -71,10 +73,12 @@ def retrieve(id, params = {}) # # Update the details of a specific author # - # @overload update(id, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) + # @overload update(id, company: nil, email: nil, external_link: nil, first_seen: nil, last_seen: nil, manual_trust_level: nil, metadata: nil, name: nil, profile_picture: nil, request_options: {}) # # @param id [String] Either external ID or the ID assigned by moderation API. # + # @param company [String, nil] The author's company or organization + # # @param email [String, nil] Author email address # # @param external_link [String, nil] URL of the author's external profile diff --git a/lib/moderation_api/version.rb b/lib/moderation_api/version.rb index d3f5d7c..8714383 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.14.0" + VERSION = "2.15.0" end diff --git a/rbi/moderation_api/models/author_create_params.rbi b/rbi/moderation_api/models/author_create_params.rbi index 2f5ee02..f7947e2 100644 --- a/rbi/moderation_api/models/author_create_params.rbi +++ b/rbi/moderation_api/models/author_create_params.rbi @@ -18,6 +18,10 @@ module ModerationAPI sig { returns(String) } attr_accessor :external_id + # The author's company or organization + sig { returns(T.nilable(String)) } + attr_accessor :company + # Author email address sig { returns(T.nilable(String)) } attr_accessor :email @@ -66,6 +70,7 @@ module ModerationAPI sig do params( external_id: String, + company: T.nilable(String), email: T.nilable(String), external_link: T.nilable(String), first_seen: Float, @@ -80,6 +85,8 @@ module ModerationAPI def self.new( # External ID of the user, typically the ID of the author in your database. external_id:, + # The author's company or organization + company: nil, # Author email address email: nil, # URL of the author's external profile @@ -104,6 +111,7 @@ module ModerationAPI override.returns( { external_id: String, + company: T.nilable(String), email: T.nilable(String), external_link: T.nilable(String), first_seen: Float, diff --git a/rbi/moderation_api/models/author_create_response.rbi b/rbi/moderation_api/models/author_create_response.rbi index 29584e3..4c2dab0 100644 --- a/rbi/moderation_api/models/author_create_response.rbi +++ b/rbi/moderation_api/models/author_create_response.rbi @@ -99,6 +99,10 @@ module ModerationAPI end attr_writer :trust_level + # The author's company or organization + sig { returns(T.nilable(String)) } + attr_accessor :company + # Author email address sig { returns(T.nilable(String)) } attr_accessor :email @@ -142,6 +146,7 @@ module ModerationAPI status: ModerationAPI::Models::AuthorCreateResponse::Status::OrSymbol, trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel::OrHash, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), @@ -168,6 +173,8 @@ module ModerationAPI # Current author status status:, trust_level:, + # The author's company or organization + company: nil, # Author email address email: nil, # The author's ID from your system @@ -201,6 +208,7 @@ module ModerationAPI ModerationAPI::Models::AuthorCreateResponse::Status::TaggedSymbol, trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), diff --git a/rbi/moderation_api/models/author_list_response.rbi b/rbi/moderation_api/models/author_list_response.rbi index e4dbdb9..fcb71fc 100644 --- a/rbi/moderation_api/models/author_list_response.rbi +++ b/rbi/moderation_api/models/author_list_response.rbi @@ -158,6 +158,10 @@ module ModerationAPI end attr_writer :trust_level + # The author's company or organization + sig { returns(T.nilable(String)) } + attr_accessor :company + # Author email address sig { returns(T.nilable(String)) } attr_accessor :email @@ -203,6 +207,7 @@ module ModerationAPI ModerationAPI::Models::AuthorListResponse::Author::Status::OrSymbol, trust_level: ModerationAPI::Models::AuthorListResponse::Author::TrustLevel::OrHash, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), @@ -229,6 +234,8 @@ module ModerationAPI # Current author status status:, trust_level:, + # The author's company or organization + company: nil, # Author email address email: nil, # The author's ID from your system @@ -266,6 +273,7 @@ module ModerationAPI ModerationAPI::Models::AuthorListResponse::Author::Status::TaggedSymbol, trust_level: ModerationAPI::Models::AuthorListResponse::Author::TrustLevel, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), diff --git a/rbi/moderation_api/models/author_retrieve_response.rbi b/rbi/moderation_api/models/author_retrieve_response.rbi index 749fe74..089c3d9 100644 --- a/rbi/moderation_api/models/author_retrieve_response.rbi +++ b/rbi/moderation_api/models/author_retrieve_response.rbi @@ -102,6 +102,10 @@ module ModerationAPI end attr_writer :trust_level + # The author's company or organization + sig { returns(T.nilable(String)) } + attr_accessor :company + # Author email address sig { returns(T.nilable(String)) } attr_accessor :email @@ -147,6 +151,7 @@ module ModerationAPI ModerationAPI::Models::AuthorRetrieveResponse::Status::OrSymbol, trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel::OrHash, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), @@ -173,6 +178,8 @@ module ModerationAPI # Current author status status:, trust_level:, + # The author's company or organization + company: nil, # Author email address email: nil, # The author's ID from your system @@ -206,6 +213,7 @@ module ModerationAPI ModerationAPI::Models::AuthorRetrieveResponse::Status::TaggedSymbol, trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), diff --git a/rbi/moderation_api/models/author_update_params.rbi b/rbi/moderation_api/models/author_update_params.rbi index 0fbbf0a..30b433b 100644 --- a/rbi/moderation_api/models/author_update_params.rbi +++ b/rbi/moderation_api/models/author_update_params.rbi @@ -18,6 +18,10 @@ module ModerationAPI sig { returns(String) } attr_accessor :id + # The author's company or organization + sig { returns(T.nilable(String)) } + attr_accessor :company + # Author email address sig { returns(T.nilable(String)) } attr_accessor :email @@ -66,6 +70,7 @@ module ModerationAPI sig do params( id: String, + company: T.nilable(String), email: T.nilable(String), external_link: T.nilable(String), first_seen: Float, @@ -80,6 +85,8 @@ module ModerationAPI def self.new( # Either external ID or the ID assigned by moderation API. id:, + # The author's company or organization + company: nil, # Author email address email: nil, # URL of the author's external profile @@ -104,6 +111,7 @@ module ModerationAPI override.returns( { id: String, + company: T.nilable(String), email: T.nilable(String), external_link: T.nilable(String), first_seen: Float, diff --git a/rbi/moderation_api/models/author_update_response.rbi b/rbi/moderation_api/models/author_update_response.rbi index 9c6eaa7..943a2f2 100644 --- a/rbi/moderation_api/models/author_update_response.rbi +++ b/rbi/moderation_api/models/author_update_response.rbi @@ -99,6 +99,10 @@ module ModerationAPI end attr_writer :trust_level + # The author's company or organization + sig { returns(T.nilable(String)) } + attr_accessor :company + # Author email address sig { returns(T.nilable(String)) } attr_accessor :email @@ -142,6 +146,7 @@ module ModerationAPI status: ModerationAPI::Models::AuthorUpdateResponse::Status::OrSymbol, trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel::OrHash, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), @@ -168,6 +173,8 @@ module ModerationAPI # Current author status status:, trust_level:, + # The author's company or organization + company: nil, # Author email address email: nil, # The author's ID from your system @@ -201,6 +208,7 @@ module ModerationAPI ModerationAPI::Models::AuthorUpdateResponse::Status::TaggedSymbol, trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel, + company: T.nilable(String), email: T.nilable(String), external_id: T.nilable(String), external_link: T.nilable(String), diff --git a/rbi/moderation_api/models/content_submit_params.rbi b/rbi/moderation_api/models/content_submit_params.rbi index e22d87d..f6725fa 100644 --- a/rbi/moderation_api/models/content_submit_params.rbi +++ b/rbi/moderation_api/models/content_submit_params.rbi @@ -1889,6 +1889,14 @@ module ModerationAPI sig { params(blocklist_wordlist_ids: T::Array[String]).void } attr_writer :blocklist_wordlist_ids + # When true, any URL detected as a free link shortener (bit.ly, t.co, tinyurl, + # etc.) is always flagged regardless of risk score. Allowlist matches still win. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :flag_link_shorteners + + sig { params(flag_link_shorteners: T::Boolean).void } + attr_writer :flag_link_shorteners + sig { returns(T.nilable(Float)) } attr_reader :threshold @@ -1900,6 +1908,7 @@ module ModerationAPI flag: T::Boolean, allowlist_wordlist_ids: T::Array[String], blocklist_wordlist_ids: T::Array[String], + flag_link_shorteners: T::Boolean, threshold: Float, id: Symbol ).returns(T.attached_class) @@ -1913,6 +1922,9 @@ module ModerationAPI # short-circuit the risk model and are always flagged. Blocklists take precedence # over allowlists. blocklist_wordlist_ids: nil, + # When true, any URL detected as a free link shortener (bit.ly, t.co, tinyurl, + # etc.) is always flagged regardless of risk score. Allowlist matches still win. + flag_link_shorteners: nil, threshold: nil, id: :url_risk ) @@ -1925,6 +1937,7 @@ module ModerationAPI flag: T::Boolean, allowlist_wordlist_ids: T::Array[String], blocklist_wordlist_ids: T::Array[String], + flag_link_shorteners: T::Boolean, threshold: Float } ) diff --git a/rbi/moderation_api/resources/authors.rbi b/rbi/moderation_api/resources/authors.rbi index 64c3ca0..5d92ae8 100644 --- a/rbi/moderation_api/resources/authors.rbi +++ b/rbi/moderation_api/resources/authors.rbi @@ -8,6 +8,7 @@ module ModerationAPI sig do params( external_id: String, + company: T.nilable(String), email: T.nilable(String), external_link: T.nilable(String), first_seen: Float, @@ -22,6 +23,8 @@ module ModerationAPI def create( # External ID of the user, typically the ID of the author in your database. external_id:, + # The author's company or organization + company: nil, # Author email address email: nil, # URL of the author's external profile @@ -61,6 +64,7 @@ module ModerationAPI sig do params( id: String, + company: T.nilable(String), email: T.nilable(String), external_link: T.nilable(String), first_seen: Float, @@ -75,6 +79,8 @@ module ModerationAPI def update( # Either external ID or the ID assigned by moderation API. id, + # The author's company or organization + company: nil, # Author email address email: nil, # URL of the author's external profile diff --git a/sig/moderation_api/models/author_create_params.rbs b/sig/moderation_api/models/author_create_params.rbs index 1b2582a..b05caf1 100644 --- a/sig/moderation_api/models/author_create_params.rbs +++ b/sig/moderation_api/models/author_create_params.rbs @@ -3,6 +3,7 @@ module ModerationAPI type author_create_params = { external_id: String, + company: String?, email: String?, external_link: String?, first_seen: Float, @@ -20,6 +21,8 @@ module ModerationAPI attr_accessor external_id: String + attr_accessor company: String? + attr_accessor email: String? attr_accessor external_link: String? @@ -46,6 +49,7 @@ module ModerationAPI def initialize: ( external_id: String, + ?company: String?, ?email: String?, ?external_link: String?, ?first_seen: Float, @@ -59,6 +63,7 @@ module ModerationAPI def to_hash: -> { external_id: String, + company: String?, email: String?, external_link: String?, first_seen: Float, diff --git a/sig/moderation_api/models/author_create_response.rbs b/sig/moderation_api/models/author_create_response.rbs index 63908c7..819291c 100644 --- a/sig/moderation_api/models/author_create_response.rbs +++ b/sig/moderation_api/models/author_create_response.rbs @@ -11,6 +11,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorCreateResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorCreateResponse::status, trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, @@ -38,6 +39,8 @@ module ModerationAPI attr_accessor trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel + attr_accessor company: String? + attr_accessor email: String? attr_accessor external_id: String? @@ -60,6 +63,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorCreateResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorCreateResponse::status, trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel, + ?company: String?, ?email: String?, ?external_id: String?, ?external_link: String?, @@ -78,6 +82,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorCreateResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorCreateResponse::status, trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, diff --git a/sig/moderation_api/models/author_list_response.rbs b/sig/moderation_api/models/author_list_response.rbs index 1231cde..0c3a18d 100644 --- a/sig/moderation_api/models/author_list_response.rbs +++ b/sig/moderation_api/models/author_list_response.rbs @@ -32,6 +32,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorListResponse::Author::RiskEvaluation?, status: ModerationAPI::Models::AuthorListResponse::Author::status, trust_level: ModerationAPI::Models::AuthorListResponse::Author::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, @@ -59,6 +60,8 @@ module ModerationAPI attr_accessor trust_level: ModerationAPI::Models::AuthorListResponse::Author::TrustLevel + attr_accessor company: String? + attr_accessor email: String? attr_accessor external_id: String? @@ -81,6 +84,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorListResponse::Author::RiskEvaluation?, status: ModerationAPI::Models::AuthorListResponse::Author::status, trust_level: ModerationAPI::Models::AuthorListResponse::Author::TrustLevel, + ?company: String?, ?email: String?, ?external_id: String?, ?external_link: String?, @@ -99,6 +103,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorListResponse::Author::RiskEvaluation?, status: ModerationAPI::Models::AuthorListResponse::Author::status, trust_level: ModerationAPI::Models::AuthorListResponse::Author::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, diff --git a/sig/moderation_api/models/author_retrieve_response.rbs b/sig/moderation_api/models/author_retrieve_response.rbs index 817d23f..f8bff29 100644 --- a/sig/moderation_api/models/author_retrieve_response.rbs +++ b/sig/moderation_api/models/author_retrieve_response.rbs @@ -11,6 +11,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorRetrieveResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorRetrieveResponse::status, trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, @@ -38,6 +39,8 @@ module ModerationAPI attr_accessor trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel + attr_accessor company: String? + attr_accessor email: String? attr_accessor external_id: String? @@ -60,6 +63,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorRetrieveResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorRetrieveResponse::status, trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel, + ?company: String?, ?email: String?, ?external_id: String?, ?external_link: String?, @@ -78,6 +82,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorRetrieveResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorRetrieveResponse::status, trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, diff --git a/sig/moderation_api/models/author_update_params.rbs b/sig/moderation_api/models/author_update_params.rbs index cdb408f..dd185d0 100644 --- a/sig/moderation_api/models/author_update_params.rbs +++ b/sig/moderation_api/models/author_update_params.rbs @@ -3,6 +3,7 @@ module ModerationAPI type author_update_params = { id: String, + company: String?, email: String?, external_link: String?, first_seen: Float, @@ -20,6 +21,8 @@ module ModerationAPI attr_accessor id: String + attr_accessor company: String? + attr_accessor email: String? attr_accessor external_link: String? @@ -46,6 +49,7 @@ module ModerationAPI def initialize: ( id: String, + ?company: String?, ?email: String?, ?external_link: String?, ?first_seen: Float, @@ -59,6 +63,7 @@ module ModerationAPI def to_hash: -> { id: String, + company: String?, email: String?, external_link: String?, first_seen: Float, diff --git a/sig/moderation_api/models/author_update_response.rbs b/sig/moderation_api/models/author_update_response.rbs index 356923a..e76fa32 100644 --- a/sig/moderation_api/models/author_update_response.rbs +++ b/sig/moderation_api/models/author_update_response.rbs @@ -11,6 +11,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorUpdateResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorUpdateResponse::status, trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, @@ -38,6 +39,8 @@ module ModerationAPI attr_accessor trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel + attr_accessor company: String? + attr_accessor email: String? attr_accessor external_id: String? @@ -60,6 +63,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorUpdateResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorUpdateResponse::status, trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel, + ?company: String?, ?email: String?, ?external_id: String?, ?external_link: String?, @@ -78,6 +82,7 @@ module ModerationAPI risk_evaluation: ModerationAPI::Models::AuthorUpdateResponse::RiskEvaluation?, status: ModerationAPI::Models::AuthorUpdateResponse::status, trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel, + company: String?, email: String?, external_id: String?, external_link: String?, diff --git a/sig/moderation_api/models/content_submit_params.rbs b/sig/moderation_api/models/content_submit_params.rbs index aa5f833..bed50ab 100644 --- a/sig/moderation_api/models/content_submit_params.rbs +++ b/sig/moderation_api/models/content_submit_params.rbs @@ -881,6 +881,7 @@ module ModerationAPI flag: bool, allowlist_wordlist_ids: ::Array[String], blocklist_wordlist_ids: ::Array[String], + flag_link_shorteners: bool, threshold: Float } @@ -897,6 +898,10 @@ module ModerationAPI def blocklist_wordlist_ids=: (::Array[String]) -> ::Array[String] + attr_reader flag_link_shorteners: bool? + + def flag_link_shorteners=: (bool) -> bool + attr_reader threshold: Float? def threshold=: (Float) -> Float @@ -905,6 +910,7 @@ module ModerationAPI flag: bool, ?allowlist_wordlist_ids: ::Array[String], ?blocklist_wordlist_ids: ::Array[String], + ?flag_link_shorteners: bool, ?threshold: Float, ?id: :url_risk ) -> void @@ -914,6 +920,7 @@ module ModerationAPI flag: bool, allowlist_wordlist_ids: ::Array[String], blocklist_wordlist_ids: ::Array[String], + flag_link_shorteners: bool, threshold: Float } end diff --git a/sig/moderation_api/resources/authors.rbs b/sig/moderation_api/resources/authors.rbs index ce93cfd..cc0a0af 100644 --- a/sig/moderation_api/resources/authors.rbs +++ b/sig/moderation_api/resources/authors.rbs @@ -3,6 +3,7 @@ module ModerationAPI class Authors def create: ( external_id: String, + ?company: String?, ?email: String?, ?external_link: String?, ?first_seen: Float, @@ -21,6 +22,7 @@ module ModerationAPI def update: ( String id, + ?company: String?, ?email: String?, ?external_link: String?, ?first_seen: Float, diff --git a/test/moderation_api/resources/authors_test.rb b/test/moderation_api/resources/authors_test.rb index 23d1229..ebaff78 100644 --- a/test/moderation_api/resources/authors_test.rb +++ b/test/moderation_api/resources/authors_test.rb @@ -23,6 +23,7 @@ def test_create_required_params risk_evaluation: ModerationAPI::Models::AuthorCreateResponse::RiskEvaluation | nil, status: ModerationAPI::Models::AuthorCreateResponse::Status, trust_level: ModerationAPI::Models::AuthorCreateResponse::TrustLevel, + company: String | nil, email: String | nil, external_id: String | nil, external_link: String | nil, @@ -53,6 +54,7 @@ def test_retrieve risk_evaluation: ModerationAPI::Models::AuthorRetrieveResponse::RiskEvaluation | nil, status: ModerationAPI::Models::AuthorRetrieveResponse::Status, trust_level: ModerationAPI::Models::AuthorRetrieveResponse::TrustLevel, + company: String | nil, email: String | nil, external_id: String | nil, external_link: String | nil, @@ -83,6 +85,7 @@ def test_update risk_evaluation: ModerationAPI::Models::AuthorUpdateResponse::RiskEvaluation | nil, status: ModerationAPI::Models::AuthorUpdateResponse::Status, trust_level: ModerationAPI::Models::AuthorUpdateResponse::TrustLevel, + company: String | nil, email: String | nil, external_id: String | nil, external_link: String | nil,