FastComments.com

FastComments Rust SDK

This is the official Rust SDK for FastComments.

Manage comments, users, SSO, and moderation from your Rust applications.

Repository

View on GitHub

Installation Internal Link

cargo add fastcomments-sdk

The SDK requires Rust 2021 edition or later.

Library Contents Internal Link

The FastComments Rust SDK consists of several modules:

  • Client Module - Auto-generated API client for FastComments REST APIs

    • Complete type definitions for all API models
    • Both authenticated (DefaultApi) and public (PublicApi) endpoints
    • Full async/await support with tokio
    • See client/README.md for detailed API documentation
  • SSO Module - Server-side Single Sign-On utilities

    • Secure token generation for user authentication
    • Support for both simple and secure SSO modes
    • HMAC-SHA256 based token signing
  • Core Types - Shared type definitions and utilities

    • Comment models and metadata structures
    • User and tenant configurations
    • Helper functions for common operations

Quick Start Internal Link

Using the Public API

use fastcomments_sdk::client::apis::configuration::Configuration;
use fastcomments_sdk::client::apis::public_api;

#[tokio::main]
async fn main() {
    // Create API configuration
    let config = Configuration::new();

    // Fetch comments for a page
    let result = public_api::get_comments_public(
        &config,
        public_api::GetCommentsPublicParams {
            tenant_id: "your-tenant-id".to_string(),
            urlid: Some("page-url-id".to_string()),
            url: None,
            count_only: None,
            skip: None,
            limit: None,
            sort_dir: None,
            page: None,
            sso_hash: None,
            simple_sso_hash: None,
            has_no_comment: None,
            has_comment: None,
            comment_id_filter: None,
            child_ids: None,
            start_date_time: None,
            starts_with: None,
        },
    )
    .await;

    match result {
        Ok(response) => {
            println!("Found {} comments", response.comments.len());
            for comment in response.comments {
                println!("Comment: {:?}", comment);
            }
        }
        Err(e) => eprintln!("Error fetching comments: {:?}", e),
    }
}

Using the Authenticated API

use fastcomments_sdk::client::apis::configuration::{ApiKey, Configuration};
use fastcomments_sdk::client::apis::default_api;

#[tokio::main]
async fn main() {
    // Create configuration with API key
    let mut config = Configuration::new();
    config.api_key = Some(ApiKey {
        prefix: None,
        key: "your-api-key".to_string(),
    });

    // Fetch comments using authenticated API
    let result = default_api::get_comments(
        &config,
        default_api::GetCommentsParams {
            tenant_id: "your-tenant-id".to_string(),
            skip: None,
            limit: None,
            sort_dir: None,
            urlid: Some("page-url-id".to_string()),
            url: None,
            is_spam: None,
            user_id: None,
            all_comments: None,
            for_moderation: None,
            parent_id: None,
            is_flagged: None,
            is_flagged_tag: None,
            is_by_verified: None,
            is_pinned: None,
            asc: None,
            include_imported: None,
            origin: None,
            tags: None,
        },
    )
    .await;

    match result {
        Ok(response) => {
            println!("Total comments: {}", response.count);
            for comment in response.comments {
                println!("Comment ID: {}, Text: {}", comment.id, comment.comment);
            }
        }
        Err(e) => eprintln!("Error: {:?}", e),
    }
}

Using SSO for Authentication

use fastcomments_sdk::sso::{
    fastcomments_sso::FastCommentsSSO,
    secure_sso_user_data::SecureSSOUserData,
};

fn main() {
    let api_key = "your-api-key".to_string();

    // Create secure SSO user data (server-side only!)
    let user_data = SecureSSOUserData::new(
        "user-123".to_string(),           // User ID
        "user@example.com".to_string(),   // Email
        "John Doe".to_string(),            // Username
        "https://example.com/avatar.jpg".to_string(), // Avatar URL
    );

    // Generate SSO token
    let sso = FastCommentsSSO::new_secure(api_key, &user_data).unwrap();
    let token = sso.create_token().unwrap();

    println!("SSO Token: {}", token);
    // Pass this token to your frontend for authentication
}

Common Issues Internal Link

401 Unauthorized Errors

If you're getting 401 errors when using the authenticated API:

  1. Check your API key: Ensure you're using the correct API key from your FastComments dashboard
  2. Verify the tenant ID: Make sure the tenant ID matches your account
  3. API key format: The API key should be passed in the Configuration:
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

SSO Token Issues

If SSO tokens aren't working:

  1. Use secure mode for production: Always use FastCommentsSSO::new_secure() with your API key for production
  2. Server-side only: Generate SSO tokens on your server, never expose your API key to clients
  3. Check user data: Ensure all required fields (id, email, username) are provided

Async Runtime Errors

The SDK uses tokio for async operations. Make sure to:

  1. Add tokio to your dependencies:
[dependencies]
tokio = { version = "1", features = ["full"] }
  1. Use the tokio runtime:
#[tokio::main]
async fn main() {
    // Your async code here
}

Notes Internal Link

Broadcast IDs

You'll see you're supposed to pass a broadcastId in some API calls. When you receive events, you'll get this ID back, so you know to ignore the event if you plan to optimistically apply changes on the client (which you'll probably want to do since it offers the best experience). Pass a UUID here. The ID should be unique enough to not occur twice in a browser session.

aggregate Internal Link

Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.

Parameters

NameTypeRequiredDescription
tenant_idStringYes
aggregation_requestmodels::AggregationRequestYes
parent_tenant_idStringNo
include_statsboolNo

Response

Returns: AggregationResponse

Example

aggregate Example
Copy Copy
1
2let params: AggregateParams = AggregateParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 aggregation_request: models::AggregationRequest {
5 query: Some(models::QueryPredicate {
6 field: "resource".to_string(),
7 op: "equals".to_string(),
8 value: models::QueryPredicateValue::String("news/article".to_string()),
9 }),
10 operations: vec![
11 models::AggregationOperation {
12 op_type: models::AggregationOpType::COUNT,
13 field: Some("id".to_string()),
14 alias: Some("comment_count".to_string()),
15 },
16 ],
17 group_by: Some(vec!["author_id".to_string()]),
18 size: Some(50),
19 sort: None,
20 },
21 parent_tenant_id: Some("acme-parent-tenant".to_string()),
22 include_stats: Some(true),
23};
24let aggregation_response: AggregationResponse = aggregate(&configuration, params).await?;
25

get_audit_logs Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
limitf64No
skipf64No
ordermodels::SortDirNo
afterf64No
beforef64No

Response

Returns: GetAuditLogs200Response

Example

get_audit_logs Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetAuditLogsParams = GetAuditLogsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 limit: Some(100.0),
6 skip: Some(0.0),
7 order: Some(models::SortDir::Desc),
8 after: Some(1672531200.0),
9 before: Some(1675209600.0),
10 };
11 let response: GetAuditLogs200Response = get_audit_logs(&configuration, params).await?;
12 Ok(())
13}
14

block_from_comment_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
public_block_from_comment_paramsmodels::PublicBlockFromCommentParamsYes
ssoStringNo

Response

Returns: BlockFromCommentPublic200Response

Example

block_from_comment_public Example
Copy Copy
1
2pub async fn run_block_example() -> Result<(), Error> {
3 let params: BlockFromCommentPublicParams = BlockFromCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/2026-03-25-12345".to_string(),
6 public_block_from_comment_params: models::PublicBlockFromCommentParams {
7 reason: "Repeated promotional links".to_string(),
8 reporter_id: Some("reader-2048".to_string()),
9 permanent: Some(false),
10 },
11 sso: Some("sso:user:acme:2048".to_string()),
12 };
13 let response: BlockFromCommentPublic200Response = block_from_comment_public(&configuration, params).await?;
14 println!("{:#?}", response);
15 Ok(())
16}
17

un_block_comment_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
public_block_from_comment_paramsmodels::PublicBlockFromCommentParamsYes
ssoStringNo

Response

Returns: UnBlockCommentPublic200Response

Example

un_block_comment_public Example
Copy Copy
1
2async fn run() -> Result<UnBlockCommentPublic200Response, Error> {
3 let params: UnBlockCommentPublicParams = UnBlockCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/2026-03-25/comment-98765".to_string(),
6 public_block_from_comment_params: models::PublicBlockFromCommentParams {
7 unblocked_by: "moderator@acme.com".to_string(),
8 reason: "Reviewed and determined not to be spam".to_string(),
9 },
10 sso: Some("sso-session-token-abc123".to_string()),
11 };
12 let response: UnBlockCommentPublic200Response = un_block_comment_public(&configuration, params).await?;
13 Ok(response)
14}
15

checked_comments_for_blocked Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idsStringYes
ssoStringNo

Response

Returns: CheckedCommentsForBlocked200Response

Example

checked_comments_for_blocked Example
Copy Copy
1
2async fn run_checked_comments() -> Result<CheckedCommentsForBlocked200Response, Error> {
3 let params: CheckedCommentsForBlockedParams = CheckedCommentsForBlockedParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_ids: "article-98765:12345,article-98765:67890".to_string(),
6 sso: Some("sso-uid-4821".to_string()),
7 };
8 let response: CheckedCommentsForBlocked200Response = checked_comments_for_blocked(&configuration, params).await?;
9 Ok(response)
10}
11

block_user_from_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
block_from_comment_paramsmodels::BlockFromCommentParamsYes
user_idStringNo
anon_user_idStringNo

Response

Returns: BlockFromCommentPublic200Response

Example

block_user_from_comment Example
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: BlockUserFromCommentParams = BlockUserFromCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-2026-03-25/comment-842".to_string(),
6 block_from_comment_params: models::BlockFromCommentParams {
7 reason: Some("Repeated promotional links".to_string()),
8 duration_minutes: Some(7_200),
9 notify_user: Some(true),
10 },
11 user_id: Some("user-9812".to_string()),
12 anon_user_id: None,
13 };
14 let response: BlockFromCommentPublic200Response = block_user_from_comment(&configuration, params).await?;
15 Ok(())
16}
17

create_comment_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
broadcast_idStringYes
comment_datamodels::CommentDataYes
session_idStringNo
ssoStringNo

Response

Returns: CreateCommentPublic200Response

Example

create_comment_public Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateCommentPublicParams = CreateCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/politics/2026-election-coverage".to_string(),
6 broadcast_id: "live-coverage-2026-03-25".to_string(),
7 comment_data: models::CommentData {
8 content: "Insightful piece — appreciate the depth of reporting.".to_string(),
9 author_name: Some("Jane Doe".to_string()),
10 author_email: Some("jane.doe@acme.com".to_string()),
11 is_anonymous: Some(false),
12 parent_id: None,
13 metadata: None,
14 },
15 session_id: Some("sess_6f7e8d9c".to_string()),
16 sso: Some("sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9".to_string()),
17 };
18 let resp: CreateCommentPublic200Response = create_comment_public(&configuration, params).await?;
19 Ok(())
20}
21

delete_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
context_user_idStringNo
is_liveboolNo

Response

Returns: DeleteComment200Response

Example

delete_comment Example
Copy Copy
1
2async fn run_delete_comment() -> Result<DeleteComment200Response, Error> {
3 let params: DeleteCommentParams = DeleteCommentParams {
4 tenant_id: "acme-newsroom".to_string(),
5 id: "news/article-2026/comments/abc123".to_string(),
6 context_user_id: Some("user-789".to_string()),
7 is_live: Some(true),
8 };
9 let response: DeleteComment200Response = delete_comment(&configuration, params).await?;
10 Ok(response)
11}
12

delete_comment_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
broadcast_idStringYes
edit_keyStringNo
ssoStringNo

Response

Returns: DeleteCommentPublic200Response

Example

delete_comment_public Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteCommentPublicParams = DeleteCommentPublicParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 comment_id: String::from("news/article/2026/03/interesting-story#cmt-67890"),
6 broadcast_id: String::from("news-article-12345"),
7 edit_key: Some(String::from("editkey-3f2b9a")),
8 sso: Some(String::from("sso-jwt-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")),
9 };
10 let response: DeleteCommentPublic200Response = delete_comment_public(&configuration, params).await?;
11 Ok(())
12}
13

delete_comment_vote Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
vote_idStringYes
url_idStringYes
broadcast_idStringYes
edit_keyStringNo
ssoStringNo

Response

Returns: DeleteCommentVote200Response

Example

delete_comment_vote Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteCommentVoteParams = DeleteCommentVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-12345".to_string(),
6 vote_id: "vote-67890".to_string(),
7 url_id: "news/world/article-2026".to_string(),
8 broadcast_id: "broadcast-1".to_string(),
9 edit_key: Some("editkey-abc123".to_string()),
10 sso: Some("sso-token-xyz".to_string()),
11 };
12 let response: DeleteCommentVote200Response = delete_comment_vote(&configuration, params).await?;
13 Ok(())
14}
15

flag_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
user_idStringNo
anon_user_idStringNo

Response

Returns: FlagComment200Response

Example

flag_comment Example
Copy Copy
1
2async fn run() -> Result<FlagComment200Response, Error> {
3 let params: FlagCommentParams = FlagCommentParams {
4 tenant_id: "acme-news-tenant".to_string(),
5 id: "comment-20260325-842".to_string(),
6 user_id: Some("user-7b2f3d".to_string()),
7 anon_user_id: Some("anon-1a2b3c".to_string()),
8 };
9 let resp: FlagComment200Response = flag_comment(&configuration, params).await?;
10 Ok(resp)
11}
12

get_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetComment200Response

Example

get_comment Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetCommentParams = GetCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345/comment-6789".to_string(),
6 };
7 let _response: GetComment200Response = get_comment(&configuration, params).await?;
8 Ok(())
9}
10

