FastComments.com

FastComments Rust SDK


Esto es el SDK oficial de Rust para FastComments.

SDK oficial de Rust para la API de FastComments

Repositorio

Ver en GitHub


Instalación Internal Link

cargo add fastcomments-sdk

El SDK requiere la edición 2021 de Rust o posterior.

Contenido de la biblioteca Internal Link

El FastComments Rust SDK consta de varios módulos:

  • Client Module - Cliente API autogenerado para las APIs REST de FastComments

    • Definiciones de tipos completas para todos los modelos de la API
    • Endpoints tanto autenticados (DefaultApi) como públicos (PublicApi)
    • Compatibilidad completa con async/await usando tokio
    • Consulte client/README.md para documentación detallada de la API
  • SSO Module - Utilidades de Single Sign-On del lado del servidor

    • Generación segura de tokens para la autenticación de usuarios
    • Soporte para modos SSO tanto simples como seguros
    • Firma de tokens basada en HMAC-SHA256
  • Core Types - Definiciones de tipos compartidos y utilidades

    • Modelos de comentarios y estructuras de metadatos
    • Configuraciones de usuario y tenant
    • Funciones auxiliares para operaciones comunes

Inicio rápido Internal Link

Uso de la API pública

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

#[tokio::main]
async fn main() {
    // Crear la configuración de la API
    let config = Configuration::new();

    // Obtener comentarios de una página
    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),
    }
}

Uso de la API autenticada

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

#[tokio::main]
async fn main() {
    // Crear configuración con la clave de la API
    let mut config = Configuration::new();
    config.api_key = Some(ApiKey {
        prefix: None,
        key: "your-api-key".to_string(),
    });

    // Obtener comentarios usando la API autenticada
    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),
    }
}

Uso de SSO para autenticación

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

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

    // Crear datos de usuario SSO seguros (¡solo del lado del servidor!)
    let user_data = SecureSSOUserData::new(
        "user-123".to_string(),           // ID de usuario
        "user@example.com".to_string(),   // Correo electrónico
        "John Doe".to_string(),            // Nombre de usuario
        "https://example.com/avatar.jpg".to_string(), // URL del avatar
    );

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

    println!("SSO Token: {}", token);
    // Pasa este token a tu frontend para la autenticación
}

Problemas comunes Internal Link

Errores 401 — No autorizado

Si obtienes errores 401 al usar la API autenticada:

  1. Comprueba tu clave de API: Asegúrate de que estás usando la clave de API correcta desde tu panel de FastComments
  2. Verifica el tenant ID: Asegúrate de que el tenant ID coincida con tu cuenta
  3. Formato de la clave de API: La clave de API debe pasarse en la Configuration:
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

Problemas con tokens SSO

Si los tokens SSO no funcionan:

  1. Usa el modo seguro en producción: Siempre usa FastCommentsSSO::new_secure() con tu clave de API en producción
  2. Sólo en el servidor: Genera los tokens SSO en tu servidor, nunca expongas tu clave de API a los clientes
  3. Verifica los datos del usuario: Asegúrate de que se proporcionen todos los campos requeridos (id, email, username)

Errores del runtime asíncrono

El SDK usa tokio para operaciones asíncronas. Asegúrate de:

  1. Añade tokio a tus dependencias:

    [dependencies]
    tokio = { version = "1", features = ["full"] }
  2. Usa el runtime de tokio:

    #[tokio::main]
    async fn main() {
     // Tu código asíncrono aquí
    }

Notas Internal Link

Identificadores de transmisión

Verás que debes pasar un broadcastId en algunas llamadas a la API. Cuando recibas eventos, obtendrás este ID de vuelta, de modo que sepas ignorar el evento si planeas aplicar los cambios de forma optimista en el cliente (lo que probablemente querrás hacer, ya que ofrece la mejor experiencia). Pasa un UUID aquí. El ID debe ser lo suficientemente único para no ocurrir dos veces en una sesión del navegador.

Agregar Internal Link

Realiza agregaciones de documentos agrupándolos (si se proporciona groupBy) y aplicando múltiples operaciones. Se admiten diferentes operaciones (p. ej. sum, countDistinct, avg, etc.).

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
aggregation_request models::AggregationRequest
parent_tenant_id String No
include_stats bool No

Respuesta

Devuelve: AggregationResponse


