1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use super::*;

/// Various information about integrations.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Integration {
    pub id: IntegrationId,
    pub account: IntegrationAccount,
    pub enabled: bool,
    #[serde(rename = "expire_behaviour")] pub expire_behaviour: u64,
    pub expire_grace_period: u64,
    pub kind: String,
    pub name: String,
    pub role_id: RoleId,
    pub synced_at: u64,
    pub syncing: bool,
    pub user: User,
    #[serde(skip)]
    pub(crate) _nonexhaustive: (),
}

impl From<Integration> for IntegrationId {
    /// Gets the Id of integration.
    fn from(integration: Integration) -> IntegrationId { integration.id }
}

/// Integration account object.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct IntegrationAccount {
    pub id: String,
    pub name: String,
    #[serde(skip)]
    pub(crate) _nonexhaustive: (),
}