get_comment_text Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
edit_keyStringNo
ssoStringNo

Response

Returns: GetCommentText200Response

Example

get_comment_text Example
Copy Copy
1
2pub async fn run() -> Result<GetCommentText200Response, Error> {
3 let params: GetCommentTextParams = GetCommentTextParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article-2026-03-25-98765".to_string(),
6 edit_key: Some("edit_4f3d2b9a".to_string()),
7 sso: Some("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9".to_string()),
8 };
9 let comment: GetCommentText200Response = get_comment_text(&configuration, params).await?;
10 Ok(comment)
11}
12

get_comment_vote_user_names Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
diri32Yes
ssoStringNo

Response

Returns: GetCommentVoteUserNames200Response

Example

get_comment_vote_user_names Example
Copy Copy
1
2async fn fetch_vote_user_names() -> Result<GetCommentVoteUserNames200Response, Error> {
3 let params: GetCommentVoteUserNamesParams = GetCommentVoteUserNamesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 comment_id: String::from("news/article-12345/comment-6789"),
6 dir: 1,
7 sso: Some(String::from("sso-token-01a2b3")),
8 };
9 let response: GetCommentVoteUserNames200Response =
10 get_comment_vote_user_names(&configuration, params).await?;
11 Ok(response)
12}
13

get_comments Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
pagei32No
limiti32No
skipi32No
as_treeboolNo
skip_childreni32No
limit_childreni32No
max_tree_depthi32No
url_idStringNo
user_idStringNo
anon_user_idStringNo
context_user_idStringNo
hash_tagStringNo
parent_idStringNo
directionmodels::SortDirectionsNo

Response

Returns: GetComments200Response

Example

get_comments Example
Copy Copy
1
2async fn run_get_comments() -> Result<(), Error> {
3 let params: GetCommentsParams = GetCommentsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 page: Some(1),
6 limit: Some(25),
7 skip: Some(0),
8 as_tree: Some(true),
9 skip_children: Some(0),
10 limit_children: Some(5),
11 max_tree_depth: Some(3),
12 url_id: Some("news/article/technology/ai-ethics".to_string()),
13 user_id: Some("user_98765".to_string()),
14 anon_user_id: Some("anon_abc123".to_string()),
15 context_user_id: Some("moderator_12".to_string()),
16 hash_tag: Some("aiethics".to_string()),
17 parent_id: Some("comment_456".to_string()),
18 direction: None,
19 };
20 let comments: GetComments200Response = get_comments(&configuration, params).await?;
21 Ok(())
22}
23

get_comments_public Internal Link

req tenantId urlId

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
pagei32No
directionmodels::SortDirectionsNo
ssoStringNo
skipi32No
skip_childreni32No
limiti32No
limit_childreni32No
count_childrenboolNo
fetch_page_for_comment_idStringNo
include_configboolNo
count_allboolNo
includei10nboolNo
localeStringNo
modulesStringNo
is_crawlerboolNo
include_notification_countboolNo
as_treeboolNo
max_tree_depthi32No
use_full_translation_idsboolNo
parent_idStringNo
search_textStringNo
hash_tagsVecNo
user_idStringNo
custom_config_strStringNo
after_comment_idStringNo
before_comment_idStringNo

Response

Returns: GetCommentsPublic200Response

Example

get_comments_public Example
Copy Copy
1
2async fn run() -> Result<GetCommentsPublic200Response, Error> {
3 let params: GetCommentsPublicParams = GetCommentsPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/article/2026/03/25/top-story".to_string(),
6 page: Some(1), direction: Some(models::SortDirections::Desc),
7 sso: None, skip: Some(0), skip_children: Some(0),
8 limit: Some(50), limit_children: Some(10), count_children: Some(true),
9 fetch_page_for_comment_id: None, include_config: Some(true), count_all: Some(false),
10 includei10n: Some(false), locale: Some("en-US".to_string()), modules: None,
11 is_crawler: Some(false), include_notification_count: Some(false), as_tree: Some(true),
12 max_tree_depth: Some(3), use_full_translation_ids: Some(false), parent_id: None,
13 search_text: Some("climate policy debate".to_string()), hash_tags: Some(vec!["breaking".to_string(), "policy".to_string()]),
14 user_id: None, custom_config_str: None, after_comment_id: None, before_comment_id: None,
15 };
16 let response: GetCommentsPublic200Response = get_comments_public(configuration, params).await?;
17 Ok(response)
18}
19

lock_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
broadcast_idStringYes
ssoStringNo

Response

Returns: LockComment200Response

Example

lock_comment Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: LockCommentParams = LockCommentParams {
4 tenant_id: String::from("acme-news-tenant"),
5 comment_id: String::from("cmt-20260325-789"),
6 broadcast_id: String::from("live/politics-debate-2026-03-25"),
7 sso: Some(String::from("sso-user-0a1b2c3d4e")),
8 };
9 let response: LockComment200Response = lock_comment(&configuration, params).await?;
10 Ok(())
11}
12

pin_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
broadcast_idStringYes
ssoStringNo

Response

Returns: PinComment200Response

Example

pin_comment Example
Copy Copy
1
2let params: PinCommentParams = PinCommentParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 comment_id: "cmt-987654321".to_string(),
5 broadcast_id: "news/article/2026-03-25".to_string(),
6 sso: Some("user-12345-ssotoken".to_string()),
7};
8let response: PinComment200Response = pin_comment(&configuration, params).await?;
9

save_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_comment_paramsmodels::CreateCommentParamsYes
is_liveboolNo
do_spam_checkboolNo
send_emailsboolNo
populate_notificationsboolNo

Response

Returns: SaveComment200Response

Example

save_comment Example
Copy Copy
1
2let create_comment: models::CreateCommentParams = models::CreateCommentParams {
3 thread_key: "news/article/2026/03/25/budget-reform".to_string(),
4 body: "Great breakdown of the proposed changes — very informative and balanced.".to_string(),
5 user_name: Some("Jane Doe".to_string()),
6 user_email: Some("jane.doe@acme-corp.com".to_string()),
7 user_id: Some("user-9876".to_string()),
8 parent_id: None,
9};
10
11let save_params: SaveCommentParams = SaveCommentParams {
12 tenant_id: "acme-corp-tenant".to_string(),
13 create_comment_params: create_comment,
14 is_live: Some(true),
15 do_spam_check: Some(true),
16 send_emails: Some(false),
17 populate_notifications: Some(true),
18};
19
20let saved: SaveComment200Response = save_comment(&configuration, save_params).await?;
21

save_comments_bulk Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_comment_paramsVecmodels::CreateCommentParamsYes
is_liveboolNo
do_spam_checkboolNo
send_emailsboolNo
populate_notificationsboolNo

Response

Returns: Vec<models::SaveComment200Response>

Example

save_comments_bulk Example
Copy Copy
1
2let params: SaveCommentsBulkParams = SaveCommentsBulkParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_comment_params: vec![
5 models::CreateCommentParams {
6 thread_id: "news/article-2026-election".to_string(),
7 text: "Insightful reporting — thanks for the coverage!".to_string(),
8 author_name: "Jane Doe".to_string(),
9 author_email: "jane.doe@example.com".to_string(),
10 },
11 models::CreateCommentParams {
12 thread_id: "news/article-2026-election".to_string(),
13 text: "I disagree with the premise of this piece.".to_string(),
14 author_name: "John Smith".to_string(),
15 author_email: "john.smith@example.org".to_string(),
16 },
17 ],
18 is_live: Some(true),
19 do_spam_check: Some(true),
20 send_emails: Some(false),
21 populate_notifications: Some(true),
22};
23let saved: Vec<models::SaveComment200Response> = save_comments_bulk(&configuration, params).await?;
24

set_comment_text Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
broadcast_idStringYes
comment_text_update_requestmodels::CommentTextUpdateRequestYes
edit_keyStringNo
ssoStringNo

Response

Returns: SetCommentText200Response

Example

set_comment_text Example
Copy Copy
1
2async fn update_comment_text() -> Result<(), Error> {
3 let params: SetCommentTextParams = SetCommentTextParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/2026-03-25/comment-6789".to_string(),
6 broadcast_id: "comments-broadcast-main".to_string(),
7 comment_text_update_request: models::CommentTextUpdateRequest {
8 text: "Updated comment: thank you @jane_doe — here's an update about #rustlang".to_string(),
9 ..Default::default()
10 },
11 edit_key: Some("editkey-9f8e7d6c".to_string()),
12 sso: Some("sso-token-abc123".to_string()),
13 };
14 let result: SetCommentText200Response = set_comment_text(configuration, params).await?;
15 println!("set_comment_text result: {:?}", result);
16 Ok(())
17}
18

un_block_user_from_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
un_block_from_comment_paramsmodels::UnBlockFromCommentParamsYes
user_idStringNo
anon_user_idStringNo

Response

Returns: UnBlockCommentPublic200Response

Example

un_block_user_from_comment Example
Copy Copy
1
2async fn run_unblock() -> Result<UnBlockCommentPublic200Response, Error> {
3 let unblock_body: models::UnBlockFromCommentParams = models::UnBlockFromCommentParams {
4 reason: Some(String::from("False positive - reviewed by moderator")),
5 moderator_id: Some(String::from("moderator-42")),
6 };
7 let params: UnBlockUserFromCommentParams = UnBlockUserFromCommentParams {
8 tenant_id: String::from("acme-corp-tenant"),
9 id: String::from("news/article/comments/abc123"),
10 un_block_from_comment_params: unblock_body,
11 user_id: Some(String::from("user-9876")),
12 anon_user_id: Some(String::from("anon-5f4d")),
13 };
14 let result: UnBlockCommentPublic200Response = un_block_user_from_comment(&configuration, params).await?;
15 Ok(result)
16}
17

un_flag_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
user_idStringNo
anon_user_idStringNo

Response

Returns: FlagComment200Response

Example

un_flag_comment Example
Copy Copy
1
2async fn example_unflag_comment() -> Result<FlagComment200Response, Error> {
3 let params = UnFlagCommentParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article/comment-12345"),
6 user_id: Some(String::from("reader-987")),
7 anon_user_id: None,
8 };
9 let response: FlagComment200Response = un_flag_comment(&configuration, params).await?;
10 Ok(response)
11}
12

un_lock_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
broadcast_idStringYes
ssoStringNo

Response

Returns: LockComment200Response

Example

un_lock_comment Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: UnLockCommentParams = UnLockCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-987654321".to_string(),
6 broadcast_id: "news/world-update-2026-04-25".to_string(),
7 sso: Some("sso-token-abcdef123456".to_string()),
8 };
9 let response: LockComment200Response = un_lock_comment(&configuration, params).await?;
10 let _ = response;
11 Ok(())
12}
13

un_pin_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
broadcast_idStringYes
ssoStringNo

Response

Returns: PinComment200Response

Example

un_pin_comment Example
Copy Copy
1
2async fn run_unpin() -> Result<(), Error> {
3 let params: UnPinCommentParams = UnPinCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-20260325-7a9".to_string(),
6 broadcast_id: "news/homepage/launch-article".to_string(),
7 sso: Some("sso-jwt-user-0a1b2c3d".to_string()),
8 };
9 let response: PinComment200Response = un_pin_comment(&configuration, params).await?;
10 Ok(())
11}
12

update_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
updatable_comment_paramsmodels::UpdatableCommentParamsYes
context_user_idStringNo
do_spam_checkboolNo
is_liveboolNo

Response

Returns: FlagCommentPublic200Response

Example

update_comment Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let tenant_id: String = "acme-corp-tenant".into();
4 let comment_id: String = "news/article/12345-6789".into();
5 let context_user_id: String = "reader-42".into();
6
7 let updatable: models::UpdatableCommentParams = models::UpdatableCommentParams {
8 body: Some("Updated comment: I appreciate the clarification on this report.".into()),
9 is_edited: Some(true),
10 tags: Some(vec!["clarification".into(), "follow-up".into()]),
11 };
12
13 let params: UpdateCommentParams = UpdateCommentParams {
14 tenant_id,
15 id: comment_id,
16 updatable_comment_params: updatable,
17 context_user_id: Some(context_user_id),
18 do_spam_check: Some(true),
19 is_live: Some(false),
20 };
21
22 let response: FlagCommentPublic200Response = update_comment(&configuration, params).await?;
23 Ok(())
24}
25

vote_comment Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
url_idStringYes
broadcast_idStringYes
vote_body_paramsmodels::VoteBodyParamsYes
session_idStringNo
ssoStringNo

Response

Returns: VoteComment200Response

Example

vote_comment Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: VoteCommentParams = VoteCommentParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "cmt-12345".to_string(),
6 url_id: "news/politics/2026-election".to_string(),
7 broadcast_id: "broadcast-nytimes-001".to_string(),
8 vote_body_params: models::VoteBodyParams { ..Default::default() },
9 session_id: Some("sess-9f8e7d".to_string()),
10 sso: Some("user-42@example.com".to_string()),
11 };
12 let response: VoteComment200Response = vote_comment(&configuration, params).await?;
13 Ok(())
14}
15

add_domain_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
add_domain_config_paramsmodels::AddDomainConfigParamsYes

Response

Returns: AddDomainConfig200Response

Example

add_domain_config Example
Copy Copy
1
2async fn example() -> Result<AddDomainConfig200Response, Error> {
3 let params: AddDomainConfigParams = AddDomainConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 add_domain_config_params: models::AddDomainConfigParams {
6 domain: "comments.acme.com".to_string(),
7 path: Some("/news/article".to_string()),
8 enable_cors: Some(true),
9 allowed_origins: Some(vec![
10 "https://acme.com".to_string(),
11 "https://www.acme.com".to_string()
12 ]),
13 sso_required: Some(false),
14 },
15 };
16 let response: AddDomainConfig200Response = add_domain_config(&configuration, params).await?;
17 Ok(response)
18}
19

