FastComments.com

SDK de FastComments para Rust


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"] }
  1. 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

NombreTipoRequeridoDescripción
tenant_idString
aggregation_requestmodels::AggregationRequest
parent_tenant_idStringNo
include_statsboolNo

Respuesta

Devuelve: AggregationResponse


Obtener registros de auditoría Internal Link

Parámetros

NombreTipoObligatorioDescripción
tenant_idString
limitf64No
skipf64No
ordermodels::SortDirNo
afterf64No
beforef64No

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idString
public_block_from_comment_paramsmodels::PublicBlockFromCommentParams
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idString
public_block_from_comment_paramsmodels::PublicBlockFromCommentParams
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idsString
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
idString
block_from_comment_paramsmodels::BlockFromCommentParams
user_idStringNo
anon_user_idStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
url_idString
broadcast_idString
comment_datamodels::CommentData
session_idStringNo
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
idString
context_user_idStringNo
is_liveboolNo

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

NameTypeRequiredDescription
tenant_idString
comment_idString
broadcast_idString
edit_keyStringNo
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idString
vote_idString
url_idString
broadcast_idString
edit_keyStringNo
ssoStringNo

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

NameTypeRequeridoDescripción
tenant_idString
idString
user_idStringNo
anon_user_idStringNo

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

NameTypeRequiredDescription
tenant_idString
idString

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

NombreTipoObligatorioDescripción
tenant_idString
comment_idString
edit_keyStringNo
ssoStringNo

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

NameTypeRequiredDescription
tenant_idString
comment_idString
diri32
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
pagei32No
limiti32No
skipi32No
as_treeboolNo
skip_childreni32No
limit_childreni32No
max_tree_depthi32No
url_idStringNo
user_idStringNo
anon_user_idStringNo
context_user_idStringNo
hash_tagStringNo
parent_idStringNo
directionmodels::SortDirectionsNo

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

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

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idString
broadcast_idString
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
comment_idString
broadcast_idString
ssoStringNo

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

NameTypeRequeridoDescripción
tenant_idString
create_comment_paramsmodels::CreateCommentParams
is_liveboolNo
do_spam_checkboolNo
send_emailsboolNo
populate_notificationsboolNo

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

NombreTipoObligatorioDescripción
tenant_idString
create_comment_paramsVecmodels::CreateCommentParams
is_liveboolNo
do_spam_checkboolNo
send_emailsboolNo
populate_notificationsboolNo

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

NameTypeRequiredDescription
tenant_idString
comment_idString
broadcast_idString
comment_text_update_requestmodels::CommentTextUpdateRequest
edit_keyStringNo
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
un_block_from_comment_paramsmodels::UnBlockFromCommentParams
user_idStringNo
anon_user_idStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
user_idStringNo
anon_user_idStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idString
broadcast_idString
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
comment_idString
broadcast_idString
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
updatable_comment_paramsmodels::UpdatableCommentParams
context_user_idStringNo
do_spam_checkboolNo
is_liveboolNo

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

NameTypeRequiredDescription
tenant_idStringYes
comment_idStringYes
url_idStringYes
broadcast_idStringYes
vote_body_paramsmodels::VoteBodyParamsYes
session_idStringNo
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
add_domain_config_paramsmodels::AddDomainConfigParams

Respuesta

Devuelve: AddDomainConfig200Response


Eliminar configuración de dominio Internal Link

Parámetros

NombreTipoObligatorioDescripción
tenant_idString
domainString

Respuesta

Devuelve: DeleteDomainConfig200Response


Obtener configuración de dominio Internal Link


Parámetros

NombreTipoRequeridoDescripción
tenant_idString
domainString

Respuesta

Devuelve: GetDomainConfig200Response


Obtener configuraciones de dominio Internal Link

Parámetros

NombreTipoRequeridoDescripción
tenant_idString

Respuesta

Devuelve: GetDomainConfigs200Response

Actualizar parcialmente configuración de dominio Internal Link


Parámetros