Obtener registros de auditoría Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
limit f64 No
skip f64 No
order models::SortDir No
after f64 No
before f64 No

Respuesta

Devuelve: GetAuditLogs200Response

Ejemplo

get_audit_logs Ejemplo
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

Bloquear desde comentario público Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String
public_block_from_comment_params models::PublicBlockFromCommentParams
sso String No

Respuesta

Devuelve: BlockFromCommentPublic200Response

Ejemplo

Ejemplo block_from_comment_public
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

Desbloquear comentario público Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String
public_block_from_comment_params models::PublicBlockFromCommentParams
sso String No

Respuesta

Devuelve: UnBlockCommentPublic200Response

Ejemplo

Ejemplo de un_block_comment_public
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

Comprobar comentarios bloqueados Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_ids String
sso String No

Respuesta

Devuelve: CheckedCommentsForBlocked200Response

Ejemplo

Ejemplo de checked_comments_for_blocked
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

Bloquear usuario por comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
block_from_comment_params models::BlockFromCommentParams
user_id String No
anon_user_id String No

Respuesta

Devuelve: BlockFromCommentPublic200Response

Ejemplo

Ejemplo de block_user_from_comment
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

Crear comentario público Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
url_id String
broadcast_id String
comment_data models::CommentData
session_id String No
sso String No

Respuesta

Devuelve: CreateCommentPublic200Response

Ejemplo

Ejemplo de create_comment_public
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

Eliminar comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
context_user_id String No
is_live bool No

Respuesta

Devuelve: DeleteComment200Response

Ejemplo

Ejemplo de delete_comment
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

Eliminar comentario público Internal Link

Parámetros

Name Type Required Description
tenant_id String
comment_id String
broadcast_id String
edit_key String No
sso String No

Respuesta

Devuelve: DeleteCommentPublic200Response

Ejemplo

delete_comment_public Ejemplo
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

Eliminar voto de comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String
vote_id String
url_id String
broadcast_id String
edit_key String No
sso String No

Respuesta

Devuelve: DeleteCommentVote200Response

Ejemplo

Ejemplo de delete_comment_vote
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

Marcar comentario Internal Link

Parámetros

Name Type Requerido Descripción
tenant_id String
id String
user_id String No
anon_user_id String No

Respuesta

Devuelve: FlagComment200Response

Ejemplo

flag_comment Ejemplo
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

Obtener comentario Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String

Respuesta

Devuelve: GetComment200Response

Ejemplo

Ejemplo de get_comment
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

Obtener texto del comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
comment_id String
edit_key String No
sso String No

Respuesta

Devuelve: GetCommentText200Response

Ejemplo

Ejemplo de get_comment_text
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

Obtener nombres de usuarios que votaron el comentario Internal Link


Parámetros

Name Type Required Description
tenant_id String
comment_id String
dir i32
sso String No

Respuesta

Devuelve: GetCommentVoteUserNames200Response

Ejemplo

Ejemplo de get_comment_vote_user_names
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

Obtener comentarios Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
page i32 No
limit i32 No
skip i32 No
as_tree bool No
skip_children i32 No
limit_children i32 No
max_tree_depth i32 No
url_id String No
user_id String No
anon_user_id String No
context_user_id String No
hash_tag String No
parent_id String No
direction models::SortDirections No

Respuesta

Devuelve: GetComments200Response

Ejemplo

Ejemplo de get_comments
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

Obtener comentarios públicos Internal Link

req tenantId urlId

Parámetros

Name Type Required Description
tenant_id String
url_id String
page i32 No
direction models::SortDirections No
sso String No
skip i32 No
skip_children i32 No
limit i32 No
limit_children i32 No
count_children bool No
fetch_page_for_comment_id String No
include_config bool No
count_all bool No
includei10n bool No
locale String No
modules String No
is_crawler bool No
include_notification_count bool No
as_tree bool No
max_tree_depth i32 No
use_full_translation_ids bool No
parent_id String No
search_text String No
hash_tags Vec No
user_id String No
custom_config_str String No
after_comment_id String No
before_comment_id String No

Respuesta

Devuelve: GetCommentsPublic200Response

Ejemplo

Ejemplo de get_comments_public
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

Bloquear comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String
broadcast_id String
sso String No

Respuesta

Devuelve: LockComment200Response

Ejemplo

Ejemplo de lock_comment
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

Anclar comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
comment_id String
broadcast_id String
sso String No