delete_domain_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
domainStringYes

Response

Returns: DeleteDomainConfig200Response

Example

delete_domain_config Example
Copy Copy
1
2async fn run_delete_domain_config() -> Result<DeleteDomainConfig200Response, Error> {
3 let params: DeleteDomainConfigParams = DeleteDomainConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 domain: "news/acme".to_string(),
6 site_id: Some("main-site".to_string()),
7 };
8 let response: DeleteDomainConfig200Response = delete_domain_config(&configuration, params).await?;
9 Ok(response)
10}
11

get_domain_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
domainStringYes

Response

Returns: GetDomainConfig200Response

Example

get_domain_config Example
Copy Copy
1
2async fn example_get_domain_config() -> Result<GetDomainConfig200Response, Error> {
3 let params: GetDomainConfigParams = GetDomainConfigParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 domain: String::from("news/world"),
6 include_subdomains: Some(true),
7 };
8 let config_response: GetDomainConfig200Response = get_domain_config(&configuration, params).await?;
9 Ok(config_response)
10}
11

get_domain_configs Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes

Response

Returns: GetDomainConfigs200Response

Example

get_domain_configs Example
Copy Copy
1
2async fn run() -> Result<GetDomainConfigs200Response, Error> {
3 let tenant_id_option: Option<String> = Some("acme-corp-tenant".to_string());
4 let tenant_id: String = tenant_id_option.expect("tenant id required");
5 let params: GetDomainConfigsParams = GetDomainConfigsParams { tenant_id };
6 let response: GetDomainConfigs200Response = get_domain_configs(&configuration, params).await?;
7 Ok(response)
8}
9

patch_domain_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
domain_to_updateStringYes
patch_domain_config_paramsmodels::PatchDomainConfigParamsYes

Response

Returns: GetDomainConfig200Response

Example

patch_domain_config Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: PatchDomainConfigParams = PatchDomainConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 domain_to_update: "blog.acme.com".to_string(),
6 patch_domain_config_params: models::PatchDomainConfigParams {
7 moderation_enabled: Some(true),
8 allowed_origins: Some(vec!["https://blog.acme.com".to_string()]),
9 custom_css: Some(".fc-comment{font-size:14px}".to_string()),
10 notify_on_new_comment: Some(true),
11 ..Default::default()
12 },
13 };
14 let resp: GetDomainConfig200Response = patch_domain_config(&configuration, params).await?;
15 println!("{:#?}", resp);
16 Ok(())
17}
18

put_domain_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
domain_to_updateStringYes
update_domain_config_paramsmodels::UpdateDomainConfigParamsYes

Response

Returns: GetDomainConfig200Response

Example

put_domain_config Example
Copy Copy
1
2let cfg: &configuration::Configuration = &configuration;
3let params: PutDomainConfigParams = PutDomainConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 domain_to_update: "news/article".to_string(),
6 update_domain_config_params: models::UpdateDomainConfigParams {
7 allow_comments: Some(true),
8 moderation_required: Some(true),
9 allowed_origins: Some(vec![
10 "https://www.acme.com".to_string(),
11 "https://news.acme.com".to_string(),
12 ]),
13 custom_css_url: Some("https://cdn.acme.com/styles/comments.css".to_string()),
14 default_moderation: Some("pre".to_string()),
15 },
16};
17let response: GetDomainConfig200Response = put_domain_config(cfg, params).await?;
18

create_email_template Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_email_template_bodymodels::CreateEmailTemplateBodyYes

Response

Returns: CreateEmailTemplate200Response

Example

create_email_template Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateEmailTemplateParams = CreateEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".into(),
5 create_email_template_body: models::CreateEmailTemplateBody {
6 name: "Article Comment Notification".into(),
7 subject: "New comment on your article".into(),
8 body_html: "<p>Hi \{{recipient_name}},</p><p>\{{comment_author}} left a comment on your article \"\{{article_title}}\".</p>".into(),
9 from_name: Some("Acme News".into()),
10 from_email: Some("notifications@acme.example".into()),
11 reply_to: Some("no-reply@acme.example".into()),
12 enabled: Some(true),
13 tags: Some(vec!["comments".into(), "notifications".into()]),
14 },
15 };
16 let response: CreateEmailTemplate200Response = create_email_template(configuration, params).await?;
17 Ok(())
18}
19

delete_email_template Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_email_template Example
Copy Copy
1
2async fn run_delete_template() -> Result<(), Error> {
3 let params: DeleteEmailTemplateParams = DeleteEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 };
7 let confirm_deletion: Option<bool> = Some(true);
8 let response: FlagCommentPublic200Response = delete_email_template(&configuration, params).await?;
9 Ok(())
10}
11

delete_email_template_render_error Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
error_idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_email_template_render_error Example
Copy Copy
1
2let error_id_opt: Option<String> = Some("render-failure-9f3b".to_string());
3let params: DeleteEmailTemplateRenderErrorParams = DeleteEmailTemplateRenderErrorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email".to_string(),
6 error_id: error_id_opt.unwrap(),
7};
8let response: FlagCommentPublic200Response = delete_email_template_render_error(&configuration, params).await?;
9

get_email_template Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetEmailTemplate200Response

Example

get_email_template Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let tenant_id: String = "acme-corp-tenant".to_string();
4 let template_id: String = "welcome-new-subscriber".to_string();
5 let params: GetEmailTemplateParams = GetEmailTemplateParams {
6 tenant_id,
7 id: template_id,
8 locale: Some("en-US".to_string()),
9 };
10 let template: GetEmailTemplate200Response = get_email_template(&configuration, params).await?;
11 let _ = template;
12 Ok(())
13}
14

get_email_template_definitions Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes

Response

Returns: GetEmailTemplateDefinitions200Response

Example

get_email_template_definitions Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetEmailTemplateDefinitionsParams = GetEmailTemplateDefinitionsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 locale: Some("en-US".to_string()),
6 include_inactive: Some(false),
7 };
8 let templates: GetEmailTemplateDefinitions200Response =
9 get_email_template_definitions(&configuration, params).await?;
10 Ok(())
11}
12

get_email_template_render_errors Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
skipf64No

Response

Returns: GetEmailTemplateRenderErrors200Response

Example

get_email_template_render_errors Example
Copy Copy
1
2async fn run_example() -> Result<(), Error> {
3 let params: GetEmailTemplateRenderErrorsParams = GetEmailTemplateRenderErrorsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 skip: Some(10.0),
7 };
8 let response: GetEmailTemplateRenderErrors200Response =
9 get_email_template_render_errors(&configuration, params).await?;
10 Ok(())
11}
12

get_email_templates Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
skipf64No

Response

Returns: GetEmailTemplates200Response

Example

get_email_templates Example
Copy Copy
1
2async fn fetch_email_templates() -> Result<GetEmailTemplates200Response, Error> {
3 let params: GetEmailTemplatesParams = GetEmailTemplatesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let templates: GetEmailTemplates200Response = get_email_templates(&configuration, params).await?;
8 Ok(templates)
9}
10

render_email_template Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
render_email_template_bodymodels::RenderEmailTemplateBodyYes
localeStringNo

Response

Returns: RenderEmailTemplate200Response

Example

render_email_template Example
Copy Copy
1
2async fn example(configuration: &configuration::Configuration) -> Result<RenderEmailTemplate200Response, Error> {
3 let body = models::RenderEmailTemplateBody {
4 template_key: "welcome_email".to_string(),
5 subject: "Welcome to Acme News".to_string(),
6 from_address: "noreply@acme.com".to_string(),
7 placeholders: std::collections::HashMap::from([
8 ("user_name".to_string(), "Jane Doe".to_string()),
9 ("article_title".to_string(), "Breaking News: Rust Adoption Soars".to_string()),
10 ]),
11 };
12 let params = RenderEmailTemplateParams {
13 tenant_id: "acme-corp-tenant".to_string(),
14 render_email_template_body: body,
15 locale: Some("en-US".to_string()),
16 };
17 let rendered: RenderEmailTemplate200Response = render_email_template(configuration, params).await?;
18 Ok(rendered)
19}
20

update_email_template Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_email_template_bodymodels::UpdateEmailTemplateBodyYes

Response

Returns: FlagCommentPublic200Response

Example

update_email_template Example
Copy Copy
1
2async fn example_update_email_template() -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateEmailTemplateParams = UpdateEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 update_email_template_body: models::UpdateEmailTemplateBody {
7 subject: "Welcome to Acme News".to_string(),
8 html_body: "<h1>Welcome, \{{user_name}}</h1><p>Thanks for joining Acme.</p>".to_string(),
9 plain_body: Some("Welcome, \{{user_name}}!\nThanks for joining Acme.".to_string()),
10 enabled: Some(true),
11 from_name: Some("Acme Support <support@acme.com>".to_string()),
12 },
13 };
14 let response: FlagCommentPublic200Response = update_email_template(&configuration, params).await?;
15 Ok(response)
16}
17

get_event_log Internal Link

req tenantId urlId userIdWS

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
user_id_wsStringYes
start_timei64Yes
end_timei64Yes

Response

Returns: GetEventLog200Response

Example

get_event_log Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetEventLogParams = GetEventLogParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/article-2023-01-01".to_string(),
6 user_id_ws: "user-12345-ws".to_string(),
7 start_time: 1672531200i64,
8 end_time: 1672617599i64,
9 include_details: Some(true),
10 };
11 let response: GetEventLog200Response = get_event_log(&configuration, params).await?;
12 Ok(())
13}
14

get_global_event_log Internal Link

req tenantId urlId userIdWS

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
user_id_wsStringYes
start_timei64Yes
end_timei64Yes

Response

Returns: GetEventLog200Response

Example

get_global_event_log Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let include_deleted: Option<bool> = Some(false);
4 let params: GetGlobalEventLogParams = GetGlobalEventLogParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 url_id: "news/article-123".to_string(),
7 user_id_ws: "user-789-ws".to_string(),
8 start_time: 1711411200i64,
9 end_time: 1711497599i64,
10 };
11 let response: GetEventLog200Response = get_global_event_log(&configuration, params).await?;
12 let _include_deleted = include_deleted;
13 Ok(())
14}
15

create_feed_post Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_feed_post_paramsmodels::CreateFeedPostParamsYes
broadcast_idStringNo
is_liveboolNo
do_spam_checkboolNo
skip_dup_checkboolNo

Response

Returns: CreateFeedPost200Response

Example

create_feed_post Example
Copy Copy
1
2async fn create_post_example() -> Result<CreateFeedPost200Response, Error> {
3 let params = CreateFeedPostParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_feed_post_params: models::CreateFeedPostParams {
6 title: Some("Downtown Datacenter Outage".to_string()),
7 body: Some("Investigating a partial outage affecting login and API endpoints.".to_string()),
8 author_id: Some("ops-team".to_string()),
9 ..Default::default()
10 },
11 broadcast_id: Some("status-broadcast-2026-03-25".to_string()),
12 is_live: Some(true),
13 do_spam_check: Some(true),
14 skip_dup_check: Some(false),
15 };
16 let response: CreateFeedPost200Response = create_feed_post(&configuration, params).await?;
17 Ok(response)
18}
19

create_feed_post_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_feed_post_paramsmodels::CreateFeedPostParamsYes
broadcast_idStringNo
ssoStringNo

Response

Returns: CreateFeedPostPublic200Response

Example

create_feed_post_public Example
Copy Copy
1
2let create_feed_post_params: models::CreateFeedPostParams = models::CreateFeedPostParams {
3 title: "Acme Product Launch".to_string(),
4 body: "We're excited to announce our new product line that will change the way teams collaborate.".to_string(),
5 slug: "news/product-launch".to_string(),
6 links: Some(vec![models::FeedPostLink { url: "https://acme.com/launch".to_string(), title: Some("Launch details".to_string()) }]),
7 media: Some(vec![models::FeedPostMediaItem { assets: Some(vec![models::FeedPostMediaItemAsset { url: "https://cdn.acme.com/images/launch.jpg".to_string(), mime_type: Some("image/jpeg".to_string()) }]), caption: Some("Hero image".to_string()) }]),
8 tags: Some(vec!["announcement".to_string(), "product".to_string()]),
9};
10
11let params: CreateFeedPostPublicParams = CreateFeedPostPublicParams {
12 tenant_id: "acme-corp-tenant".to_string(),
13 create_feed_post_params,
14 broadcast_id: Some("broadcast-2026-03-25".to_string()),
15 sso: Some("sso-token-xyz789".to_string()),
16};
17
18let response: CreateFeedPostPublic200Response = create_feed_post_public(&configuration, params).await?;
19

delete_feed_post_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
post_idStringYes
broadcast_idStringNo
ssoStringNo

Response

Returns: DeleteFeedPostPublic200Response

Example

delete_feed_post_public Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteFeedPostPublicParams = DeleteFeedPostPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 post_id: "news/article-2026-03-25-12345".to_string(),
6 broadcast_id: Some("broadcast-9876".to_string()),
7 sso: Some("user-42-sso-token".to_string()),
8 };
9 let response: DeleteFeedPostPublic200Response = delete_feed_post_public(&configuration, params).await?;
10 Ok(())
11}
12

get_feed_posts Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenant_idStringYes
after_idStringNo
limiti32No
tagsVecNo

Response

Returns: GetFeedPosts200Response

Example

get_feed_posts Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetFeedPostsParams = GetFeedPostsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 after_id: Some("post_98765".to_string()),
6 limit: Some(20),
7 tags: Some(vec!["news".to_string(), "technology".to_string()]),
8 };
9 let feed: GetFeedPosts200Response = get_feed_posts(&configuration, params).await?;
10 Ok(())
11}
12