NombreTipoRequeridoDescripción
tenant_idString
domain_to_updateString
patch_domain_config_paramsmodels::PatchDomainConfigParams

Respuesta

Devuelve: GetDomainConfig200Response


Reemplazar configuración de dominio Internal Link


Parámetros

NameTypeRequiredDescription
tenant_idString
domain_to_updateString
update_domain_config_paramsmodels::UpdateDomainConfigParams

Respuesta

Devuelve: GetDomainConfig200Response


Crear plantilla de correo electrónico Internal Link

Parámetros

NombreTipoRequeridoDescripción
tenant_idString
create_email_template_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
idString
error_idString

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString

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

NameTypeRequiredDescription
tenant_idString
idString
skipf64No

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

NombreTipoRequeridoDescripción
tenant_idStringYes
skipf64No

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

NameTypeRequiredDescription
tenant_idString
render_email_template_bodymodels::RenderEmailTemplateBody
localeStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
update_email_template_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
url_idString
user_id_wsString
start_timei64
end_timei64

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

NombreTipoRequeridoDescripción
tenant_idString
url_idString
user_id_wsString
start_timei64
end_timei64

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

NameTypeRequiredDescription
tenant_idString
create_feed_post_paramsmodels::CreateFeedPostParams
broadcast_idStringNo
is_liveboolNo
do_spam_checkboolNo
skip_dup_checkboolNo

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

NombreTipoRequeridoDescripción
tenant_idString
create_feed_post_paramsmodels::CreateFeedPostParams
broadcast_idStringNo
ssoStringNo

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

NameTypeRequiredDescription
tenant_idString
post_idString
broadcast_idStringNo
ssoStringNo

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

NameTypeRequiredDescription
tenant_idString
after_idStringNo
limiti32No
tagsVecNo

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

NombreTipoRequeridoDescripción
tenant_idString
after_idStringNo
limiti32No
tagsVecNo
ssoStringNo
is_crawlerboolNo
include_user_infoboolNo

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

NombreTipoRequeridoDescripción
tenant_idString
post_idsVec
ssoStringNo

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

NameTypeRequeridoDescripción
tenant_idString
post_idsVecNo
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
post_idString
react_body_paramsmodels::ReactBodyParams
is_undoboolNo
broadcast_idStringNo
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
feed_postmodels::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

NameTypeRequiredDescription
tenant_idStringYes
post_idStringYes
update_feed_post_paramsmodels::UpdateFeedPostParamsYes
broadcast_idStringNo
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idString
is_flaggedbool
ssoStringNo

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

NombreTipoObligatorioDescripción
tenant_idStringNo
create_hash_tag_bodymodels::CreateHashTagBodyNo

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

NombreTipoRequeridoDescripción
tenant_idStringNo
bulk_create_hash_tags_bodymodels::BulkCreateHashTagsBodyNo

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

NameTypeObligatorioDescripción
tagString
tenant_idStringNo
delete_hash_tag_requestmodels::DeleteHashTagRequestNo

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

NombreTipoRequeridoDescripción
tenant_idStringYes
pagef64No

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

NameTypeRequiredDescription
tagString
tenant_idStringNo
update_hash_tag_bodymodels::UpdateHashTagBodyNo

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

NombreTipoRequeridoDescripción
tenant_idString
create_moderator_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString
send_emailStringNo

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

NameTypeRequiredDescription
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
skipf64No

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

NombreTipoRequeridoDescripción
tenant_idString
idString
from_nameString

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

NameTypeRequiredDescription
tenant_idString
idString
update_moderator_bodymodels::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

NameTypeRequeridoDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
user_idStringNo
url_idStringNo
from_comment_idStringNo
viewedboolNo

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

NombreTipoObligatorioDescripción
tenant_idString
user_idStringNo
url_idStringNo
from_comment_idStringNo
viewedboolNo
skipf64No

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

NombreTipoObligatorioDescripción
tenant_idString
idString
update_notification_bodymodels::UpdateNotificationBody
user_idStringNo

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

NombreTipoObligatorioDescripción
tenant_idString
create_api_page_datamodels::CreateApiPageData

