twitter-v2 0.1.8

Twitter API v2
Documentation
use crate::id::NumericId;
use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
use url::Url;

#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq, Copy)]
#[serde(rename_all = "snake_case")]
pub enum ComplianceJobStatus {
    InProgress,
    Failed,
    Complete,
}

#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq, Copy)]
#[serde(rename_all = "snake_case")]
pub enum ComplianceJobKind {
    Tweets,
    Users,
}

#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)]
pub struct ComplianceJob {
    pub id: NumericId,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "type")]
    pub kind: ComplianceJobKind,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub status: Option<ComplianceJobStatus>,
    #[serde(with = "time::serde::rfc3339")]
    pub created_at: OffsetDateTime,
    pub upload_url: Url,
    #[serde(with = "time::serde::rfc3339")]
    pub upload_expires_at: OffsetDateTime,
    pub download_url: Url,
    #[serde(with = "time::serde::rfc3339")]
    pub download_expires_at: OffsetDateTime,
}