get_feed_posts_public Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenant_idStringYes
after_idStringNo
limiti32No
tagsVecNo
ssoStringNo
is_crawlerboolNo
include_user_infoboolNo

Response

Returns: GetFeedPostsPublic200Response

Example

get_feed_posts_public Example
Copy Copy
1
2async fn example() -> Result<GetFeedPostsPublic200Response, Error> {
3 let params: GetFeedPostsPublicParams = GetFeedPostsPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 after_id: Some("post_987654".to_string()),
6 limit: Some(25),
7 tags: Some(vec!["news".to_string(), "technology".to_string()]),
8 sso: Some("sso-token-abc123".to_string()),
9 is_crawler: Some(false),
10 include_user_info: Some(true),
11 };
12 let response: GetFeedPostsPublic200Response = get_feed_posts_public(&configuration, params).await?;
13 Ok(response)
14}
15

get_feed_posts_stats Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
post_idsVecYes
ssoStringNo

Response

Returns: GetFeedPostsStats200Response

Example

get_feed_posts_stats Example
Copy Copy
1
2async fn fetch_feed_stats() -> Result<(), Error> {
3 let params: GetFeedPostsStatsParams = GetFeedPostsStatsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 post_ids: vec![
6 "news/article/2026/03/25/product-launch".to_string(),
7 "blog/product-updates/q1-2026".to_string(),
8 ],
9 sso: Some("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.examplepayload.signature".to_string()),
10 };
11 let stats: GetFeedPostsStats200Response = get_feed_posts_stats(&configuration, params).await?;
12 Ok(())
13}
14

get_user_reacts_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
post_idsVecNo
ssoStringNo

Response

Returns: GetUserReactsPublic200Response

Example

get_user_reacts_public Example
Copy Copy
1
2async fn run() -> Result<GetUserReactsPublic200Response, Error> {
3 let params: GetUserReactsPublicParams = GetUserReactsPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 post_ids: Some(vec![
6 "news/article-123".to_string(),
7 "blog/post-456".to_string(),
8 ]),
9 sso: Some("john.doe@acme.com".to_string()),
10 };
11 let response: GetUserReactsPublic200Response = get_user_reacts_public(&configuration, params).await?;
12 Ok(response)
13}
14

react_feed_post_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
post_idStringYes
react_body_paramsmodels::ReactBodyParamsYes
is_undoboolNo
broadcast_idStringNo
ssoStringNo

Response

Returns: ReactFeedPostPublic200Response

Example

react_feed_post_public Example
Copy Copy
1
2let params: ReactFeedPostPublicParams = ReactFeedPostPublicParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 post_id: "news/world/2026-election".to_string(),
5 react_body_params: models::ReactBodyParams { reaction: "like".to_string() },
6 is_undo: Some(false),
7 broadcast_id: Some("broadcast-2026-03-25".to_string()),
8 sso: Some("sso-token-6f4e2b".to_string()),
9};
10
11let response: ReactFeedPostPublic200Response = react_feed_post_public(&configuration, params).await?;
12

update_feed_post Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
feed_postmodels::FeedPostYes

Response

Returns: FlagCommentPublic200Response

Example

update_feed_post Example
Copy Copy
1
2async fn update_post_example() -> Result<(), Error> {
3 let params: UpdateFeedPostParams = UpdateFeedPostParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/rocket-launch-2026".to_string(),
6 feed_post: models::FeedPost {
7 title: Some("Rocket Launch Successful".to_string()),
8 body: Some("Acme Rockets launched the Atlas X at 10:00 UTC with no anomalies.".to_string()),
9 author: Some("Acme Newsroom".to_string()),
10 media: Some(vec![
11 models::FeedPostMediaItem {
12 url: Some("https://cdn.acme.com/images/launch.jpg".to_string()),
13 caption: Some("Moments before liftoff".to_string()),
14 asset: None
15 }
16 ]),
17 links: Some(vec![
18 models::FeedPostLink {
19 title: Some("Detailed Coverage".to_string()),
20 url: Some("https://news.acme.com/coverage/atlas-x-launch".to_string())
21 }
22 ]),
23 published: Some(true)
24 }
25 };
26 let response: FlagCommentPublic200Response = update_feed_post(&configuration, params).await?;
27 Ok(())
28}
29

update_feed_post_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
post_idStringYes
update_feed_post_paramsmodels::UpdateFeedPostParamsYes
broadcast_idStringNo
ssoStringNo

Response

Returns: CreateFeedPostPublic200Response

Example

update_feed_post_public Example
Copy Copy
1
2let params: UpdateFeedPostPublicParams = UpdateFeedPostPublicParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 post_id: "news/article-2026-03-25".to_string(),
5 update_feed_post_params: models::UpdateFeedPostParams {
6 title: "Acme Widget Launch".to_string(),
7 body: "Acme today launched the next-generation Widget with improved performance and battery life.".to_string(),
8 tags: vec!["product".to_string(), "launch".to_string()],
9 media: vec![
10 models::FeedPostMediaItem {
11 url: "https://cdn.acme.com/images/widget-launch.jpg".to_string(),
12 asset: Some(models::FeedPostMediaItemAsset {
13 mime_type: "image/jpeg".to_string(),
14 size: Some(142000),
15 }),
16 }
17 ],
18 links: vec![
19 models::FeedPostLink {
20 url: "https://acme.com/blog/widget-launch".to_string(),
21 title: Some("Read the full announcement".to_string()),
22 }
23 ],
24 },
25 broadcast_id: Some("broadcast-2026-03".to_string()),
26 sso: Some("sso-token-9f8e7d".to_string()),
27};
28
29let response: CreateFeedPostPublic200Response = update_feed_post_public(configuration, params).await?;
30

flag_comment_public Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
is_flaggedboolYes
ssoStringNo

Response

Returns: FlagCommentPublic200Response

Example

flag_comment_public Example
Copy Copy
1
2async fn run_flag() -> Result<FlagCommentPublic200Response, Error> {
3 let params: FlagCommentPublicParams = FlagCommentPublicParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article-2026-03-25-8a7b6c".to_string(),
6 is_flagged: true,
7 sso: Some("sso-token-user-123".to_string()),
8 };
9 let response: FlagCommentPublic200Response = flag_comment_public(&configuration, params).await?;
10 Ok(response)
11}
12

add_hash_tag Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringNo
create_hash_tag_bodymodels::CreateHashTagBodyNo

Response

Returns: AddHashTag200Response

Example

add_hash_tag Example
Copy Copy
1
2let params: AddHashTagParams = AddHashTagParams {
3 tenant_id: Some("acme-corp-tenant".to_string()),
4 create_hash_tag_body: Some(models::CreateHashTagBody {
5 tag: "breaking-news".to_string(),
6 display_name: Some("Breaking News".to_string()),
7 description: Some("Articles covering breaking news events".to_string()),
8 enabled: Some(true),
9 }),
10};
11
12let response: AddHashTag200Response = add_hash_tag(&configuration, params).await?;
13

add_hash_tags_bulk Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringNo
bulk_create_hash_tags_bodymodels::BulkCreateHashTagsBodyNo

Response

Returns: AddHashTagsBulk200Response

Example

add_hash_tags_bulk Example
Copy Copy
1
2async fn add_tags_example() -> Result<(), Error> {
3 let body = BulkCreateHashTagsBody {
4 tags: vec![
5 BulkCreateHashTagsBodyTagsInner {
6 tag: "news/article".to_string(),
7 path: "site/news".to_string(),
8 description: Some("Articles and press releases".to_string()),
9 is_active: Some(true),
10 custom_config: Some(CustomConfigParameters { score: Some(0.85) }),
11 },
12 BulkCreateHashTagsBodyTagsInner {
13 tag: "product/launch".to_string(),
14 path: "site/products".to_string(),
15 description: Some("New product launches".to_string()),
16 is_active: Some(true),
17 custom_config: Some(CustomConfigParameters { score: Some(0.95) }),
18 },
19 ],
20 };
21 let params: AddHashTagsBulkParams = AddHashTagsBulkParams {
22 tenant_id: Some("acme-corp-tenant".to_string()),
23 bulk_create_hash_tags_body: Some(body),
24 };
25 let response: AddHashTagsBulk200Response = add_hash_tags_bulk(&configuration, params).await?;
26 Ok(())
27}
28

delete_hash_tag Internal Link

Parameters

NameTypeRequiredDescription
tagStringYes
tenant_idStringNo
delete_hash_tag_requestmodels::DeleteHashTagRequestNo

Response

Returns: FlagCommentPublic200Response

Example

delete_hash_tag Example
Copy Copy
1
2async fn run_delete_tag(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params = DeleteHashTagParams {
4 tag: "news/world-climate".to_owned(),
5 tenant_id: Some("acme-corp-tenant".to_owned()),
6 delete_hash_tag_request: None,
7 };
8 let response: FlagCommentPublic200Response = delete_hash_tag(configuration, params).await?;
9 Ok(response)
10}
11

get_hash_tags Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
pagef64No

Response

Returns: GetHashTags200Response

Example

get_hash_tags Example
Copy Copy
1
2async fn fetch_hash_tags() -> Result<GetHashTags200Response, Error> {
3 let params: GetHashTagsParams = GetHashTagsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 page: Some(1.0),
6 };
7 let response: GetHashTags200Response = get_hash_tags(&configuration, params).await?;
8 Ok(response)
9}
10

patch_hash_tag Internal Link

Parameters

NameTypeRequiredDescription
tagStringYes
tenant_idStringNo
update_hash_tag_bodymodels::UpdateHashTagBodyNo

Response

Returns: PatchHashTag200Response

Example

patch_hash_tag Example
Copy Copy
1
2let params: PatchHashTagParams = PatchHashTagParams {
3 tag: "news/article".to_string(),
4 tenant_id: Some("acme-corp-tenant".to_string()),
5 update_hash_tag_body: Some(models::UpdateHashTagBody {
6 label: Some("World News".to_string()),
7 description: Some("Articles related to world events.".to_string()),
8 enabled: Some(true),
9 }),
10};
11
12let response: PatchHashTag200Response = patch_hash_tag(&configuration, params).await?
13

create_moderator Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_moderator_bodymodels::CreateModeratorBodyYes

Response

Returns: CreateModerator200Response

Example

create_moderator Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateModeratorParams = CreateModeratorParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 create_moderator_body: models::CreateModeratorBody {
6 username: String::from("jane.moderator"),
7 email: String::from("jane.moderator@acme.com"),
8 display_name: Some(String::from("Jane Moderator")),
9 sections: Some(vec![String::from("news/article"), String::from("forums/general")]),
10 active: Some(true),
11 notes: Some(String::from("Senior moderator, PST timezone")),
12 },
13 };
14 let response: CreateModerator200Response = create_moderator(&configuration, params).await?;
15 Ok(())
16}
17

delete_moderator Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
send_emailStringNo

Response

Returns: FlagCommentPublic200Response

Example

delete_moderator Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteModeratorParams = DeleteModeratorParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("moderator-9876"),
6 send_email: Some(String::from("true")),
7 };
8
9 let response: FlagCommentPublic200Response = delete_moderator(&configuration, params).await?;
10 Ok(())
11}
12

get_moderator Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetModerator200Response

Example

get_moderator Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params = GetModeratorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "moderator-4521".to_string(),
6 include_permissions: Some(true),
7 };
8 let moderator: GetModerator200Response = get_moderator(&configuration, params).await?;
9 println!("{:#?}", moderator);
10 Ok(())
11}
12

get_moderators Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
skipf64No

Response

Returns: GetModerators200Response

Example

get_moderators Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetModeratorsParams = GetModeratorsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let _moderators: GetModerators200Response = get_moderators(&configuration, params).await?;
8 Ok(())
9}
10

send_invite Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
from_nameStringYes

Response

Returns: FlagCommentPublic200Response

Example

send_invite Example
Copy Copy
1
2async fn send_invite_example() -> Result<FlagCommentPublic200Response, Error> {
3 let params: SendInviteParams = SendInviteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-2026-03-25-modern-rust".to_string(),
6 from_name: "Acme Newsroom".to_string(),
7 message: Some("Please join the discussion on this article.".to_string()),
8 };
9 let response: FlagCommentPublic200Response = send_invite(&configuration, params).await?;
10 Ok(response)
11}
12

update_moderator Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_moderator_bodymodels::UpdateModeratorBodyYes

Response

Returns: FlagCommentPublic200Response

Example

update_moderator Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: UpdateModeratorParams = UpdateModeratorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "moderator-987".to_string(),
6 update_moderator_body: models::UpdateModeratorBody {
7 username: Some("jane.doe".to_string()),
8 email: Some("jane.doe@acme.com".to_string()),
9 role: Some("senior_moderator".to_string()),
10 active: Some(true),
11 notes: Some("Promoted after successful trial period".to_string()),
12 },
13 };
14 let response: FlagCommentPublic200Response = update_moderator(&configuration, params).await?;
15 Ok(())
16}
17

delete_notification_count Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_notification_count Example
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteNotificationCountParams = DeleteNotificationCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("notification-9876"),
6 user_id: Some(String::from("user-1234")),
7 };
8 let response: FlagCommentPublic200Response = delete_notification_count(configuration, params).await?;
9 Ok(response)
10}
11

get_cached_notification_count Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetCachedNotificationCount200Response

Example

get_cached_notification_count Example
Copy Copy
1
2pub async fn example_get_cached_notification_count(configuration: &configuration::Configuration) -> Result<GetCachedNotificationCount200Response, Error> {
3 let params: GetCachedNotificationCountParams = GetCachedNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345".to_string(),
6 };
7 let response: GetCachedNotificationCount200Response = get_cached_notification_count(configuration, params).await?;
8 Ok(response)
9}
10

