use serde_derive::{Deserialize, Serialize};
use crate::models::authentication::*;
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct ExternalResourceDefinition{
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "endpoint")]
pub endpoint: OneOfEndpointDefinitionOrUri
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct EndpointDefinition{
#[serde(rename = "uri")]
pub uri : String,
#[serde(rename = "authentication", skip_serializing_if = "Option::is_none")]
pub authentication: Option<AuthenticationPolicyDefinition>
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum OneOfEndpointDefinitionOrUri{
Endpoint(EndpointDefinition),
Uri(String),
}
impl Default for OneOfEndpointDefinitionOrUri {
fn default() -> Self {
OneOfEndpointDefinitionOrUri::Uri(String::new())
}
}