Respuesta

Devuelve: PinComment200Response

Ejemplo

Ejemplo de pin_comment
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

Guardar comentario Internal Link

Parámetros

Name Type Requerido Descripción
tenant_id String
create_comment_params models::CreateCommentParams
is_live bool No
do_spam_check bool No
send_emails bool No
populate_notifications bool No

Respuesta

Devuelve: SaveComment200Response

Ejemplo

Ejemplo de save_comment
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

Guardar comentarios en bloque Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
create_comment_params Vecmodels::CreateCommentParams
is_live bool No
do_spam_check bool No
send_emails bool No
populate_notifications bool No

Respuesta

Devuelve: Vec<models::SaveComment200Response>

Ejemplo

Ejemplo de save_comments_bulk
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

Establecer texto del comentario Internal Link

Parámetros

Name Type Required Description
tenant_id String
comment_id String
broadcast_id String
comment_text_update_request models::CommentTextUpdateRequest
edit_key String No
sso String No

Respuesta

Devuelve: SetCommentText200Response

Ejemplo

Ejemplo de set_comment_text
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

Desbloquear usuario por comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
un_block_from_comment_params models::UnBlockFromCommentParams
user_id String No
anon_user_id String No

Respuesta

Devuelve: UnBlockCommentPublic200Response

Ejemplo

Ejemplo de un_block_user_from_comment
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

Quitar marca al comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
user_id String No
anon_user_id String No

Respuesta

Devuelve: FlagComment200Response

Ejemplo

un_flag_comment Ejemplo
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

Desbloquear comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String
broadcast_id String
sso String No

Respuesta

Devuelve: LockComment200Response

Ejemplo

Ejemplo de un_lock_comment
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

Desanclar comentario Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
comment_id String
broadcast_id String
sso String No

Respuesta

Devuelve: PinComment200Response

Ejemplo

un_pin_comment Ejemplo
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

Actualizar comentario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
updatable_comment_params models::UpdatableCommentParams
context_user_id String No
do_spam_check bool No
is_live bool No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_comment
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

Votar comentario Internal Link

Parámetros

Name Type Required Description
tenant_id String Yes
comment_id String Yes
url_id String Yes
broadcast_id String Yes
vote_body_params models::VoteBodyParams Yes
session_id String No
sso String No

Respuesta

Devuelve: VoteComment200Response

Ejemplo

Ejemplo de vote_comment
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

Agregar configuración de dominio Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
add_domain_config_params models::AddDomainConfigParams

Respuesta

Devuelve: AddDomainConfig200Response


Eliminar configuración de dominio Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
domain String

Respuesta

Devuelve: DeleteDomainConfig200Response


Obtener configuración de dominio Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
domain String

Respuesta

Devuelve: GetDomainConfig200Response


Obtener configuraciones de dominio Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String

Respuesta

Devuelve: GetDomainConfigs200Response

Actualizar parcialmente configuración de dominio Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
domain_to_update String
patch_domain_config_params models::PatchDomainConfigParams

Respuesta

Devuelve: GetDomainConfig200Response


Reemplazar configuración de dominio Internal Link


Parámetros

Name Type Required Description
tenant_id String
domain_to_update String
update_domain_config_params models::UpdateDomainConfigParams

Respuesta

Devuelve: GetDomainConfig200Response


Crear plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_email_template_body models::CreateEmailTemplateBody

Respuesta

Devuelve: CreateEmailTemplate200Response

Ejemplo

Ejemplo de create_email_template
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

Eliminar plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_email_template
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

Eliminar error de renderizado de plantilla de correo electrónico Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String
error_id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_email_template_render_error
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

Obtener plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetEmailTemplate200Response

Ejemplo

Ejemplo de get_email_template
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

Obtener definiciones de plantillas de correo electrónico Internal Link

Parámetros

Name Type Required Description
tenant_id String

Respuesta

Devuelve: GetEmailTemplateDefinitions200Response

Ejemplo

Ejemplo de get_email_template_definitions
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

Obtener errores de renderizado de plantillas de correo electrónico Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String
skip f64 No

Respuesta

Devuelve: GetEmailTemplateRenderErrors200Response

Ejemplo

Ejemplo de get_email_template_render_errors
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

Obtener plantillas de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String Yes
skip f64 No

Respuesta

Devuelve: GetEmailTemplates200Response

Ejemplo

Ejemplo de get_email_templates
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

