/*
 * Orvanta API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.6
 * Contact: contact@orvanta.cloud
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CaptureTriggerKind {
    #[serde(rename = "webhook")]
    Webhook,
    #[serde(rename = "http")]
    Http,
    #[serde(rename = "websocket")]
    Websocket,
    #[serde(rename = "kafka")]
    Kafka,
    #[serde(rename = "default_email")]
    DefaultEmail,
    #[serde(rename = "nats")]
    Nats,
    #[serde(rename = "postgres")]
    Postgres,
    #[serde(rename = "sqs")]
    Sqs,
    #[serde(rename = "mqtt")]
    Mqtt,
    #[serde(rename = "gcp")]
    Gcp,
    #[serde(rename = "azure")]
    Azure,
    #[serde(rename = "email")]
    Email,

}

impl std::fmt::Display for CaptureTriggerKind {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::Webhook => write!(f, "webhook"),
            Self::Http => write!(f, "http"),
            Self::Websocket => write!(f, "websocket"),
            Self::Kafka => write!(f, "kafka"),
            Self::DefaultEmail => write!(f, "default_email"),
            Self::Nats => write!(f, "nats"),
            Self::Postgres => write!(f, "postgres"),
            Self::Sqs => write!(f, "sqs"),
            Self::Mqtt => write!(f, "mqtt"),
            Self::Gcp => write!(f, "gcp"),
            Self::Azure => write!(f, "azure"),
            Self::Email => write!(f, "email"),
        }
    }
}

impl Default for CaptureTriggerKind {
    fn default() -> CaptureTriggerKind {
        Self::Webhook
    }
}