Respuesta

Devuelve: AddPageApiResponse


Eliminar página Internal Link

Parámetros

NombreTipoRequeridoDescripción
tenant_idString
idString

Respuesta

Devuelve: DeletePageApiResponse


Obtener página por URLID Internal Link


Parámetros

NombreTipoObligatorioDescripción
tenant_idString
url_idString

Respuesta

Devuelve: GetPageByUrlidApiResponse


Obtener páginas Internal Link


Parámetros

NombreTipoRequeridoDescripción
tenant_idString

Respuesta

Devuelve: GetPagesApiResponse


Actualizar parcialmente página Internal Link


Parámetros

NombreTipoRequeridoDescripción
tenant_idString
idString
update_api_page_datamodels::UpdateApiPageData

Respuesta

Devuelve: PatchPageApiResponse


Eliminar evento pendiente de webhook Internal Link

Parámetros

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
comment_idStringNo
external_idStringNo
event_typeStringNo
domainStringNo
attempt_count_gtf64No

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

NameTypeObligatorioDescripción
tenant_idString
comment_idStringNo
external_idStringNo
event_typeStringNo
domainStringNo
attempt_count_gtf64No
skipf64No

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

NombreTipoObligatorioDescripción
tenant_idString
create_question_config_bodymodels::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

NombreTipoObligatorioDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
skipf64No

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

NombreTipoObligatorioDescripción
tenant_idString
idString
update_question_config_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
create_question_result_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
url_idStringNo
user_idStringNo
start_dateStringNo
question_idStringNo
question_idsStringNo
skipf64No

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

NameTypeRequiredDescription
tenant_idString
idString
update_question_result_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
question_idStringNo
question_idsVecNo
url_idStringNo
time_bucketmodels::AggregateTimeBucketNo
start_dateStringNo
force_recalculateboolNo

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

NombreTipoRequeridoDescripción
tenant_idString
bulk_aggregate_question_results_requestmodels::BulkAggregateQuestionResultsRequest
force_recalculateboolNo

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

NombreTipoRequeridoDescripción
tenant_idString
question_idStringNo
question_idsVecNo
url_idStringNo
start_dateStringNo
force_recalculateboolNo
min_valuef64No
max_valuef64No
limitf64No

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

NombreTipoObligatorioDescripción
tenant_idString
create_apisso_user_datamodels::CreateApissoUserData

Respuesta

Devuelve: AddSsoUserApiResponse


Eliminar usuario SSO Internal Link


Parámetros

NombreTipoRequeridoDescripción
tenant_idString
idString
delete_commentsboolNo
comment_delete_modeStringNo

Respuesta

Devuelve: DeleteSsoUserApiResponse


Obtener usuario SSO por correo electrónico Internal Link

Parámetros

NombreTipoObligatorioDescripción
tenant_idString
emailString

Respuesta

Devuelve: GetSsoUserByEmailApiResponse


Obtener usuario SSO por ID Internal Link


Parámetros

NombreTipoObligatorioDescripción
tenant_idString
idString

Respuesta

Devuelve: GetSsoUserByIdApiResponse


Obtener usuarios SSO Internal Link


Parámetros

NombreTipoRequeridoDescripción
tenant_idString
skipi32No

Respuesta

Devuelve: GetSsoUsers200Response


Actualizar parcialmente usuario SSO Internal Link


Parámetros

NombreTipoObligatorioDescripción
tenant_idString
idString
update_apisso_user_datamodels::UpdateApissoUserData
update_commentsboolNo

Respuesta

Devuelve: PatchSsoUserApiResponse


Reemplazar usuario SSO Internal Link

Parámetros

NombreTipoRequeridoDescripción
tenant_idString
idString
update_apisso_user_datamodels::UpdateApissoUserData
update_commentsboolNo

Respuesta

Devuelve: PutSsoUserApiResponse


Crear suscripción Internal Link

Parámetros

NombreTipoRequeridoDescripción
tenant_idString
create_api_user_subscription_datamodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString
user_idStringNo