get_notification_count Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringNo
url_idStringNo
from_comment_idStringNo
viewedboolNo

Response

Returns: GetNotificationCount200Response

Example

get_notification_count Example
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: GetNotificationCountParams = GetNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user-67890".to_string()),
6 url_id: Some("news/2026/03/25/election-updates".to_string()),
7 from_comment_id: Some("cmt_42".to_string()),
8 viewed: Some(false),
9 };
10 let response: GetNotificationCount200Response = get_notification_count(&configuration, params).await?;
11 Ok(())
12}
13

get_notifications Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringNo
url_idStringNo
from_comment_idStringNo
viewedboolNo
skipf64No

Response

Returns: GetNotifications200Response

Example

get_notifications Example
Copy Copy
1
2async fn fetch_notifications() -> Result<(), Error> {
3 let params: GetNotificationsParams = GetNotificationsParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 user_id: Some("user-12345".to_owned()),
6 url_id: Some("news/article/2026/03/25/major-update".to_owned()),
7 from_comment_id: Some("cmt-98765".to_owned()),
8 viewed: Some(false),
9 skip: Some(0.0),
10 };
11 let notifications: GetNotifications200Response = get_notifications(&configuration, params).await?;
12 Ok(())
13}
14

update_notification Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_notification_bodymodels::UpdateNotificationBodyYes
user_idStringNo

Response

Returns: FlagCommentPublic200Response

Example

update_notification Example
Copy Copy
1
2let params: UpdateNotificationParams = UpdateNotificationParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "notif-12345".to_string(),
5 update_notification_body: models::UpdateNotificationBody {
6 name: "Article Comments Webhook".to_string(),
7 url: "https://hooks.acme-corp.com/article-comments".to_string(),
8 enabled: true,
9 events: vec!["comment.created".to_string(), "comment.flagged".to_string()],
10 },
11 user_id: Some("moderator-42".to_string()),
12};
13
14let response: FlagCommentPublic200Response = update_notification(&configuration, params).await?;
15

add_page Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_api_page_datamodels::CreateApiPageDataYes

Response

Returns: AddPageApiResponse

Example

add_page Example
Copy Copy
1
2async fn create_page() -> Result<AddPageApiResponse, Error> {
3 let params: AddPageParams = AddPageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_api_page_data: models::CreateApiPageData {
6 path: "news/article".to_string(),
7 title: "Rust 2.0 Released".to_string(),
8 url: Some("https://acme.example/news/rust-2".to_string()),
9 allow_comments: Some(true),
10 tags: Some(vec!["rust".to_string(), "release".to_string()]),
11 metadata: Some(std::collections::HashMap::from([
12 ("author".to_string(), "Jane Doe".to_string()),
13 ("section".to_string(), "technology".to_string())
14 ])),
15 published: Some(true)
16 }
17 };
18 let response: AddPageApiResponse = add_page(&configuration, params).await?;
19 Ok(response)
20}
21

delete_page Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: DeletePageApiResponse

Example

delete_page Example
Copy Copy
1
2async fn run_delete_page() -> Result<DeletePageApiResponse, Error> {
3 let params: DeletePageParams = DeletePageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/2026/launch-announcement".to_string(),
6 cascade: Some(true),
7 };
8 let deleted: DeletePageApiResponse = delete_page(&configuration, params).await?;
9 Ok(deleted)
10}
11

get_page_by_urlid Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes

Response

Returns: GetPageByUrlidApiResponse

Example

get_page_by_urlid Example
Copy Copy
1
2async fn fetch_page() -> Result<GetPageByUrlidApiResponse, Error> {
3 let params: GetPageByUrlidParams = GetPageByUrlidParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/2026/product-launch".to_string(),
6 include_comments: Some(true),
7 };
8 let page: GetPageByUrlidApiResponse = get_page_by_urlid(&configuration, params).await?;
9 Ok(page)
10}
11

get_pages Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes

Response

Returns: GetPagesApiResponse

Example

get_pages Example
Copy Copy
1
2async fn example_get_pages() -> Result<(), Error> {
3 let params: GetPagesParams = GetPagesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 path: Some("news/article".to_string()),
6 page: Some(1),
7 page_size: Some(25),
8 include_drafts: Some(false),
9 };
10 let pages: GetPagesApiResponse = get_pages(&configuration, params).await?;
11 Ok(())
12}
13

patch_page Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_api_page_datamodels::UpdateApiPageDataYes

Response

Returns: PatchPageApiResponse

Example

patch_page Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: PatchPageParams = PatchPageParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article-123"),
6 update_api_page_data: models::UpdateApiPageData {
7 title: Some(String::from("Breaking: Rust 1.80 Released")),
8 path: String::from("/news/rust-1-80"),
9 description: Some(String::from("Highlights and features in Rust 1.80")),
10 is_published: Some(true),
11 metadata: Some(std::collections::HashMap::from([
12 (String::from("author"), String::from("Jane Doe")),
13 (String::from("category"), String::from("technology")),
14 ])),
15 },
16 };
17 let response: PatchPageApiResponse = patch_page(&configuration, params).await?;
18 Ok(())
19}
20

delete_pending_webhook_event Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_pending_webhook_event Example
Copy Copy
1
2async fn run_delete() -> Result<FlagCommentPublic200Response, Error> {
3 let audit_note: Option<String> = Some("removed duplicate webhook event".to_string());
4 let params: DeletePendingWebhookEventParams = DeletePendingWebhookEventParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 id: "9f8b7a6c-1234-4b8d-9c3a-0e1f2d3c4b5a".to_string(),
7 };
8 let response: FlagCommentPublic200Response = delete_pending_webhook_event(&configuration, params).await?;
9 let _ = audit_note;
10 Ok(response)
11}
12

get_pending_webhook_event_count Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringNo
external_idStringNo
event_typeStringNo
domainStringNo
attempt_count_gtf64No

Response

Returns: GetPendingWebhookEventCount200Response

Example

get_pending_webhook_event_count Example
Copy Copy
1
2async fn fetch_pending_webhook_count(configuration: &configuration::Configuration) -> Result<GetPendingWebhookEventCount200Response, Error> {
3 let params: GetPendingWebhookEventCountParams = GetPendingWebhookEventCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 comment_id: Some(String::from("cmt-12345")),
6 external_id: Some(String::from("ext-67890")),
7 event_type: Some(String::from("comment_posted")),
8 domain: Some(String::from("news.example.com")),
9 attempt_count_gt: Some(3.0),
10 };
11 let response: GetPendingWebhookEventCount200Response = get_pending_webhook_event_count(configuration, params).await?;
12 Ok(response)
13}
14

get_pending_webhook_events Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringNo
external_idStringNo
event_typeStringNo
domainStringNo
attempt_count_gtf64No
skipf64No

Response

Returns: GetPendingWebhookEvents200Response

Example

get_pending_webhook_events Example
Copy Copy
1
2async fn fetch_pending_webhook_events() -> Result<GetPendingWebhookEvents200Response, Error> {
3 let params: GetPendingWebhookEventsParams = GetPendingWebhookEventsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: Some("cmt-2026-04-01-001".to_string()),
6 external_id: Some("news/article-42".to_string()),
7 event_type: Some("comment.created".to_string()),
8 domain: Some("news.example.com".to_string()),
9 attempt_count_gt: Some(1.0),
10 skip: Some(0.0),
11 };
12 let response: GetPendingWebhookEvents200Response = get_pending_webhook_events(&configuration, params).await?;
13 Ok(response)
14}
15

create_question_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_question_config_bodymodels::CreateQuestionConfigBodyYes

Response

Returns: CreateQuestionConfig200Response

Example

create_question_config Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateQuestionConfigParams = CreateQuestionConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_question_config_body: models::CreateQuestionConfigBody {
6 slug: "news/article".to_string(),
7 title: "Reader satisfaction".to_string(),
8 description: Some("How satisfied are you with this article?".to_string()),
9 required: Some(false),
10 rendering_type: Some(QuestionRenderingType::Inline),
11 custom_options: Some(vec![
12 models::QuestionConfigCustomOptionsInner { value: "very_satisfied".to_string(), label: Some("Very satisfied".to_string()) },
13 models::QuestionConfigCustomOptionsInner { value: "unsatisfied".to_string(), label: Some("Unsatisfied".to_string()) },
14 ]),
15 },
16 };
17 let response: CreateQuestionConfig200Response = create_question_config(configuration, params).await?;
18 Ok(())
19}
20

delete_question_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_question_config Example
Copy Copy
1
2pub async fn run_delete_question_config() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteQuestionConfigParams = DeleteQuestionConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "question-config-8742".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_question_config(&configuration, params).await?;
8 Ok(response)
9}
10

get_question_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetQuestionConfig200Response

Example

get_question_config Example
Copy Copy
1
2async fn run_get_question_config() -> Result<GetQuestionConfig200Response, Error> {
3 let tenant: Option<String> = Some("acme-corp-tenant".to_string());
4 let params: GetQuestionConfigParams = GetQuestionConfigParams {
5 tenant_id: tenant.unwrap(),
6 id: "news/article/2026/03/25/space-launch".to_string(),
7 };
8 let response: GetQuestionConfig200Response = get_question_config(&configuration, params).await?;
9 Ok(response)
10}
11

get_question_configs Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
skipf64No

Response

Returns: GetQuestionConfigs200Response

Example

get_question_configs Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetQuestionConfigsParams = GetQuestionConfigsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let response: GetQuestionConfigs200Response = get_question_configs(&configuration, params).await?;
8 println!("{:#?}", response);
9 Ok(())
10}
11

update_question_config Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_question_config_bodymodels::UpdateQuestionConfigBodyYes

Response

Returns: FlagCommentPublic200Response

Example

update_question_config Example
Copy Copy
1
2let params: UpdateQuestionConfigParams = UpdateQuestionConfigParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "news/article-2026-03-readability".to_string(),
5 update_question_config_body: models::UpdateQuestionConfigBody {
6 question_text: Some("Was this article helpful?".to_string()),
7 required: Some(true),
8 rendering_type: Some(models::QuestionRenderingType::Inline),
9 custom_options: Some(vec![
10 models::QuestionConfigCustomOptionsInner { label: "Very helpful".to_string(), value: "very_helpful".to_string() },
11 models::QuestionConfigCustomOptionsInner { label: "Somewhat helpful".to_string(), value: "somewhat_helpful".to_string() },
12 models::QuestionConfigCustomOptionsInner { label: "Not helpful".to_string(), value: "not_helpful".to_string() },
13 ]),
14 when_save: Some(models::QuestionWhenSave::AskOnSave),
15 ..Default::default()
16 },
17};
18let response: FlagCommentPublic200Response = update_question_config(&configuration, params).await?;
19

create_question_result Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_question_result_bodymodels::CreateQuestionResultBodyYes

Response

Returns: CreateQuestionResult200Response

Example

create_question_result Example
Copy Copy
1
2async fn run_create_question_result() -> Result<(), Error> {
3 let params: CreateQuestionResultParams = CreateQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_question_result_body: models::CreateQuestionResultBody {
6 question_id: "article-123-comment-rating".to_string(),
7 user_id: Some("reader-456".to_string()),
8 result: Some("helpful".to_string()),
9 context: Some("news/article".to_string()),
10 submitted_at: Some("2026-03-25T12:34:56Z".to_string()),
11 },
12 };
13
14 let response: CreateQuestionResult200Response = create_question_result(&configuration, params).await?;
15 Ok(())
16}
17

delete_question_result Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_question_result Example
Copy Copy
1
2async fn run_delete_question_result() -> Result<(), Error> {
3 let params: DeleteQuestionResultParams = DeleteQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "qres-news/article-2026-03-25-9a8b7c".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_question_result(&configuration, params).await?;
8 let _response = response;
9 Ok(())
10}
11

get_question_result Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetQuestionResult200Response

Example

get_question_result Example
Copy Copy
1
2async fn example_get_question_result() -> Result<GetQuestionResult200Response, Error> {
3 let params: GetQuestionResultParams = GetQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "question-12345".to_string(),
6 };
7 let _include_metadata: Option<bool> = Some(true);
8 let response: GetQuestionResult200Response = get_question_result(configuration, params).await?;
9 Ok(response)
10}
11

get_question_results Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringNo
user_idStringNo
start_dateStringNo
question_idStringNo
question_idsStringNo
skipf64No

Response

Returns: GetQuestionResults200Response

Example

get_question_results Example
Copy Copy
1
2async fn run() -> Result<GetQuestionResults200Response, Error> {
3 let params: GetQuestionResultsParams = GetQuestionResultsParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 url_id: Some("news/local/2026/03/25".to_owned()),
6 user_id: Some("user_12345".to_owned()),
7 start_date: Some("2026-01-01T00:00:00Z".to_owned()),
8 question_id: Some("q_789".to_owned()),
9 question_ids: Some("q_789,q_790".to_owned()),
10 skip: Some(10.0),
11 };
12 let response: GetQuestionResults200Response = get_question_results(&configuration, params).await?;
13 Ok(response)
14}
15

update_question_result Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_question_result_bodymodels::UpdateQuestionResultBodyYes

Response

Returns: FlagCommentPublic200Response

Example

update_question_result Example
Copy Copy
1
2async fn run_update_question_result() -> Result<(), Error> {
3 let params: UpdateQuestionResultParams = UpdateQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article/2026/03/25/12345".to_string(),
6 update_question_result_body: models::UpdateQuestionResultBody {
7 question_id: Some("q-987".to_string()),
8 result: Some(true),
9 reviewer_id: Some("moderator-7".to_string()),
10 notes: Some("Marked as resolved after editorial review".to_string()),
11 },
12 };
13 let response: FlagCommentPublic200Response = update_question_result(&configuration, params).await?;
14 println!("update result: {:?}", response);
15 Ok(())
16}
17

