#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CreateSecurityGroupRequest {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
pub organization: Option<String>,
#[serde(rename = "project", skip_serializing_if = "Option::is_none")]
pub project: Option<String>,
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(
rename = "organization_default",
skip_serializing_if = "Option::is_none"
)]
pub organization_default: Option<bool>,
#[serde(rename = "project_default", skip_serializing_if = "Option::is_none")]
pub project_default: Option<bool>,
#[serde(rename = "stateful", skip_serializing_if = "Option::is_none")]
pub stateful: Option<bool>,
#[serde(
rename = "inbound_default_policy",
skip_serializing_if = "Option::is_none"
)]
pub inbound_default_policy: Option<InboundDefaultPolicy>,
#[serde(
rename = "outbound_default_policy",
skip_serializing_if = "Option::is_none"
)]
pub outbound_default_policy: Option<OutboundDefaultPolicy>,
#[serde(
rename = "enable_default_security",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub enable_default_security: Option<Option<bool>>,
}
impl CreateSecurityGroupRequest {
pub fn new(name: String) -> CreateSecurityGroupRequest {
CreateSecurityGroupRequest {
name,
description: None,
organization: None,
project: None,
tags: None,
organization_default: None,
project_default: None,
stateful: None,
inbound_default_policy: None,
outbound_default_policy: None,
enable_default_security: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum InboundDefaultPolicy {
#[serde(rename = "accept")]
Accept,
#[serde(rename = "drop")]
Drop,
}
impl Default for InboundDefaultPolicy {
fn default() -> InboundDefaultPolicy {
Self::Accept
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum OutboundDefaultPolicy {
#[serde(rename = "accept")]
Accept,
#[serde(rename = "drop")]
Drop,
}
impl Default for OutboundDefaultPolicy {
fn default() -> OutboundDefaultPolicy {
Self::Accept
}
}