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: i32,
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(
43 rename = "owner",
44 default,
45 with = "::serde_with::rust::double_option",
46 skip_serializing_if = "Option::is_none"
47 )]
48 pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
49 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
50 pub comments: Option<String>,
51 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
52 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
53 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
54 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
55}
56
57impl IkeProposalRequest {
58 pub fn new(
60 name: String,
61 authentication_method: AuthenticationMethod,
62 encryption_algorithm: EncryptionAlgorithm,
63 group: i32,
64 ) -> IkeProposalRequest {
65 IkeProposalRequest {
66 name,
67 description: None,
68 authentication_method,
69 encryption_algorithm,
70 authentication_algorithm: None,
71 group,
72 sa_lifetime: None,
73 owner: None,
74 comments: None,
75 tags: None,
76 custom_fields: None,
77 }
78 }
79}
80
81#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
83pub enum AuthenticationMethod {
84 #[serde(rename = "preshared-keys")]
85 PresharedKeys,
86 #[serde(rename = "certificates")]
87 Certificates,
88 #[serde(rename = "rsa-signatures")]
89 RsaSignatures,
90 #[serde(rename = "dsa-signatures")]
91 DsaSignatures,
92}
93
94impl Default for AuthenticationMethod {
95 fn default() -> AuthenticationMethod {
96 Self::PresharedKeys
97 }
98}
99#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
101pub enum EncryptionAlgorithm {
102 #[serde(rename = "aes-128-cbc")]
103 Aes128Cbc,
104 #[serde(rename = "aes-128-gcm")]
105 Aes128Gcm,
106 #[serde(rename = "aes-192-cbc")]
107 Aes192Cbc,
108 #[serde(rename = "aes-192-gcm")]
109 Aes192Gcm,
110 #[serde(rename = "aes-256-cbc")]
111 Aes256Cbc,
112 #[serde(rename = "aes-256-gcm")]
113 Aes256Gcm,
114 #[serde(rename = "3des-cbc")]
115 Variant3desCbc,
116 #[serde(rename = "des-cbc")]
117 DesCbc,
118}
119
120impl Default for EncryptionAlgorithm {
121 fn default() -> EncryptionAlgorithm {
122 Self::Aes128Cbc
123 }
124}
125#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
127pub enum AuthenticationAlgorithm {
128 #[serde(rename = "hmac-sha1")]
129 Sha1,
130 #[serde(rename = "hmac-sha256")]
131 Sha256,
132 #[serde(rename = "hmac-sha384")]
133 Sha384,
134 #[serde(rename = "hmac-sha512")]
135 Sha512,
136 #[serde(rename = "hmac-md5")]
137 Md5,
138}
139
140impl Default for AuthenticationAlgorithm {
141 fn default() -> AuthenticationAlgorithm {
142 Self::Sha1
143 }
144}