aggregate_question_results Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
question_idStringNo
question_idsVecNo
url_idStringNo
time_bucketmodels::AggregateTimeBucketNo
start_dateStringNo
force_recalculateboolNo

Response

Returns: AggregateQuestionResults200Response

Example

aggregate_question_results Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: AggregateQuestionResultsParams = AggregateQuestionResultsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 question_id: Some("satisfaction-8".to_string()),
6 question_ids: Some(vec!["satisfaction-8".to_string(), "recommendation-3".to_string()]),
7 url_id: Some("news/article/2026/ai-announce".to_string()),
8 time_bucket: Some(models::AggregateTimeBucket::Daily),
9 start_date: Some("2026-03-01T00:00:00Z".to_string()),
10 force_recalculate: Some(true),
11 };
12 let aggregation: AggregateQuestionResults200Response = aggregate_question_results(&configuration, params).await?;
13 Ok(())
14}
15

bulk_aggregate_question_results Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
bulk_aggregate_question_results_requestmodels::BulkAggregateQuestionResultsRequestYes
force_recalculateboolNo

Response

Returns: BulkAggregateQuestionResults200Response

Example

bulk_aggregate_question_results Example
Copy Copy
1
2let params: BulkAggregateQuestionResultsParams = BulkAggregateQuestionResultsParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 bulk_aggregate_question_results_request: models::BulkAggregateQuestionResultsRequest {
5 questions: vec![
6 models::BulkAggregateQuestionItem {
7 question_id: "news/article-2026-03-24-comments".to_string(),
8 include_subquestions: Some(true),
9 top_n: Some(5),
10 }
11 ],
12 time_bucket: models::AggregateTimeBucket::Daily,
13 start_time: "2026-03-01T00:00:00Z".to_string(),
14 end_time: "2026-03-24T23:59:59Z".to_string(),
15 },
16 force_recalculate: Some(true),
17};
18let response: BulkAggregateQuestionResults200Response = bulk_aggregate_question_results(&configuration, params).await?;
19

combine_comments_with_question_results Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
question_idStringNo
question_idsVecNo
url_idStringNo
start_dateStringNo
force_recalculateboolNo
min_valuef64No
max_valuef64No
limitf64No

Response

Returns: CombineCommentsWithQuestionResults200Response

Example

combine_comments_with_question_results Example
Copy Copy
1
2async fn run() -> Result<CombineCommentsWithQuestionResults200Response, Error> {
3 let params: CombineCommentsWithQuestionResultsParams = CombineCommentsWithQuestionResultsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 question_id: Some("q-2026-product-satisfaction".to_string()),
6 question_ids: Some(vec![
7 "q-2026-product-satisfaction".to_string(),
8 "q-2026-support-rating".to_string(),
9 ]),
10 url_id: Some("news/product/launch-2026".to_string()),
11 start_date: Some("2026-03-01T00:00:00Z".to_string()),
12 force_recalculate: Some(true),
13 min_value: Some(1.0),
14 max_value: Some(5.0),
15 limit: Some(100.0),
16 };
17 let response: CombineCommentsWithQuestionResults200Response =
18 combine_comments_with_question_results(&configuration, params).await?;
19 Ok(response)
20}
21

add_sso_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_apisso_user_datamodels::CreateApissoUserDataYes

Response

Returns: AddSsoUserApiResponse

Example

add_sso_user Example
Copy Copy
1
2let params: AddSsoUserParams = AddSsoUserParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_apisso_user_data: models::CreateApissoUserData {
5 username: "jane.doe".to_string(),
6 email: "jane.doe@acme-corp.com".to_string(),
7 display_name: Some("Jane Doe".to_string()),
8 external_id: Some("sso-12345".to_string()),
9 avatar_url: Some("https://acme-corp.com/avatars/jane.jpg".to_string()),
10 roles: Some(vec!["author".to_string(), "moderator".to_string()]),
11 metadata: Some({
12 let mut m = std::collections::HashMap::new();
13 m.insert("team".to_string(), "editorial".to_string());
14 m.insert("tier".to_string(), "premium".to_string());
15 m
16 }),
17 },
18};
19
20let response: AddSsoUserApiResponse = add_sso_user(&configuration, params).await?;
21

delete_sso_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
delete_commentsboolNo
comment_delete_modeStringNo

Response

Returns: DeleteSsoUserApiResponse

Example

delete_sso_user Example
Copy Copy
1
2async fn run_delete_sso_user() -> Result<DeleteSsoUserApiResponse, Error> {
3 let params: DeleteSsoUserParams = DeleteSsoUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-8f3b2a1".to_string(),
6 delete_comments: Some(true),
7 comment_delete_mode: Some("soft_delete".to_string()),
8 };
9 let response: DeleteSsoUserApiResponse = delete_sso_user(&configuration, params).await?;
10 Ok(response)
11}
12

get_sso_user_by_email Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
emailStringYes

Response

Returns: GetSsoUserByEmailApiResponse

Example

get_sso_user_by_email Example
Copy Copy
1
2async fn fetch_sso_user() -> Result<GetSsoUserByEmailApiResponse, Error> {
3 let params: GetSsoUserByEmailParams = GetSsoUserByEmailParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 email: "jane.doe@acme.com".to_string(),
6 };
7 let user: GetSsoUserByEmailApiResponse = get_sso_user_by_email(&configuration, params).await?;
8 Ok(user)
9}
10

get_sso_user_by_id Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetSsoUserByIdApiResponse

Example

get_sso_user_by_id Example
Copy Copy
1
2async fn fetch_sso_user() -> Result<GetSsoUserByIdApiResponse, Error> {
3 let params = GetSsoUserByIdParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "jdoe-89".to_string(),
6 expand: Some(vec!["profile".to_string(), "roles".to_string()]),
7 };
8 let sso_user: GetSsoUserByIdApiResponse = get_sso_user_by_id(&configuration, params).await?;
9 Ok(sso_user)
10}
11

get_sso_users Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
skipi32No

Response

Returns: GetSsoUsers200Response

Example

get_sso_users Example
Copy Copy
1
2async fn fetch_sso_users() -> Result<(), Error> {
3 let params: GetSsoUsersParams = GetSsoUsersParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(20),
6 };
7 let response: GetSsoUsers200Response = get_sso_users(&configuration, params).await?;
8 Ok(())
9}
10

patch_sso_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_apisso_user_datamodels::UpdateApissoUserDataYes
update_commentsboolNo

Response

Returns: PatchSsoUserApiResponse

Example

patch_sso_user Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: PatchSsoUserParams = PatchSsoUserParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("user-1234"),
6 update_apisso_user_data: models::UpdateApissoUserData {
7 email: String::from("jane.doe@acme.com"),
8 display_name: Some(String::from("Jane Doe")),
9 external_id: Some(String::from("sso-9876")),
10 roles: Some(vec![String::from("editor")]),
11 active: Some(true),
12 },
13 update_comments: Some(true),
14 };
15
16 let patched_user: PatchSsoUserApiResponse = patch_sso_user(&configuration, params).await?;
17 Ok(())
18}
19

put_sso_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_apisso_user_datamodels::UpdateApissoUserDataYes
update_commentsboolNo

Response

Returns: PutSsoUserApiResponse

Example

put_sso_user Example
Copy Copy
1
2let params: PutSsoUserParams = PutSsoUserParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "user-12345".to_string(),
5 update_apisso_user_data: models::UpdateApissoUserData {
6 email: "jane.doe@acme.com".to_string(),
7 display_name: "Jane Doe".to_string(),
8 external_id: "sso-9876".to_string(),
9 roles: vec!["editor".to_string()],
10 },
11 update_comments: Some(true),
12};
13
14let response: PutSsoUserApiResponse = put_sso_user(&configuration, params).await?;
15

create_subscription Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_api_user_subscription_datamodels::CreateApiUserSubscriptionDataYes

Response

Returns: CreateSubscriptionApiResponse

Example

create_subscription Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateSubscriptionParams = CreateSubscriptionParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_api_user_subscription_data: models::CreateApiUserSubscriptionData {
6 api_user_id: "api_user_9843".to_string(),
7 resource: "news/article".to_string(),
8 plan: Some("pro".to_string()),
9 start_at: Some("2026-03-01T12:00:00Z".to_string()),
10 metadata: Some(std::collections::HashMap::from([
11 ("source".to_string(), "signup_form".to_string()),
12 ("utm_campaign".to_string(), "spring_launch".to_string()),
13 ])),
14 active: Some(true),
15 },
16 };
17
18 let subscription_response: CreateSubscriptionApiResponse =
19 create_subscription(&configuration, params).await?;
20 Ok(())
21}
22

delete_subscription Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
user_idStringNo

Response

Returns: DeleteSubscriptionApiResponse

Example

delete_subscription Example
Copy Copy
1
2async fn example_delete_subscription() -> Result<DeleteSubscriptionApiResponse, Error> {
3 let params: DeleteSubscriptionParams = DeleteSubscriptionParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "sub-newsletter-daily".to_string(),
6 user_id: Some("user_12345".to_string()),
7 };
8 let response: DeleteSubscriptionApiResponse = delete_subscription(&configuration, params).await?;
9 Ok(response)
10}
11

get_subscriptions Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringNo

Response

Returns: GetSubscriptionsApiResponse

Example

get_subscriptions Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetSubscriptionsParams = GetSubscriptionsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user-42@example.com".to_string()),
6 };
7 let subscriptions: GetSubscriptionsApiResponse = get_subscriptions(&configuration, params).await?;
8 let _ = subscriptions;
9 Ok(())
10}
11

update_subscription Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_api_user_subscription_datamodels::UpdateApiUserSubscriptionDataYes
user_idStringNo

Response

Returns: UpdateSubscriptionApiResponse

Example

update_subscription Example
Copy Copy
1
2async fn example_update_subscription() -> Result<(), Error> {
3 let params: UpdateSubscriptionParams = UpdateSubscriptionParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "sub_8f9a2b".to_string(),
6 update_api_user_subscription_data: models::UpdateApiUserSubscriptionData {
7 plan: "newsletter-weekly".to_string(),
8 active: true,
9 renewal_period_days: Some(30),
10 },
11 user_id: Some("user_42".to_string()),
12 };
13 let response: UpdateSubscriptionApiResponse = update_subscription(&configuration, params).await?;
14 Ok(())
15}
16

get_tenant_daily_usages Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
year_numberf64No
month_numberf64No
day_numberf64No
skipf64No

Response

Returns: GetTenantDailyUsages200Response

Example

get_tenant_daily_usages Example
Copy Copy
1
2async fn example_get_usage() -> Result<GetTenantDailyUsages200Response, Error> {
3 let params = GetTenantDailyUsagesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 year_number: Some(2026.0),
6 month_number: Some(3.0),
7 day_number: Some(25.0),
8 skip: Some(0.0),
9 };
10 let response = get_tenant_daily_usages(&configuration, params).await?;
11 Ok(response)
12}
13

create_tenant_package Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_tenant_package_bodymodels::CreateTenantPackageBodyYes

Response

Returns: CreateTenantPackage200Response

Example

create_tenant_package Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateTenantPackageParams = CreateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_tenant_package_body: models::CreateTenantPackageBody {
6 name: "Acme Standard Moderation".to_string(),
7 description: Some("Standard moderation package for news and blog sites".to_string()),
8 enabled: Some(true),
9 custom_config: Some(CustomConfigParameters { max_comment_length: Some(1000), require_moderation: Some(true) }),
10 gif_rating: Some(GifRating::PG13),
11 image_content_profanity_level: Some(ImageContentProfanityLevel::Moderate),
12 tos: Some(TosConfig { require_acceptance: Some(true), tos_url: Some("https://acme.example.com/terms".to_string()) }),
13 },
14 };
15 let response: CreateTenantPackage200Response = create_tenant_package(&configuration, params).await?;
16 Ok(())
17}
18

delete_tenant_package Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: FlagCommentPublic200Response

Example

delete_tenant_package Example
Copy Copy
1
2async fn run_delete() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantPackageParams = DeleteTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-comments-package-2026-03".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_tenant_package(&configuration, params).await?;
8 Ok(response)
9}
10

get_tenant_package Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetTenantPackage200Response

Example

get_tenant_package Example
Copy Copy
1
2async fn fetch_tenant_package() -> Result<GetTenantPackage200Response, Error> {
3 let params: GetTenantPackageParams = GetTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "package-basic-2026".to_string(),
6 };
7 let include_metadata: Option<bool> = Some(true);
8 let package: GetTenantPackage200Response = get_tenant_package(&configuration, params).await?;
9 Ok(package)
10}
11

get_tenant_packages Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
skipf64No

Response

Returns: GetTenantPackages200Response

Example

get_tenant_packages Example
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: GetTenantPackagesParams = GetTenantPackagesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(20.0),
6 };
7 let packages: GetTenantPackages200Response = get_tenant_packages(&configuration, params).await?;
8 Ok(())
9}
10

replace_tenant_package Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
replace_tenant_package_bodymodels::ReplaceTenantPackageBodyYes

Response

Returns: FlagCommentPublic200Response

Example

replace_tenant_package Example
Copy Copy
1
2async fn run_replace_package() -> Result<FlagCommentPublic200Response, Error> {
3 let params: ReplaceTenantPackageParams = ReplaceTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "enterprise-package-2026".to_string(),
6 replace_tenant_package_body: models::ReplaceTenantPackageBody {
7 name: "Acme Enterprise".to_string(),
8 plan: "enterprise".to_string(),
9 seats: Some(50),
10 allowed_domains: Some(vec![
11 "acme.com".to_string(),
12 "news.acme.com".to_string(),
13 ]),
14 },
15 };
16
17 let response: FlagCommentPublic200Response = replace_tenant_package(&configuration, params).await?;
18 Ok(response)
19}
20

