1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct CreateClassicKey {
17 #[serde(rename = "alg")]
19 pub alg: String,
20 #[serde(rename = "auto-rotate", skip_serializing_if = "Option::is_none")]
22 pub auto_rotate: Option<String>,
23 #[serde(rename = "cert-file-data", skip_serializing_if = "Option::is_none")]
25 pub cert_file_data: Option<String>,
26 #[serde(rename = "certificate-common-name", skip_serializing_if = "Option::is_none")]
28 pub certificate_common_name: Option<String>,
29 #[serde(rename = "certificate-country", skip_serializing_if = "Option::is_none")]
31 pub certificate_country: Option<String>,
32 #[serde(rename = "certificate-digest-algo", skip_serializing_if = "Option::is_none")]
34 pub certificate_digest_algo: Option<String>,
35 #[serde(rename = "certificate-format", skip_serializing_if = "Option::is_none")]
36 pub certificate_format: Option<String>,
37 #[serde(rename = "certificate-locality", skip_serializing_if = "Option::is_none")]
39 pub certificate_locality: Option<String>,
40 #[serde(rename = "certificate-organization", skip_serializing_if = "Option::is_none")]
42 pub certificate_organization: Option<String>,
43 #[serde(rename = "certificate-province", skip_serializing_if = "Option::is_none")]
45 pub certificate_province: Option<String>,
46 #[serde(rename = "certificate-ttl", skip_serializing_if = "Option::is_none")]
48 pub certificate_ttl: Option<i64>,
49 #[serde(rename = "conf-file-data", skip_serializing_if = "Option::is_none")]
51 pub conf_file_data: Option<String>,
52 #[serde(rename = "delete_protection", skip_serializing_if = "Option::is_none")]
54 pub delete_protection: Option<String>,
55 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
57 pub description: Option<String>,
58 #[serde(rename = "expiration-event-in", skip_serializing_if = "Option::is_none")]
60 pub expiration_event_in: Option<Vec<String>>,
61 #[serde(rename = "generate-self-signed-certificate", skip_serializing_if = "Option::is_none")]
63 pub generate_self_signed_certificate: Option<bool>,
64 #[serde(rename = "gpg-alg", skip_serializing_if = "Option::is_none")]
66 pub gpg_alg: Option<String>,
67 #[serde(rename = "hash-algorithm", skip_serializing_if = "Option::is_none")]
69 pub hash_algorithm: Option<String>,
70 #[serde(rename = "item-custom-fields", skip_serializing_if = "Option::is_none")]
72 pub item_custom_fields: Option<std::collections::HashMap<String, String>>,
73 #[serde(rename = "json", skip_serializing_if = "Option::is_none")]
75 pub json: Option<bool>,
76 #[serde(rename = "key-data", skip_serializing_if = "Option::is_none")]
78 pub key_data: Option<String>,
79 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
81 pub metadata: Option<String>,
82 #[serde(rename = "name")]
84 pub name: String,
85 #[serde(rename = "protection-key-name", skip_serializing_if = "Option::is_none")]
87 pub protection_key_name: Option<String>,
88 #[serde(rename = "rotation-event-in", skip_serializing_if = "Option::is_none")]
90 pub rotation_event_in: Option<Vec<String>>,
91 #[serde(rename = "rotation-interval", skip_serializing_if = "Option::is_none")]
93 pub rotation_interval: Option<String>,
94 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
96 pub tags: Option<Vec<String>>,
97 #[serde(rename = "token", skip_serializing_if = "Option::is_none")]
99 pub token: Option<String>,
100 #[serde(rename = "uid-token", skip_serializing_if = "Option::is_none")]
102 pub uid_token: Option<String>,
103}
104
105impl CreateClassicKey {
106 pub fn new(alg: String, name: String) -> CreateClassicKey {
108 CreateClassicKey {
109 alg,
110 auto_rotate: None,
111 cert_file_data: None,
112 certificate_common_name: None,
113 certificate_country: None,
114 certificate_digest_algo: None,
115 certificate_format: None,
116 certificate_locality: None,
117 certificate_organization: None,
118 certificate_province: None,
119 certificate_ttl: None,
120 conf_file_data: None,
121 delete_protection: None,
122 description: None,
123 expiration_event_in: None,
124 generate_self_signed_certificate: None,
125 gpg_alg: None,
126 hash_algorithm: None,
127 item_custom_fields: None,
128 json: None,
129 key_data: None,
130 metadata: None,
131 name,
132 protection_key_name: None,
133 rotation_event_in: None,
134 rotation_interval: None,
135 tags: None,
136 token: None,
137 uid_token: None,
138 }
139 }
140}
141