pub const NSID: &str = "tools.ozone.moderation.scheduleAction";
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct InputData {
pub action: crate::types::Union<InputActionRefs>,
pub created_by: crate::types::string::Did,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub mod_tool: core::option::Option<crate::tools::ozone::moderation::defs::ModTool>,
pub scheduling: SchedulingConfig,
pub subjects: Vec<crate::types::string::Did>,
}
pub type Input = crate::types::Object<InputData>;
pub type Output = ScheduledActionResults;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "error", content = "message")]
pub enum Error {}
impl std::fmt::Display for Error {
fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result {
Ok(())
}
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct FailedSchedulingData {
pub error: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub error_code: core::option::Option<String>,
pub subject: crate::types::string::Did,
}
pub type FailedScheduling = crate::types::Object<FailedSchedulingData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ScheduledActionResultsData {
pub failed: Vec<FailedScheduling>,
pub succeeded: Vec<crate::types::string::Did>,
}
pub type ScheduledActionResults = crate::types::Object<ScheduledActionResultsData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct SchedulingConfigData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub execute_after: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub execute_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub execute_until: core::option::Option<crate::types::string::Datetime>,
}
pub type SchedulingConfig = crate::types::Object<SchedulingConfigData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct TakedownData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub acknowledge_account_subjects: core::option::Option<bool>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub duration_in_hours: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub email_content: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub email_subject: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub policies: core::option::Option<Vec<String>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub severity_level: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub strike_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub strike_expires_at: core::option::Option<crate::types::string::Datetime>,
}
pub type Takedown = crate::types::Object<TakedownData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum InputActionRefs {
#[serde(rename = "tools.ozone.moderation.scheduleAction#takedown")]
Takedown(Box<Takedown>),
}