update_tenant_package Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_tenant_package_bodymodels::UpdateTenantPackageBodyYes

Response

Returns: FlagCommentPublic200Response

Example

update_tenant_package Example
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: UpdateTenantPackageParams = UpdateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "pkg-professional-2026".to_string(),
6 update_tenant_package_body: models::UpdateTenantPackageBody {
7 name: "Acme Professional".to_string(),
8 plan: "professional".to_string(),
9 enabled: Some(true),
10 api_status: Some(ApiStatus::Enabled),
11 custom_config: Some(CustomConfigParameters {
12 moderation_webhook: Some("https://acme.example.com/hooks/moderation".to_string()),
13 sso_security_level: Some(SsoSecurityLevel::Strict),
14 }),
15 tos_config: Some(TosConfig {
16 enabled: Some(true),
17 url: Some("https://acme.example.com/terms".to_string()),
18 }),
19 },
20 };
21 let response: FlagCommentPublic200Response = update_tenant_package(&configuration, params).await?;
22 Ok(())
23}
24

create_tenant_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_tenant_user_bodymodels::CreateTenantUserBodyYes

Response

Returns: CreateTenantUser200Response

Example

create_tenant_user Example
Copy Copy
1
2let params: CreateTenantUserParams = CreateTenantUserParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_tenant_user_body: models::CreateTenantUserBody {
5 username: "jane.doe".to_string(),
6 email: "jane.doe@acme.com".to_string(),
7 display_name: Some("Jane Doe".to_string()),
8 roles: Some(vec!["reader".to_string(), "commenter".to_string()]),
9 locale: Some("en-US".to_string()),
10 is_verified: Some(true),
11 },
12};
13
14let response: CreateTenantUser200Response = create_tenant_user(&configuration, params).await?;
15

delete_tenant_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
delete_commentsStringNo
comment_delete_modeStringNo

Response

Returns: FlagCommentPublic200Response

Example

delete_tenant_user Example
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantUserParams = DeleteTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-9876".to_string(),
6 delete_comments: Some("true".to_string()),
7 comment_delete_mode: Some("permanent".to_string()),
8 };
9 let response: FlagCommentPublic200Response = delete_tenant_user(&configuration, params).await?;
10 Ok(response)
11}
12

get_tenant_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetTenantUser200Response

Example

get_tenant_user Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantUserParams = GetTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-9a4f2e".to_string(),
6 expand: Some(vec!["roles".to_string(), "preferences".to_string()]),
7 };
8 let user_response: GetTenantUser200Response = get_tenant_user(&configuration, params).await?;
9 println!("{:#?}", user_response);
10 Ok(())
11}
12

get_tenant_users Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
skipf64No

Response

Returns: GetTenantUsers200Response

Example

get_tenant_users Example
Copy Copy
1
2async fn example_get_tenant_users() -> Result<(), Error> {
3 let params: GetTenantUsersParams = GetTenantUsersParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(20.0),
6 };
7 let users: GetTenantUsers200Response = get_tenant_users(&configuration, params).await?;
8 let _users = users;
9 Ok(())
10}
11

replace_tenant_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
replace_tenant_user_bodymodels::ReplaceTenantUserBodyYes
update_commentsStringNo

Response

Returns: FlagCommentPublic200Response

Example

replace_tenant_user Example
Copy Copy
1
2let params: ReplaceTenantUserParams = ReplaceTenantUserParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "user-42".to_string(),
5 replace_tenant_user_body: models::ReplaceTenantUserBody {
6 user_id: "user-42".to_string(),
7 display_name: "Jane Doe".to_string(),
8 email: "jane.doe@acme.com".to_string(),
9 roles: vec!["moderator".to_string()],
10 },
11 update_comments: Some("true".to_string()),
12};
13let response: FlagCommentPublic200Response = replace_tenant_user(&configuration, params).await?
14

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
redirect_urlStringNo

Response

Returns: FlagCommentPublic200Response

Example

send_login_link Example
Copy Copy
1
2async fn send_login_example() -> Result<FlagCommentPublic200Response, Error> {
3 let params: SendLoginLinkParams = SendLoginLinkParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("user-98765"),
6 redirect_url: Some(String::from("https://acme.example.com/dashboard")),
7 };
8 let response: FlagCommentPublic200Response = send_login_link(&configuration, params).await?;
9 Ok(response)
10}
11

update_tenant_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_tenant_user_bodymodels::UpdateTenantUserBodyYes
update_commentsStringNo

Response

Returns: FlagCommentPublic200Response

Example

update_tenant_user Example
Copy Copy
1
2async fn run_update_tenant_user(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateTenantUserParams = UpdateTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-7b9f".to_string(),
6 update_tenant_user_body: models::UpdateTenantUserBody {
7 email: Some("jane.doe@acme.com".to_string()),
8 display_name: Some("Jane Doe".to_string()),
9 username: Some("jdoe".to_string()),
10 role: Some("moderator".to_string()),
11 },
12 update_comments: Some("Promoted to moderator to handle flagged comments".to_string()),
13 };
14 let response = update_tenant_user(configuration, params).await?;
15 Ok(response)
16}
17

create_tenant Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_tenant_bodymodels::CreateTenantBodyYes

Response

Returns: CreateTenant200Response

Example

create_tenant Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateTenantParams = CreateTenantParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_tenant_body: models::CreateTenantBody {
6 name: "Acme Corporation".to_string(),
7 primary_domain: Some("acme.example.com".to_string()),
8 admin_email: Some("admin@acme.example.com".to_string()),
9 api_domain_configuration: Some(models::ApiDomainConfiguration {
10 primary_domain: Some("acme.example.com".to_string()),
11 allowed_origins: Some(vec![
12 "https://acme.example.com".to_string(),
13 "https://www.acme.com".to_string()
14 ]),
15 ..Default::default()
16 }),
17 billing_info: Some(models::BillingInfo {
18 plan: "business".to_string(),
19 company_name: Some("Acme Corporation".to_string()),
20 contact_email: Some("billing@acme.example.com".to_string()),
21 ..Default::default()
22 }),
23 imported_sites: Some(vec![models::ImportedSiteType {
24 site_id: "news/site-1".to_string(),
25 origin: Some("https://news.acme.com".to_string()),
26 ..Default::default()
27 }]),
28 ..Default::default()
29 },
30 };
31 let response: CreateTenant200Response = create_tenant(&configuration, params).await?;
32 Ok(())
33}
34

delete_tenant Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
sureStringNo

Response

Returns: FlagCommentPublic200Response

Example

delete_tenant Example
Copy Copy
1
2let params: DeleteTenantParams = DeleteTenantParams {
3 tenant_id: String::from("acme-corp-tenant"),
4 id: String::from("acme-corp-tenant-001"),
5 sure: Some(String::from("confirm-delete")),
6};
7let response: FlagCommentPublic200Response = delete_tenant(&configuration, params).await?;
8

get_tenant Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetTenant200Response

Example

get_tenant Example
Copy Copy
1
2async fn run_get_tenant() -> Result<GetTenant200Response, Error> {
3 let params: GetTenantParams = GetTenantParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/site-42".to_string(),
6 expand: Some(vec!["domains".to_string(), "billing".to_string()]),
7 };
8 let tenant: GetTenant200Response = get_tenant(&configuration, params).await?;
9 Ok(tenant)
10}
11

get_tenants Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
metaStringNo
skipf64No

Response

Returns: GetTenants200Response

Example

get_tenants Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantsParams = GetTenantsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 meta: Some("news/article".to_string()),
6 skip: Some(10.0),
7 };
8 let response: GetTenants200Response = get_tenants(&configuration, params).await?;
9 println!("{:#?}", response);
10 Ok(())
11}
12

update_tenant Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_tenant_bodymodels::UpdateTenantBodyYes

Response

Returns: FlagCommentPublic200Response

Example

update_tenant Example
Copy Copy
1
2let params: UpdateTenantParams = UpdateTenantParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "site-42".to_string(),
5 update_tenant_body: models::UpdateTenantBody {
6 name: Some("Acme Corporation".to_string()),
7 api_domain_configuration: Some(models::ApiDomainConfiguration {
8 primary_domain: Some("comments.acme.com".to_string()),
9 allowed_domains: Some(vec!["acme.com".to_string(), "www.acme.com".to_string()]),
10 }),
11 billing_info: Some(models::BillingInfo {
12 plan: Some("business".to_string()),
13 billing_contact_email: Some("billing@acme.com".to_string()),
14 }),
15 sso_security_level: Some(models::SsoSecurityLevel::Strict),
16 custom_config_parameters: Some(models::CustomConfigParameters {
17 max_comment_length: Some(2000),
18 enable_moderation_queue: Some(true),
19 }),
20 },
21};
22let response: FlagCommentPublic200Response = update_tenant(&configuration, params).await?;
23

change_ticket_state Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringYes
idStringYes
change_ticket_state_bodymodels::ChangeTicketStateBodyYes

Response

Returns: ChangeTicketState200Response

Example

change_ticket_state Example
Copy Copy
1
2async fn run() -> Result<ChangeTicketState200Response, Error> {
3 let params: ChangeTicketStateParams = ChangeTicketStateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: "agent_jdoe".to_string(),
6 id: "ticket-2026-03-25-001".to_string(),
7 change_ticket_state_body: models::ChangeTicketStateBody {
8 state: "closed".to_string(),
9 note: Some("Issue resolved after patch deployment".to_string()),
10 assignee_id: Some("agent_jdoe".to_string()),
11 priority: Some("low".to_string()),
12 },
13 };
14 let response: ChangeTicketState200Response = change_ticket_state(&configuration, params).await?;
15 Ok(response)
16}
17

create_ticket Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringYes
create_ticket_bodymodels::CreateTicketBodyYes

Response

Returns: CreateTicket200Response

Example

create_ticket Example
Copy Copy
1
2async fn create_ticket_example() -> Result<CreateTicket200Response, Error> {
3 let params = CreateTicketParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: "user-12345".to_string(),
6 create_ticket_body: models::CreateTicketBody {
7 subject: "Moderation request: abusive comments".to_string(),
8 description: "Several abusive comments reported on the article 'Election 2026: Key Races'".to_string(),
9 priority: Some("high".to_string()),
10 tags: Some(vec!["moderation".to_string(), "priority-high".to_string()]),
11 reporter_email: Some("editor@news.example.com".to_string()),
12 source_url: Some("https://news.example.com/articles/election-2026-key-races".to_string()),
13 custom_fields: Some(std::collections::HashMap::from([
14 ("article_id".to_string(), "news-20260324-001".to_string())
15 ])),
16 },
17 };
18 let response: CreateTicket200Response = create_ticket(&configuration, params).await?;
19 Ok(response)
20}
21

get_ticket Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
user_idStringNo

Response

Returns: GetTicket200Response

Example

get_ticket Example
Copy Copy
1
2async fn example_get_ticket() -> Result<GetTicket200Response, Error> {
3 let params: GetTicketParams = GetTicketParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "support/ticket-2026-03-25-12345".to_string(),
6 user_id: Some("user-67890".to_string()),
7 };
8 let ticket: GetTicket200Response = get_ticket(&configuration, params).await?;
9 Ok(ticket)
10}
11

get_tickets Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringNo
statef64No
skipf64No
limitf64No

Response

Returns: GetTickets200Response

Example

get_tickets Example
Copy Copy
1
2async fn example_get_tickets() -> Result<(), Error> {
3 let params: GetTicketsParams = GetTicketsParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 user_id: Some("user-9876".to_owned()),
6 state: Some(1.0),
7 skip: Some(0.0),
8 limit: Some(25.0),
9 };
10 let tickets: GetTickets200Response = get_tickets(configuration, params).await?;
11 Ok(())
12}
13

upload_image Internal Link

Upload and resize an image

Parameters

NameTypeRequiredDescription
tenant_idStringYes
filestd::path::PathBufYes
size_presetmodels::SizePresetNo
url_idStringNo

Response

Returns: UploadImageResponse

Example

upload_image Example
Copy Copy
1
2async fn run_upload() -> Result<UploadImageResponse, Error> {
3 let params: UploadImageParams = UploadImageParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 file: std::path::PathBuf::from("assets/images/news-article-hero.jpg"),
6 size_preset: None,
7 url_id: Some(String::from("news/article/2026/hero-image")),
8 };
9 let response: UploadImageResponse = upload_image(&configuration, params).await?;
10 Ok(response)
11}
12

get_user_badge_progress_by_id Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetUserBadgeProgressById200Response

Example

get_user_badge_progress_by_id Example
Copy Copy
1
2async fn example_get_badge_progress() -> Result<GetUserBadgeProgressById200Response, Error> {
3 let cfg: &configuration::Configuration = &configuration;
4 let params = GetUserBadgeProgressByIdParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 id: "badge-007-community-builder".to_string(),
7 };
8 let response: GetUserBadgeProgressById200Response = get_user_badge_progress_by_id(cfg, params).await?;
9 Ok(response)
10}
11

get_user_badge_progress_by_user_id Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringYes

Response

Returns: GetUserBadgeProgressById200Response

Example

