use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CredentialWebhookDto {
#[serde(rename = "type")]
pub r#type: TypeTrue,
#[serde(rename = "operation")]
pub operation: OperationTrue,
#[serde(rename = "from")]
pub from: String,
#[serde(rename = "connectionId")]
pub connection_id: String,
#[serde(rename = "authMode")]
pub auth_mode: AuthModeTrue,
#[serde(rename = "providerConfigKey")]
pub provider_config_key: String,
#[serde(rename = "provider")]
pub provider: String,
#[serde(rename = "environment")]
pub environment: String,
#[serde(rename = "success")]
pub success: bool,
#[serde(rename = "endUser")]
pub end_user: models::CredentialEndUser,
#[serde(rename = "error", skip_serializing_if = "Option::is_none")]
pub error: Option<models::CredentialSessionError>,
}
impl CredentialWebhookDto {
pub fn new(
r#type: TypeTrue,
operation: OperationTrue,
from: String,
connection_id: String,
auth_mode: AuthModeTrue,
provider_config_key: String,
provider: String,
environment: String,
success: bool,
end_user: models::CredentialEndUser,
) -> CredentialWebhookDto {
CredentialWebhookDto {
r#type,
operation,
from,
connection_id,
auth_mode,
provider_config_key,
provider,
environment,
success,
end_user,
error: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TypeTrue {
#[serde(rename = "auth")]
Auth,
#[serde(rename = "sync")]
Sync,
#[serde(rename = "forward")]
Forward,
}
impl Default for TypeTrue {
fn default() -> TypeTrue {
Self::Auth
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum OperationTrue {
#[serde(rename = "creation")]
Creation,
#[serde(rename = "override")]
Override,
#[serde(rename = "refresh")]
Refresh,
}
impl Default for OperationTrue {
fn default() -> OperationTrue {
Self::Creation
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AuthModeTrue {
#[serde(rename = "OAUTH2")]
Oauth2,
#[serde(rename = "API_KEY")]
ApiKey,
#[serde(rename = "BASIC")]
Basic,
}
impl Default for AuthModeTrue {
fn default() -> AuthModeTrue {
Self::Oauth2
}
}