Renderizar plantilla de correo electrónico Internal Link

Parámetros

Name Type Required Description
tenant_id String
render_email_template_body models::RenderEmailTemplateBody
locale String No

Respuesta

Devuelve: RenderEmailTemplate200Response

Ejemplo

Ejemplo de render_email_template
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

Actualizar plantilla de correo electrónico Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
update_email_template_body models::UpdateEmailTemplateBody

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_email_template
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

Obtener registro de eventos Internal Link

req tenantId urlId userIdWS

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
url_id String
user_id_ws String
start_time i64
end_time i64

Respuesta

Devuelve: GetEventLog200Response

Ejemplo

Ejemplo de get_event_log
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

Obtener registro global de eventos Internal Link

req tenantId urlId userIdWS

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
url_id String
user_id_ws String
start_time i64
end_time i64

Respuesta

Devuelve: GetEventLog200Response

Ejemplo

Ejemplo de get_global_event_log
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

Crear publicación del feed Internal Link

Parámetros

Name Type Required Description
tenant_id String
create_feed_post_params models::CreateFeedPostParams
broadcast_id String No
is_live bool No
do_spam_check bool No
skip_dup_check bool No

Respuesta

Devuelve: CreateFeedPost200Response

Ejemplo

Ejemplo de create_feed_post
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

Crear publicación del feed pública Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_feed_post_params models::CreateFeedPostParams
broadcast_id String No
sso String No

Respuesta

Devuelve: CreateFeedPostPublic200Response

Ejemplo

Ejemplo de create_feed_post_public
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

Eliminar publicación del feed pública Internal Link


Parámetros

Name Type Required Description
tenant_id String
post_id String
broadcast_id String No
sso String No

Respuesta

Devuelve: DeleteFeedPostPublic200Response

Ejemplo

delete_feed_post_public Ejemplo
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

Obtener publicaciones del feed Internal Link

req tenantId afterId

Parámetros

Name Type Required Description
tenant_id String
after_id String No
limit i32 No
tags Vec No

Respuesta

Devuelve: GetFeedPosts200Response

Ejemplo

Ejemplo de get_feed_posts
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

Obtener publicaciones del feed públicas Internal Link

req tenantId afterId

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
after_id String No
limit i32 No
tags Vec No
sso String No
is_crawler bool No
include_user_info bool No

Respuesta

Devuelve: GetFeedPostsPublic200Response

Ejemplo

Ejemplo de get_feed_posts_public
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

Obtener estadísticas de publicaciones del feed Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
post_ids Vec
sso String No

Respuesta

Devuelve: GetFeedPostsStats200Response

Ejemplo

Ejemplo get_feed_posts_stats
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

Obtener reacciones de usuario públicas Internal Link

Parámetros

Name Type Requerido Descripción
tenant_id String
post_ids Vec No
sso String No

Respuesta

Devuelve: GetUserReactsPublic200Response

Ejemplo

Ejemplo de get_user_reacts_public
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

Reaccionar a publicación del feed pública Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
post_id String
react_body_params models::ReactBodyParams
is_undo bool No
broadcast_id String No
sso String No

Respuesta

Devuelve: ReactFeedPostPublic200Response

Ejemplo

Ejemplo de react_feed_post_public
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

Actualizar publicación del feed Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
feed_post models::FeedPost

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_feed_post
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

Actualizar publicación del feed pública Internal Link

Parámetros

Name Type Required Description
tenant_id String Yes
post_id String Yes
update_feed_post_params models::UpdateFeedPostParams Yes
broadcast_id String No
sso String No

Respuesta

Devuelve: CreateFeedPostPublic200Response

Ejemplo

Ejemplo de update_feed_post_public
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

Marcar comentario público Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String
is_flagged bool
sso String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

flag_comment_public Ejemplo
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

Agregar hashtag Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String No
create_hash_tag_body models::CreateHashTagBody No

Respuesta

Devuelve: AddHashTag200Response

Ejemplo

add_hash_tag Ejemplo
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

Agregar hashtags en bloque Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String No
bulk_create_hash_tags_body models::BulkCreateHashTagsBody No

Respuesta

Devuelve: AddHashTagsBulk200Response

Ejemplo

Ejemplo de add_hash_tags_bulk
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

Eliminar hashtag Internal Link

Parámetros

