use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Webhook {
#[serde(rename = "events")]
pub events: Vec<Events>,
#[serde(rename = "expirationDate", skip_serializing_if = "Option::is_none")]
pub expiration_date: Option<i64>,
#[serde(rename = "fieldIdsFilter", skip_serializing_if = "Option::is_none")]
pub field_ids_filter: Option<Vec<String>>,
#[serde(rename = "id")]
pub id: i64,
#[serde(rename = "issuePropertyKeysFilter", skip_serializing_if = "Option::is_none")]
pub issue_property_keys_filter: Option<Vec<String>>,
#[serde(rename = "jqlFilter")]
pub jql_filter: String,
#[serde(rename = "url")]
pub url: String,
}
impl Webhook {
pub fn new(events: Vec<Events>, id: i64, jql_filter: String, url: String) -> Webhook {
Webhook {
events,
expiration_date: None,
field_ids_filter: None,
id,
issue_property_keys_filter: None,
jql_filter,
url,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Events {
#[serde(rename = "jira:issue_created")]
JiraColonIssueCreated,
#[serde(rename = "jira:issue_updated")]
JiraColonIssueUpdated,
#[serde(rename = "jira:issue_deleted")]
JiraColonIssueDeleted,
#[serde(rename = "comment_created")]
CommentCreated,
#[serde(rename = "comment_updated")]
CommentUpdated,
#[serde(rename = "comment_deleted")]
CommentDeleted,
#[serde(rename = "issue_property_set")]
IssuePropertySet,
#[serde(rename = "issue_property_deleted")]
IssuePropertyDeleted,
#[serde(rename = "sprint_created")]
SprintCreated,
#[serde(rename = "sprint_updated")]
SprintUpdated,
#[serde(rename = "sprint_closed")]
SprintClosed,
#[serde(rename = "sprint_deleted")]
SprintDeleted,
#[serde(rename = "sprint_started")]
SprintStarted,
#[serde(rename = "jira:version_released")]
JiraColonVersionReleased,
#[serde(rename = "jira:version_unreleased")]
JiraColonVersionUnreleased,
#[serde(rename = "jira:version_created")]
JiraColonVersionCreated,
#[serde(rename = "jira:version_moved")]
JiraColonVersionMoved,
#[serde(rename = "jira:version_updated")]
JiraColonVersionUpdated,
#[serde(rename = "jira:version_merged")]
JiraColonVersionMerged,
#[serde(rename = "jira:version_deleted")]
JiraColonVersionDeleted,
}
impl Default for Events {
fn default() -> Events {
Self::JiraColonIssueCreated
}
}