use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WebhookDetails {
#[serde(rename = "events")]
pub events: Vec<Events>,
#[serde(rename = "fieldIdsFilter", skip_serializing_if = "Option::is_none")]
pub field_ids_filter: Option<Vec<String>>,
#[serde(rename = "issuePropertyKeysFilter", skip_serializing_if = "Option::is_none")]
pub issue_property_keys_filter: Option<Vec<String>>,
#[serde(rename = "jqlFilter")]
pub jql_filter: String,
}
impl WebhookDetails {
pub fn new(events: Vec<Events>, jql_filter: String) -> WebhookDetails {
WebhookDetails {
events,
field_ids_filter: None,
issue_property_keys_filter: None,
jql_filter,
}
}
}
#[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
}
}