twitter_v2/data/
compliance_job.rs1use 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}