proto-blue-api 0.2.1

AT Protocol high-level API: agent, rich text, moderation, generated types
Documentation
// Generated by atproto-codegen. Do not edit.
//! Lexicon: tools.ozone.safelink.defs

use serde::{Deserialize, Serialize};

pub type ActionType = String;
pub const ActionType_BLOCK: &str = "block";
pub const ActionType_WARN: &str = "warn";
pub const ActionType_WHITELIST: &str = "whitelist";

/// An event for URL safety decisions
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Event {
    pub action: ActionType,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub comment: Option<String>,
    pub created_at: String,
    pub created_by: String,
    pub event_type: EventType,
    pub id: i64,
    pub pattern: PatternType,
    pub reason: ReasonType,
    pub url: String,
}

pub type EventType = String;
pub const EventType_ADD_RULE: &str = "addRule";
pub const EventType_UPDATE_RULE: &str = "updateRule";
pub const EventType_REMOVE_RULE: &str = "removeRule";

pub type PatternType = String;
pub const PatternType_DOMAIN: &str = "domain";
pub const PatternType_URL: &str = "url";

pub type ReasonType = String;
pub const ReasonType_CSAM: &str = "csam";
pub const ReasonType_SPAM: &str = "spam";
pub const ReasonType_PHISHING: &str = "phishing";
pub const ReasonType_NONE: &str = "none";

/// Input for creating a URL safety rule
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UrlRule {
    pub action: ActionType,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub comment: Option<String>,
    pub created_at: String,
    pub created_by: String,
    pub pattern: PatternType,
    pub reason: ReasonType,
    pub updated_at: String,
    pub url: String,
}