get_user_badge_progress_by_user_id Example
Copy Copy
1
2async fn example() -> Result<GetUserBadgeProgressById200Response, Error> {
3 let cfg: &configuration::Configuration = &configuration;
4 let params: GetUserBadgeProgressByUserIdParams = GetUserBadgeProgressByUserIdParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 user_id: "journalist-9876".to_string(),
7 include_inactive: Some(false),
8 locale: Some("en-US".to_string()),
9 };
10 let response: GetUserBadgeProgressById200Response =
11 get_user_badge_progress_by_user_id(cfg, params).await?;
12 Ok(response)
13}
14

get_user_badge_progress_list Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringNo
limitf64No
skipf64No

Response

Returns: GetUserBadgeProgressList200Response

Example

get_user_badge_progress_list Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetUserBadgeProgressListParams = GetUserBadgeProgressListParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user_98765".to_string()),
6 limit: Some(25.0),
7 skip: Some(0.0),
8 };
9 let response: GetUserBadgeProgressList200Response =
10 get_user_badge_progress_list(&configuration, params).await?;
11 let _response = response;
12 Ok(())
13}
14

create_user_badge Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
create_user_badge_paramsmodels::CreateUserBadgeParamsYes

Response

Returns: CreateUserBadge200Response

Example

create_user_badge Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateUserBadgeParams = CreateUserBadgeParams {
4 tenant_id: "acme-corp-tenant".into(),
5 create_user_badge_params: models::CreateUserBadgeParams {
6 name: "Top Contributor".into(),
7 description: Some("Awarded for sustained high-quality contributions".into()),
8 image_url: Some("https://cdn.acme.com/badges/top-contributor.png".into()),
9 criteria: Some("100 upvotes across articles and comments".into()),
10 is_active: Some(true),
11 tags: Some(vec!["community".into(), "milestone".into()]),
12 },
13 };
14 let response: CreateUserBadge200Response = create_user_badge(&configuration, params).await?;
15 Ok(())
16}
17

delete_user_badge Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: UpdateUserBadge200Response

Example

delete_user_badge Example
Copy Copy
1
2async fn run_delete_badge() -> Result<UpdateUserBadge200Response, Error> {
3 let params: DeleteUserBadgeParams = DeleteUserBadgeParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "badge-7890".to_string(),
6 };
7 let response: UpdateUserBadge200Response = delete_user_badge(&configuration, params).await?;
8 Ok(response)
9}
10

get_user_badge Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetUserBadge200Response

Example

get_user_badge Example
Copy Copy
1
2async fn fetch_user_badge() -> Result<GetUserBadge200Response, Error> {
3 let params = GetUserBadgeParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "verified-journalist-badge-001".to_string(),
6 locale: Some("en-US".to_string()),
7 };
8 let badge: GetUserBadge200Response = get_user_badge(&configuration, params).await?;
9 Ok(badge)
10}
11

get_user_badges Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
user_idStringNo
badge_idStringNo
displayed_on_commentsboolNo
limitf64No
skipf64No

Response

Returns: GetUserBadges200Response

Example

get_user_badges Example
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetUserBadgesParams = GetUserBadgesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 user_id: Some(String::from("user-9876")),
6 badge_id: Some(String::from("top-reviewer")),
7 displayed_on_comments: Some(true),
8 limit: Some(50.0),
9 skip: Some(0.0),
10 };
11 let response: GetUserBadges200Response = get_user_badges(&configuration, params).await?;
12 Ok(())
13}
14

update_user_badge Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
update_user_badge_paramsmodels::UpdateUserBadgeParamsYes

Response

Returns: UpdateUserBadge200Response

Example

update_user_badge Example
Copy Copy
1
2let params: UpdateUserBadgeParams = UpdateUserBadgeParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "badge-verified-001".to_string(),
5 update_user_badge_params: models::UpdateUserBadgeParams {
6 name: Some("Verified Contributor".to_string()),
7 description: Some("Awarded for consistent, high-quality contributions".to_string()),
8 icon_url: Some("https://assets.acme.com/badges/verified.png".to_string()),
9 color_hex: Some("#1E90FF".to_string()),
10 min_posts: Some(100u32),
11 active: Some(true),
12 },
13};
14let response: UpdateUserBadge200Response = update_user_badge(&configuration, params).await?;
15

get_user_notification_count Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
ssoStringNo

Response

Returns: GetUserNotificationCount200Response

Example

get_user_notification_count Example
Copy Copy
1
2async fn example_user_notification_count() -> Result<(), Error> {
3 let params: GetUserNotificationCountParams = GetUserNotificationCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 sso: Some(String::from("sso-jwt-abc123")),
6 };
7 let _response: GetUserNotificationCount200Response =
8 get_user_notification_count(&configuration, params).await?;
9 Ok(())
10}
11

get_user_notifications Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
page_sizei32No
after_idStringNo
include_contextboolNo
after_created_ati64No
unread_onlyboolNo
dm_onlyboolNo
no_dmboolNo
include_translationsboolNo
ssoStringNo

Response

Returns: GetUserNotifications200Response

Example

get_user_notifications Example
Copy Copy
1
2let params = GetUserNotificationsParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 page_size: Some(25),
5 after_id: Some("notif_98765".to_string()),
6 include_context: Some(true),
7 after_created_at: Some(1_681_500_000i64),
8 unread_only: Some(true),
9 dm_only: Some(false),
10 no_dm: Some(false),
11 include_translations: Some(true),
12 sso: Some("sso_user_token_ab12".to_string()),
13};
14let notifications: GetUserNotifications200Response = get_user_notifications(&configuration, params).await?;
15

reset_user_notification_count Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
ssoStringNo

Response

Returns: ResetUserNotifications200Response

Example

reset_user_notification_count Example
Copy Copy
1
2async fn run_reset_user_notification_count() -> Result<ResetUserNotifications200Response, Error> {
3 let params: ResetUserNotificationCountParams = ResetUserNotificationCountParams {
4 tenant_id: "acme-news-tenant".to_string(),
5 sso: Some("user-9876-token".to_string()),
6 };
7 let response: ResetUserNotifications200Response = reset_user_notification_count(&configuration, params).await?;
8 Ok(response)
9}
10

reset_user_notifications Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
after_idStringNo
after_created_ati64No
unread_onlyboolNo
dm_onlyboolNo
no_dmboolNo
ssoStringNo

Response

Returns: ResetUserNotifications200Response

Example

reset_user_notifications Example
Copy Copy
1
2async fn run_reset() -> Result<(), Error> {
3 let params: ResetUserNotificationsParams = ResetUserNotificationsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 after_id: Some("notif_987654321".to_string()),
6 after_created_at: Some(1672531200),
7 unread_only: Some(true),
8 dm_only: Some(false),
9 no_dm: Some(false),
10 sso: Some("sso-enterprise".to_string()),
11 };
12 let resp: ResetUserNotifications200Response = reset_user_notifications(&configuration, params).await?;
13 let _ = resp;
14 Ok(())
15}
16

update_user_notification_comment_subscription_status Internal Link

Enable or disable notifications for a specific comment.

Parameters

NameTypeRequiredDescription
tenant_idStringYes
notification_idStringYes
opted_in_or_outStringYes
comment_idStringYes
ssoStringNo

Response

Returns: UpdateUserNotificationStatus200Response

Example

update_user_notification_comment_subscription_status Example
Copy Copy
1
2async fn example_update_user_notification_comment_subscription_status() -> Result<(), Error> {
3 let params: UpdateUserNotificationCommentSubscriptionStatusParams = UpdateUserNotificationCommentSubscriptionStatusParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 notification_id: "notif-2026-03-25-4f2b".to_string(),
6 opted_in_or_out: "opted_out".to_string(),
7 comment_id: "cmt-98a7b6c5d4".to_string(),
8 sso: Some("sso-token-abc123".to_string()),
9 };
10 let response: UpdateUserNotificationStatus200Response =
11 update_user_notification_comment_subscription_status(&configuration, params).await?;
12 Ok(())
13}
14

update_user_notification_page_subscription_status Internal Link

Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
urlStringYes
page_titleStringYes
subscribed_or_unsubscribedStringYes
ssoStringNo

Response

Returns: UpdateUserNotificationStatus200Response

Example

update_user_notification_page_subscription_status Example
Copy Copy
1
2async fn run() -> Result<UpdateUserNotificationStatus200Response, Error> {
3 let params = UpdateUserNotificationPageSubscriptionStatusParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("article-12345"),
6 url: String::from("https://news.acme.com/articles/2026/03/25/advances-in-ai"),
7 page_title: String::from("Advances in AI: What to Expect in 2026"),
8 subscribed_or_unsubscribed: String::from("subscribed"),
9 sso: Some(String::from("user-jwt-xyz123")),
10 };
11 let response = update_user_notification_page_subscription_status(&configuration, params).await?;
12 Ok(response)
13}
14

update_user_notification_status Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
notification_idStringYes
new_statusStringYes
ssoStringNo

Response

Returns: UpdateUserNotificationStatus200Response

Example

update_user_notification_status Example
Copy Copy
1
2async fn run() -> Result<UpdateUserNotificationStatus200Response, Error> {
3 let params: UpdateUserNotificationStatusParams = UpdateUserNotificationStatusParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 notification_id: "notif-2026-04-01-7f3b".to_string(),
6 new_status: "read".to_string(),
7 sso: Some("sso-session-abcdef123456".to_string()),
8 };
9 let resp: UpdateUserNotificationStatus200Response =
10 update_user_notification_status(&configuration, params).await?;
11 Ok(resp)
12}
13

get_user_presence_statuses Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_id_wsStringYes
user_idsStringYes

Response

Returns: GetUserPresenceStatuses200Response

Example

get_user_presence_statuses Example
Copy Copy
1
2async fn run() -> Result<GetUserPresenceStatuses200Response, Error> {
3 let tenant_id: String = "acme-corp-tenant".to_string();
4 let url_id_ws: String = "news/article".to_string();
5 let user_ids_opt: Option<String> = Some("user123,user456,user789".to_string());
6 let params = GetUserPresenceStatusesParams {
7 tenant_id,
8 url_id_ws,
9 user_ids: user_ids_opt.unwrap(),
10 };
11 let presence: GetUserPresenceStatuses200Response = get_user_presence_statuses(&configuration, params).await?;
12 Ok(presence)
13}
14

search_users Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
username_starts_withStringNo
mention_group_idsVecNo
ssoStringNo
search_sectionStringNo

Response

Returns: SearchUsers200Response

Example

search_users Example
Copy Copy
1
2async fn run_search() -> Result<SearchUsers200Response, Error> {
3 let params: SearchUsersParams = SearchUsersParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/article-2026-03-25-launch"),
6 username_starts_with: Some(String::from("alex")),
7 mention_group_ids: Some(vec![String::from("team-marketing"), String::from("team-product")]),
8 sso: Some(String::from("okta")),
9 search_section: Some(String::from("comments")),
10 };
11 let search_result: SearchUsers200Response = search_users(&configuration, params).await?;
12 Ok(search_result)
13}
14

get_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes

Response

Returns: GetUser200Response

Example

get_user Example
Copy Copy
1
2pub async fn run_get_user_example() -> Result<(), Error> {
3 let tenant: Option<String> = Some("acme-corp-tenant".to_string());
4 let params: GetUserParams = GetUserParams {
5 tenant_id: tenant.unwrap(),
6 id: "user-9f8b3c".to_string(),
7 };
8 let user: GetUser200Response = get_user(&configuration, params).await?;
9 Ok(())
10}
11

create_vote Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
directionStringYes
user_idStringNo
anon_user_idStringNo

Response

Returns: VoteComment200Response

Example

create_vote Example
Copy Copy
1
2async fn example_create_vote() -> Result<(), Error> {
3 let params: CreateVoteParams = CreateVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/article/12345".to_string(),
6 direction: "up".to_string(),
7 user_id: Some("user-9876".to_string()),
8 anon_user_id: Some("anon-01-abcdef".to_string()),
9 };
10
11 let response: VoteComment200Response = create_vote(&configuration, params).await?;
12 println!("{:?}", response);
13 Ok(())
14}
15

delete_vote Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
idStringYes
edit_keyStringNo

Response

Returns: DeleteCommentVote200Response

Example

delete_vote Example
Copy Copy
1
2async fn delete_vote_example() -> Result<DeleteCommentVote200Response, Error> {
3 let params: DeleteVoteParams = DeleteVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "comment-98765".to_string(),
6 edit_key: Some("edit-4f2b9c".to_string()),
7 };
8 let response: DeleteCommentVote200Response = delete_vote(&configuration, params).await?;
9 Ok(response)
10}
11

get_votes Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes

Response

Returns: GetVotes200Response

Example

get_votes Example
Copy Copy
1
2async fn fetch_votes() -> Result<GetVotes200Response, Error> {
3 let params: GetVotesParams = GetVotesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 url_id: "news/article/2026/03/25/breaking-story".to_string(),
6 include_replies: Some(true),
7 };
8 let votes: GetVotes200Response = get_votes(&configuration, params).await?;
9 Ok(votes)
10}
11

get_votes_for_user Internal Link

Parameters

NameTypeRequiredDescription
tenant_idStringYes
url_idStringYes
user_idStringNo
anon_user_idStringNo

Response

Returns: GetVotesForUser200Response

Example

get_votes_for_user Example
Copy Copy
1
2async fn example_get_votes_for_user() -> Result<(), Error> {
3 let params: GetVotesForUserParams = GetVotesForUserParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/article-2026-03-fastcomments-launch"),
6 user_id: Some(String::from("user_12345")),
7 anon_user_id: Some(String::from("anon_9f2e7b")),
8 };
9 let votes: GetVotesForUser200Response = get_votes_for_user(&configuration, params).await?;
10 Ok(())
11}
12

Need Help?

If you encounter any issues or have questions about the Rust SDK, please:

Contributing

Contributions are welcome! Please visit the GitHub repository for contribution guidelines.