1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct WritableIkeProposalRequest {
15 #[serde(rename = "name")]
16 pub name: String,
17 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
18 pub description: Option<String>,
19 #[serde(rename = "authentication_method")]
21 pub authentication_method: AuthenticationMethod,
22 #[serde(rename = "encryption_algorithm")]
24 pub encryption_algorithm: EncryptionAlgorithm,
25 #[serde(
27 rename = "authentication_algorithm",
28 default,
29 with = "::serde_with::rust::double_option",
30 skip_serializing_if = "Option::is_none"
31 )]
32 pub authentication_algorithm: Option<Option<AuthenticationAlgorithm>>,
33 #[serde(rename = "group")]
35 pub group: i32,
36 #[serde(
38 rename = "sa_lifetime",
39 default,
40 with = "::serde_with::rust::double_option",
41 skip_serializing_if = "Option::is_none"
42 )]
43 pub sa_lifetime: Option<Option<i32>>,
44 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
45 pub comments: Option<String>,
46 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
47 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
48 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
49 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
50}
51
52impl WritableIkeProposalRequest {
53 pub fn new(
55 name: String,
56 authentication_method: AuthenticationMethod,
57 encryption_algorithm: EncryptionAlgorithm,
58 group: i32,
59 ) -> WritableIkeProposalRequest {
60 WritableIkeProposalRequest {
61 name,
62 description: None,
63 authentication_method,
64 encryption_algorithm,
65 authentication_algorithm: None,
66 group,
67 sa_lifetime: None,
68 comments: None,
69 tags: None,
70 custom_fields: None,
71 }
72 }
73}
74
75#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
77pub enum AuthenticationMethod {
78 #[serde(rename = "preshared-keys")]
79 PresharedKeys,
80 #[serde(rename = "certificates")]
81 Certificates,
82 #[serde(rename = "rsa-signatures")]
83 RsaSignatures,
84 #[serde(rename = "dsa-signatures")]
85 DsaSignatures,
86}
87
88impl Default for AuthenticationMethod {
89 fn default() -> AuthenticationMethod {
90 Self::PresharedKeys
91 }
92}
93#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
95pub enum EncryptionAlgorithm {
96 #[serde(rename = "aes-128-cbc")]
97 Aes128Cbc,
98 #[serde(rename = "aes-128-gcm")]
99 Aes128Gcm,
100 #[serde(rename = "aes-192-cbc")]
101 Aes192Cbc,
102 #[serde(rename = "aes-192-gcm")]
103 Aes192Gcm,
104 #[serde(rename = "aes-256-cbc")]
105 Aes256Cbc,
106 #[serde(rename = "aes-256-gcm")]
107 Aes256Gcm,
108 #[serde(rename = "3des-cbc")]
109 Variant3desCbc,
110 #[serde(rename = "des-cbc")]
111 DesCbc,
112}
113
114impl Default for EncryptionAlgorithm {
115 fn default() -> EncryptionAlgorithm {
116 Self::Aes128Cbc
117 }
118}
119#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
121pub enum AuthenticationAlgorithm {
122 #[serde(rename = "hmac-sha1")]
123 HmacSha1,
124 #[serde(rename = "hmac-sha256")]
125 HmacSha256,
126 #[serde(rename = "hmac-sha384")]
127 HmacSha384,
128 #[serde(rename = "hmac-sha512")]
129 HmacSha512,
130 #[serde(rename = "hmac-md5")]
131 HmacMd5,
132 #[serde(rename = "")]
133 Empty,
134 #[serde(rename = "null")]
135 Null,
136}
137
138impl Default for AuthenticationAlgorithm {
139 fn default() -> AuthenticationAlgorithm {
140 Self::HmacSha1
141 }
142}