Name Type Obligatorio Descripción
tag String
tenant_id String No
delete_hash_tag_request models::DeleteHashTagRequest No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_hash_tag
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

Obtener hashtags Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String Yes
page f64 No

Respuesta

Devuelve: GetHashTags200Response

Ejemplo

Ejemplo de get_hash_tags
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

Actualizar parcialmente hashtag Internal Link


Parámetros

Name Type Required Description
tag String
tenant_id String No
update_hash_tag_body models::UpdateHashTagBody No

Respuesta

Devuelve: PatchHashTag200Response

Ejemplo

Ejemplo de patch_hash_tag
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

Crear moderador Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_moderator_body models::CreateModeratorBody

Respuesta

Devuelve: CreateModerator200Response

Ejemplo

Ejemplo de create_moderator
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

Eliminar moderador Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
send_email String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_moderator
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

Obtener moderador Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String

Respuesta

Devuelve: GetModerator200Response

Ejemplo

Ejemplo de get_moderator
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

Obtener moderadores Internal Link

Parámetros

Name Type Required Description
tenant_id String
skip f64 No

Respuesta

Devuelve: GetModerators200Response

Ejemplo

Ejemplo de get_moderators
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

Enviar invitación Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
from_name String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de send_invite
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

Actualizar moderador Internal Link

Parameters

Name Type Required Description
tenant_id String
id String
update_moderator_body models::UpdateModeratorBody

Response

Devuelve: FlagCommentPublic200Response

Example

Ejemplo de update_moderator
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

Eliminar contador de notificaciones Internal Link

Parámetros

Name Type Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

delete_notification_count Ejemplo
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

Obtener contador de notificaciones en caché Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetCachedNotificationCount200Response

Ejemplo

Ejemplo de get_cached_notification_count
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

Obtener contador de notificaciones Internal Link

Parámetros

Name Type Required Description
tenant_id String
user_id String No
url_id String No
from_comment_id String No
viewed bool No

Respuesta

Devuelve: GetNotificationCount200Response

Ejemplo

Ejemplo de get_notification_count
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

Obtener notificaciones Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
user_id String No
url_id String No
from_comment_id String No
viewed bool No
skip f64 No

Respuesta

Devuelve: GetNotifications200Response

Ejemplo

Ejemplo de get_notifications
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

Actualizar notificación Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
update_notification_body models::UpdateNotificationBody
user_id String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_notification
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

Agregar página Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
create_api_page_data models::CreateApiPageData

Respuesta

Devuelve: AddPageApiResponse


Eliminar página Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: DeletePageApiResponse


Obtener página por URLID Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
url_id String

Respuesta

Devuelve: GetPageByUrlidApiResponse


Obtener páginas Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String

Respuesta

Devuelve: GetPagesApiResponse


Actualizar parcialmente página Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
update_api_page_data models::UpdateApiPageData

Respuesta

Devuelve: PatchPageApiResponse


Eliminar evento pendiente de webhook Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_pending_webhook_event
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

Obtener contador de eventos pendientes de webhook Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
comment_id String No
external_id String No
event_type String No
domain String No
attempt_count_gt f64 No

Respuesta

Devuelve: GetPendingWebhookEventCount200Response

Ejemplo

Ejemplo de get_pending_webhook_event_count
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

Obtener eventos pendientes de webhook Internal Link

Parámetros

Name Type Obligatorio Descripción
tenant_id String
comment_id String No
external_id String No
event_type String No
domain String No
attempt_count_gt f64 No
skip f64 No

Respuesta

Devuelve: GetPendingWebhookEvents200Response

Ejemplo

Ejemplo de get_pending_webhook_events
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

Crear configuración de pregunta Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
create_question_config_body models::CreateQuestionConfigBody

Respuesta

Devuelve: CreateQuestionConfig200Response

Ejemplo

Ejemplo de create_question_config
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

Eliminar configuración de pregunta Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

delete_question_config Ejemplo
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

Obtener configuración de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetQuestionConfig200Response

Ejemplo

Ejemplo de get_question_config
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

Obtener configuraciones de preguntas Internal Link

Parámetros

Name Type Required Description
tenant_id String
skip f64 No

Respuesta

Devuelve: GetQuestionConfigs200Response

Ejemplo

Ejemplo de get_question_configs
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

Actualizar configuración de pregunta Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
update_question_config_body models::UpdateQuestionConfigBody

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_question_config
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

Crear resultado de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_question_result_body models::CreateQuestionResultBody

