proto-blue-api 0.3.3

AT Protocol high-level API: agent, rich text, moderation, generated types
Documentation
// Generated by atproto-codegen. Do not edit.
//! Lexicon: tools.ozone.safelink.defs
#![allow(clippy::pedantic, clippy::nursery, clippy::all)]

use serde::{Deserialize, Serialize};

pub type ActionType = String;
pub const ACTION_TYPE_BLOCK: &str = "block";
pub const ACTION_TYPE_WARN: &str = "warn";
pub const ACTION_TYPE_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: proto_blue_syntax::Datetime,
    pub created_by: proto_blue_syntax::Did,
    pub event_type: EventType,
    pub id: i64,
    pub pattern: PatternType,
    pub reason: ReasonType,
    pub url: String,
}

pub type EventType = String;
pub const EVENT_TYPE_ADD_RULE: &str = "addRule";
pub const EVENT_TYPE_UPDATE_RULE: &str = "updateRule";
pub const EVENT_TYPE_REMOVE_RULE: &str = "removeRule";

pub type PatternType = String;
pub const PATTERN_TYPE_DOMAIN: &str = "domain";
pub const PATTERN_TYPE_URL: &str = "url";

pub type ReasonType = String;
pub const REASON_TYPE_CSAM: &str = "csam";
pub const REASON_TYPE_SPAM: &str = "spam";
pub const REASON_TYPE_PHISHING: &str = "phishing";
pub const REASON_TYPE_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: proto_blue_syntax::Datetime,
    pub created_by: proto_blue_syntax::Did,
    pub pattern: PatternType,
    pub reason: ReasonType,
    pub updated_at: proto_blue_syntax::Datetime,
    pub url: String,
}