Respuesta

Devuelve: DeleteSubscriptionApiResponse


Obtener suscripciones Internal Link

Parámetros

NombreTipoObligatorioDescripción
tenant_idString
user_idStringNo

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

NameTypeRequiredDescription
tenant_idString
idString
update_api_user_subscription_datamodels::UpdateApiUserSubscriptionData
user_idStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
year_numberf64No
month_numberf64No
day_numberf64No
skipf64No

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

NombreTipoRequeridoDescripción
tenant_idString
create_tenant_package_bodymodels::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

NombreTipoObligatorioDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
skipf64No

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

NameTypeRequiredDescription
tenant_idString
idString
replace_tenant_package_bodymodels::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

NameTypeRequeridoDescripción
tenant_idString
idString
update_tenant_package_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
create_tenant_user_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString
delete_commentsStringNo
comment_delete_modeStringNo

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

NameTypeRequiredDescription
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
skipf64No

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

NombreTipoRequeridoDescripción
tenant_idString
idString
replace_tenant_user_bodymodels::ReplaceTenantUserBody
update_commentsStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
redirect_urlStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
update_tenant_user_bodymodels::UpdateTenantUserBody
update_commentsStringNo

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

NameTypeRequiredDescription
tenant_idString
create_tenant_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString
sureStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NombreTypeObligatorioDescripción
tenant_idString
metaStringNo
skipf64No

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

NombreTipoObligatorioDescripción
tenant_idString
idString
update_tenant_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
user_idString
idString
change_ticket_state_bodymodels::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

NombreTipoObligatorioDescripción
tenant_idString
user_idString
create_ticket_bodymodels::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

NombreTipoRequeridoDescripción
tenant_idString
idString
user_idStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
user_idStringNo
statef64No
skipf64No
limitf64No

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

NombreTipoObligatorioDescripción
tenant_idString
filestd::path::PathBuf
size_presetmodels::SizePresetNo
url_idStringNo

Respuesta

Devuelve: UploadImageResponse


Obtener progreso de insignia de usuario por ID Internal Link

Parámetros

NombreTipoObligatorioDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
user_idString

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

NameTypeRequiredDescription
tenant_idString
user_idStringNo
limitf64No
skipf64No

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

NombreTipoRequeridoDescripción
tenant_idString
create_user_badge_paramsmodels::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

NameTypeRequiredDescription
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NombreTipoRequeridoDescripción
tenant_idString
user_idStringNo
badge_idStringNo
displayed_on_commentsboolNo
limitf64No
skipf64No

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

NombreTipoObligatorioDescripción
tenant_idString
idString
update_user_badge_paramsmodels::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

NombreTipoRequeridoDescripción
tenant_idString
ssoStringNo

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

NombreTypeRequeridoDescripción
tenant_idString
page_sizei32No
after_idStringNo
include_contextboolNo
after_created_ati64No
unread_onlyboolNo
dm_onlyboolNo
no_dmboolNo
include_translationsboolNo
ssoStringNo

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

NameTypeRequiredDescription
tenant_idString
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
after_idStringNo
after_created_ati64No
unread_onlyboolNo
dm_onlyboolNo
no_dmboolNo
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
notification_idString
opted_in_or_outString
comment_idString
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
url_idString
urlString
page_titleString
subscribed_or_unsubscribedString
ssoStringNo

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

NameTypeRequiredDescription
tenant_idStringYes
notification_idStringYes
new_statusStringYes
ssoStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
url_id_wsString
user_idsString

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

NombreTipoObligatorioDescripción
tenant_idString
url_idString
username_starts_withStringNo
mention_group_idsVecNo
ssoStringNo
search_sectionStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString

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

NameTypeRequiredDescription
tenant_idString
comment_idString
directionString
user_idStringNo
anon_user_idStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
idString
edit_keyStringNo

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

NombreTipoRequeridoDescripción
tenant_idString
url_idString

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

NameTypeRequiredDescription
tenant_idString
url_idString
user_idStringNo
anon_user_idStringNo

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.