twitter_v2/data/
compliance_job.rs

1use crate::id::NumericId;
2use serde::{Deserialize, Serialize};
3use time::OffsetDateTime;
4use url::Url;
5
6#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq, Copy)]
7#[serde(rename_all = "snake_case")]
8pub enum ComplianceJobStatus {
9    InProgress,
10    Failed,
11    Complete,
12}
13
14#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq, Copy)]
15#[serde(rename_all = "snake_case")]
16pub enum ComplianceJobKind {
17    Tweets,
18    Users,
19}
20
21#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)]
22pub struct ComplianceJob {
23    pub id: NumericId,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub name: Option<String>,
26    #[serde(rename = "type")]
27    pub kind: ComplianceJobKind,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub status: Option<ComplianceJobStatus>,
30    #[serde(with = "time::serde::rfc3339")]
31    pub created_at: OffsetDateTime,
32    pub upload_url: Url,
33    #[serde(with = "time::serde::rfc3339")]
34    pub upload_expires_at: OffsetDateTime,
35    pub download_url: Url,
36    #[serde(with = "time::serde::rfc3339")]
37    pub download_expires_at: OffsetDateTime,
38}