influxdb2/models/
retention_rule.rs

1//! Retention Rules
2
3use serde::{Deserialize, Serialize};
4
5/// RetentionRule
6#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct RetentionRule {
9    /// Expiry
10    #[serde(rename = "type")]
11    pub r#type: Type,
12    /// Duration in seconds for how long data will be kept in the database. 0
13    /// means infinite.
14    pub every_seconds: i32,
15    /// Shard duration measured in seconds.
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub shard_group_duration_seconds: Option<i64>,
18}
19
20impl RetentionRule {
21    /// Returns instance of RetentionRule
22    pub fn new(r#type: Type, every_seconds: i32) -> Self {
23        Self {
24            r#type,
25            every_seconds,
26            shard_group_duration_seconds: None,
27        }
28    }
29}
30
31/// Set Retention Rule expired or not
32#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
33#[serde(rename_all = "camelCase")]
34pub enum Type {
35    /// RetentionRule Expired
36    Expire,
37}