Respuesta

Devuelve: CreateQuestionResult200Response

Ejemplo

Ejemplo de create_question_result
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

Eliminar resultado de pregunta Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_question_result
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

Obtener resultado de pregunta Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String

Respuesta

Devuelve: GetQuestionResult200Response

Ejemplo

Ejemplo de get_question_result
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

Obtener resultados de preguntas Internal Link

Parámetros

Name Type Required Description
tenant_id String
url_id String No
user_id String No
start_date String No
question_id String No
question_ids String No
skip f64 No

Respuesta

Devuelve: GetQuestionResults200Response

Ejemplo

Ejemplo de get_question_results
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

Actualizar resultado de pregunta Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String
update_question_result_body models::UpdateQuestionResultBody

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_question_result
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

Agregación de resultados de preguntas Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
question_id String No
question_ids Vec No
url_id String No
time_bucket models::AggregateTimeBucket No
start_date String No
force_recalculate bool No

Respuesta

Devuelve: AggregateQuestionResults200Response

Ejemplo

aggregate_question_results Ejemplo
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

Agregación masiva de resultados de preguntas Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
bulk_aggregate_question_results_request models::BulkAggregateQuestionResultsRequest
force_recalculate bool No

Respuesta

Devuelve: BulkAggregateQuestionResults200Response

Ejemplo

Ejemplo de bulk_aggregate_question_results
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

Combinar comentarios con resultados de preguntas Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
question_id String No
question_ids Vec No
url_id String No
start_date String No
force_recalculate bool No
min_value f64 No
max_value f64 No
limit f64 No

Respuesta

Devuelve: CombineCommentsWithQuestionResults200Response

Ejemplo

Ejemplo de combine_comments_with_question_results
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

Agregar usuario SSO Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
create_apisso_user_data models::CreateApissoUserData

Respuesta

Devuelve: AddSsoUserApiResponse


Eliminar usuario SSO Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
delete_comments bool No
comment_delete_mode String No

Respuesta

Devuelve: DeleteSsoUserApiResponse


Obtener usuario SSO por correo electrónico Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
email String

Respuesta

Devuelve: GetSsoUserByEmailApiResponse


Obtener usuario SSO por ID Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String

Respuesta

Devuelve: GetSsoUserByIdApiResponse


Obtener usuarios SSO Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
skip i32 No

Respuesta

Devuelve: GetSsoUsers200Response


Actualizar parcialmente usuario SSO Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool No

Respuesta

Devuelve: PatchSsoUserApiResponse


Reemplazar usuario SSO Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool No

Respuesta

Devuelve: PutSsoUserApiResponse


Crear suscripción Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_api_user_subscription_data models::CreateApiUserSubscriptionData

Respuesta

Devuelve: CreateSubscriptionApiResponse

Ejemplo

Ejemplo de create_subscription
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

Eliminar suscripción Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
user_id String No

Respuesta

Devuelve: DeleteSubscriptionApiResponse


Obtener suscripciones Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
user_id String No

Respuesta

Devuelve: GetSubscriptionsApiResponse

Ejemplo

Ejemplo de get_subscriptions
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

Actualizar suscripción Internal Link


Parámetros

Name Type Required Description
tenant_id String
id String
update_api_user_subscription_data models::UpdateApiUserSubscriptionData
user_id String No

Respuesta

Devuelve: UpdateSubscriptionApiResponse

Ejemplo

Ejemplo de update_subscription
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

Obtener usos diarios del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
year_number f64 No
month_number f64 No
day_number f64 No
skip f64 No

Respuesta

Devuelve: GetTenantDailyUsages200Response

Ejemplo

Ejemplo de get_tenant_daily_usages
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

Crear paquete del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_tenant_package_body models::CreateTenantPackageBody

Respuesta

Devuelve: CreateTenantPackage200Response

Ejemplo

Ejemplo de create_tenant_package
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

Eliminar paquete del inquilino Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_tenant_package
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

Obtener paquete del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetTenantPackage200Response

Ejemplo

Ejemplo de get_tenant_package
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

Obtener paquetes del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
skip f64 No

Respuesta

Devuelve: GetTenantPackages200Response

Ejemplo

Ejemplo de get_tenant_packages
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

Reemplazar paquete del inquilino Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String
replace_tenant_package_body models::ReplaceTenantPackageBody

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de replace_tenant_package
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

Actualizar paquete del inquilino Internal Link

