use crate::models::payloads::{
APIAutoModerationAction, APIAutoModerationRule, APIAutoModerationRuleTriggerMetadata,
AutoModerationRuleEventType, AutoModerationRuleTriggerType,
};
use serde::{Deserialize, Serialize};
pub type RESTGetAPIAutoModerationRulesResult = Vec<APIAutoModerationRule>;
pub type RESTGetAPIAutoModerationRuleResult = APIAutoModerationRule;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostAPIAutoModerationRuleJSONBody {
pub name: String,
pub event_type: AutoModerationRuleEventType,
pub trigger_type: AutoModerationRuleTriggerType,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_metadata: Option<APIAutoModerationRuleTriggerMetadata>,
pub actions: Vec<APIAutoModerationAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exempt_roles: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exempt_channels: Option<Vec<String>>,
}
pub type RESTPostAPIAutoModerationRuleResult = APIAutoModerationRule;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub struct RESTPatchAPIAutoModerationRuleJSONBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub event_type: Option<AutoModerationRuleEventType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_metadata: Option<APIAutoModerationRuleTriggerMetadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub actions: Option<Vec<APIAutoModerationAction>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exempt_roles: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exempt_channels: Option<Vec<String>>,
}
pub type RESTPatchAPIAutoModerationRuleResult = APIAutoModerationRule;
pub type RESTDeleteAPIAutoModerationRuleResult = ();