1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct IkeProposalRequest {
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 skip_serializing_if = "Option::is_none"
29 )]
30 pub authentication_algorithm: Option<AuthenticationAlgorithm>,
31 #[serde(rename = "group")]
33 pub group: Group,
34 #[serde(
36 rename = "sa_lifetime",
37 default,
38 with = "::serde_with::rust::double_option",
39 skip_serializing_if = "Option::is_none"
40 )]
41 pub sa_lifetime: Option<Option<i32>>,
42 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
43 pub comments: Option<String>,
44 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
45 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
46 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
47 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
48}
49
50impl IkeProposalRequest {
51 pub fn new(
53 name: String,
54 authentication_method: AuthenticationMethod,
55 encryption_algorithm: EncryptionAlgorithm,
56 group: Group,
57 ) -> IkeProposalRequest {
58 IkeProposalRequest {
59 name,
60 description: None,
61 authentication_method,
62 encryption_algorithm,
63 authentication_algorithm: None,
64 group,
65 sa_lifetime: None,
66 comments: None,
67 tags: None,
68 custom_fields: None,
69 }
70 }
71}
72
73#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
75pub enum AuthenticationMethod {
76 #[serde(rename = "preshared-keys")]
77 PresharedKeys,
78 #[serde(rename = "certificates")]
79 Certificates,
80 #[serde(rename = "rsa-signatures")]
81 RsaSignatures,
82 #[serde(rename = "dsa-signatures")]
83 DsaSignatures,
84}
85
86impl Default for AuthenticationMethod {
87 fn default() -> AuthenticationMethod {
88 Self::PresharedKeys
89 }
90}
91#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
93pub enum EncryptionAlgorithm {
94 #[serde(rename = "aes-128-cbc")]
95 Aes128Cbc,
96 #[serde(rename = "aes-128-gcm")]
97 Aes128Gcm,
98 #[serde(rename = "aes-192-cbc")]
99 Aes192Cbc,
100 #[serde(rename = "aes-192-gcm")]
101 Aes192Gcm,
102 #[serde(rename = "aes-256-cbc")]
103 Aes256Cbc,
104 #[serde(rename = "aes-256-gcm")]
105 Aes256Gcm,
106 #[serde(rename = "3des-cbc")]
107 Variant3desCbc,
108 #[serde(rename = "des-cbc")]
109 DesCbc,
110}
111
112impl Default for EncryptionAlgorithm {
113 fn default() -> EncryptionAlgorithm {
114 Self::Aes128Cbc
115 }
116}
117#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
119pub enum AuthenticationAlgorithm {
120 #[serde(rename = "hmac-sha1")]
121 Sha1,
122 #[serde(rename = "hmac-sha256")]
123 Sha256,
124 #[serde(rename = "hmac-sha384")]
125 Sha384,
126 #[serde(rename = "hmac-sha512")]
127 Sha512,
128 #[serde(rename = "hmac-md5")]
129 Md5,
130}
131
132impl Default for AuthenticationAlgorithm {
133 fn default() -> AuthenticationAlgorithm {
134 Self::Sha1
135 }
136}
137#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
139pub enum Group {
140 #[serde(rename = "1")]
141 Variant1,
142 #[serde(rename = "2")]
143 Variant2,
144 #[serde(rename = "5")]
145 Variant5,
146 #[serde(rename = "14")]
147 Variant14,
148 #[serde(rename = "15")]
149 Variant15,
150 #[serde(rename = "16")]
151 Variant16,
152 #[serde(rename = "17")]
153 Variant17,
154 #[serde(rename = "18")]
155 Variant18,
156 #[serde(rename = "19")]
157 Variant19,
158 #[serde(rename = "20")]
159 Variant20,
160 #[serde(rename = "21")]
161 Variant21,
162 #[serde(rename = "22")]
163 Variant22,
164 #[serde(rename = "23")]
165 Variant23,
166 #[serde(rename = "24")]
167 Variant24,
168 #[serde(rename = "25")]
169 Variant25,
170 #[serde(rename = "26")]
171 Variant26,
172 #[serde(rename = "27")]
173 Variant27,
174 #[serde(rename = "28")]
175 Variant28,
176 #[serde(rename = "29")]
177 Variant29,
178 #[serde(rename = "30")]
179 Variant30,
180 #[serde(rename = "31")]
181 Variant31,
182 #[serde(rename = "32")]
183 Variant32,
184 #[serde(rename = "33")]
185 Variant33,
186 #[serde(rename = "34")]
187 Variant34,
188}
189
190impl Default for Group {
191 fn default() -> Group {
192 Self::Variant1
193 }
194}