Parámetros

Name Type Requerido Descripción
tenant_id String
id String
update_tenant_package_body models::UpdateTenantPackageBody

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_tenant_package
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

Crear usuario del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_tenant_user_body models::CreateTenantUserBody

Respuesta

Devuelve: CreateTenantUser200Response

Ejemplo

Ejemplo de create_tenant_user
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

Eliminar usuario del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
delete_comments String No
comment_delete_mode String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_tenant_user
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

Obtener usuario del inquilino Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String

Respuesta

Devuelve: GetTenantUser200Response

Ejemplo

Ejemplo de get_tenant_user
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

Obtener usuarios del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
skip f64 No

Respuesta

Devuelve: GetTenantUsers200Response

Ejemplo

get_tenant_users Ejemplo
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

Reemplazar usuario del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
replace_tenant_user_body models::ReplaceTenantUserBody
update_comments String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de replace_tenant_user
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

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
redirect_url String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de send_login_link
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

Actualizar usuario del inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
update_tenant_user_body models::UpdateTenantUserBody
update_comments String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_tenant_user
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

Crear inquilino Internal Link

Parámetros

Name Type Required Description
tenant_id String
create_tenant_body models::CreateTenantBody

Respuesta

Devuelve: CreateTenant200Response

Ejemplo

Ejemplo de create_tenant
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

Eliminar inquilino Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
sure String No

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de delete_tenant
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

Obtener inquilino Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetTenant200Response

Ejemplo

Ejemplo de get_tenant
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

Obtener inquilinos Internal Link


Parámetros

Nombre Type Obligatorio Descripción
tenant_id String
meta String No
skip f64 No

Respuesta

Devuelve: GetTenants200Response

Ejemplo

Ejemplo de get_tenants
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

Actualizar inquilino Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
update_tenant_body models::UpdateTenantBody

Respuesta

Devuelve: FlagCommentPublic200Response

Ejemplo

Ejemplo de update_tenant
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

Cambiar estado del ticket Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
user_id String
id String
change_ticket_state_body models::ChangeTicketStateBody

Respuesta

Devuelve: ChangeTicketState200Response

Ejemplo

Ejemplo de change_ticket_state
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

Crear ticket Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
user_id String
create_ticket_body models::CreateTicketBody

Respuesta

Devuelve: CreateTicket200Response

Ejemplo

Ejemplo de create_ticket
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

Obtener ticket Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
user_id String No

Respuesta

Devuelve: GetTicket200Response

Ejemplo

Ejemplo de get_ticket
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

Obtener tickets Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
user_id String No
state f64 No
skip f64 No
limit f64 No

Respuesta

Devuelve: GetTickets200Response

Ejemplo

Ejemplo de get_tickets
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

Subir imagen Internal Link


Subir y redimensionar una imagen

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
file std::path::PathBuf
size_preset models::SizePreset No
url_id String No

Respuesta

Devuelve: UploadImageResponse


Obtener progreso de insignia de usuario por ID Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String

Respuesta

Devuelve: GetUserBadgeProgressById200Response

Ejemplo

Ejemplo de get_user_badge_progress_by_id
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

Obtener progreso de insignia de usuario por ID de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
user_id String

Respuesta

Devuelve: GetUserBadgeProgressById200Response

Ejemplo

Ejemplo de get_user_badge_progress_by_user_id
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

Obtener lista de progreso de insignias de usuario Internal Link

Parámetros

Name Type Required Description
tenant_id String
user_id String No
limit f64 No
skip f64 No

Respuesta

Devuelve: GetUserBadgeProgressList200Response

Ejemplo

Ejemplo de get_user_badge_progress_list
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

Crear insignia de usuario Internal Link


Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
create_user_badge_params models::CreateUserBadgeParams

Respuesta

Devuelve: CreateUserBadge200Response

Ejemplo

Ejemplo de create_user_badge
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

Eliminar insignia de usuario Internal Link

Parámetros

Name Type Required Description
tenant_id String
id String

Respuesta

Devuelve: UpdateUserBadge200Response

Ejemplo

Ejemplo de delete_user_badge
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

Obtener insignia de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetUserBadge200Response

Ejemplo

Ejemplo de get_user_badge
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

Obtener insignias de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
user_id String No
badge_id String No
displayed_on_comments bool No
limit f64 No
skip f64 No

Respuesta

Devuelve: GetUserBadges200Response

Ejemplo

Ejemplo de get_user_badges
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

Actualizar insignia de usuario Internal Link


Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
id String
update_user_badge_params models::UpdateUserBadgeParams

Respuesta

Devuelve: UpdateUserBadge200Response

Ejemplo

Ejemplo de update_user_badge
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

Obtener contador de notificaciones del usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
sso String No

Respuesta

Devuelve: GetUserNotificationCount200Response

Ejemplo

Ejemplo de get_user_notification_count
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

Obtener notificaciones del usuario Internal Link

Parámetros

Nombre Type Requerido Descripción
tenant_id String
page_size i32 No
after_id String No
include_context bool No
after_created_at i64 No
unread_only bool No
dm_only bool No
no_dm bool No
include_translations bool No
sso String No

Respuesta

Devuelve: GetUserNotifications200Response

Ejemplo

Ejemplo de get_user_notifications
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

Restablecer contador de notificaciones del usuario Internal Link

Parámetros

Name Type Required Description
tenant_id String
sso String No

Respuesta

Devuelve: ResetUserNotifications200Response

Ejemplo

Ejemplo de reset_user_notification_count
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

Restablecer notificaciones del usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
after_id String No
after_created_at i64 No
unread_only bool No
dm_only bool No
no_dm bool No
sso String No

Respuesta

Devuelve: ResetUserNotifications200Response

Ejemplo

Ejemplo de reset_user_notifications
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

Actualizar estado de suscripción a comentarios del usuario Internal Link

Habilitar o deshabilitar notificaciones para un comentario específico.

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
notification_id String
opted_in_or_out String
comment_id String
sso String No

Respuesta

Devuelve: UpdateUserNotificationStatus200Response

Ejemplo

Ejemplo de update_user_notification_comment_subscription_status
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

Actualizar estado de suscripción a páginas del usuario Internal Link

Habilitar o deshabilitar las notificaciones para una página. Cuando los usuarios están suscritos a una página, se crean notificaciones para nuevos comentarios raíz, y también

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
url_id String
url String
page_title String
subscribed_or_unsubscribed String
sso String No

Respuesta

Devuelve: UpdateUserNotificationStatus200Response

Ejemplo

Ejemplo de update_user_notification_page_subscription_status
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

Actualizar estado de notificación del usuario Internal Link

Parámetros

Name Type Required Description
tenant_id String Yes
notification_id String Yes
new_status String Yes
sso String No

Respuesta

Devuelve: UpdateUserNotificationStatus200Response

Ejemplo

Ejemplo de update_user_notification_status
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

Obtener estados de presencia de usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
url_id_ws String
user_ids String

Respuesta

Devuelve: GetUserPresenceStatuses200Response

Ejemplo

Ejemplo de get_user_presence_statuses
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

Buscar usuarios Internal Link

Parámetros

Nombre Tipo Obligatorio Descripción
tenant_id String
url_id String
username_starts_with String No
mention_group_ids Vec No
sso String No
search_section String No

Respuesta

Devuelve: SearchUsers200Response

Ejemplo

Ejemplo de search_users
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

Obtener usuario Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String

Respuesta

Devuelve: GetUser200Response

Ejemplo

Ejemplo de get_user
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

Crear voto Internal Link

Parámetros

Name Type Required Description
tenant_id String
comment_id String
direction String
user_id String No
anon_user_id String No

Respuesta

Devuelve: VoteComment200Response

Ejemplo

Ejemplo de create_vote
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

Eliminar voto Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
id String
edit_key String No

Respuesta

Devuelve: DeleteCommentVote200Response

Ejemplo

Ejemplo de delete_vote
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

Obtener votos Internal Link

Parámetros

Nombre Tipo Requerido Descripción
tenant_id String
url_id String

Respuesta

Devuelve: GetVotes200Response

Ejemplo

get_votes Ejemplo
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

Obtener votos para el usuario Internal Link

Parámetros

Name Type Required Description
tenant_id String
url_id String
user_id String No
anon_user_id String No

Respuesta

Devuelve: GetVotesForUser200Response

Ejemplo

Ejemplo de get_votes_for_user
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

¿Necesita ayuda?

Si encuentra algún problema o tiene preguntas sobre el Rust SDK, por favor:

Contribuciones

¡Las contribuciones son bienvenidas! Por favor visite el repositorio de GitHub para las directrices de contribución.