1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateDfcKey {
16 #[serde(rename = "alg")]
18 pub alg: String,
19 #[serde(rename = "auto-rotate", skip_serializing_if = "Option::is_none")]
21 pub auto_rotate: Option<String>,
22 #[serde(rename = "certificate-common-name", skip_serializing_if = "Option::is_none")]
24 pub certificate_common_name: Option<String>,
25 #[serde(rename = "certificate-country", skip_serializing_if = "Option::is_none")]
27 pub certificate_country: Option<String>,
28 #[serde(rename = "certificate-digest-algo", skip_serializing_if = "Option::is_none")]
30 pub certificate_digest_algo: Option<String>,
31 #[serde(rename = "certificate-format", skip_serializing_if = "Option::is_none")]
32 pub certificate_format: Option<String>,
33 #[serde(rename = "certificate-locality", skip_serializing_if = "Option::is_none")]
35 pub certificate_locality: Option<String>,
36 #[serde(rename = "certificate-organization", skip_serializing_if = "Option::is_none")]
38 pub certificate_organization: Option<String>,
39 #[serde(rename = "certificate-province", skip_serializing_if = "Option::is_none")]
41 pub certificate_province: Option<String>,
42 #[serde(rename = "certificate-ttl", skip_serializing_if = "Option::is_none")]
44 pub certificate_ttl: Option<i64>,
45 #[serde(rename = "conf-file-data", skip_serializing_if = "Option::is_none")]
47 pub conf_file_data: Option<String>,
48 #[serde(rename = "customer-frg-id", skip_serializing_if = "Option::is_none")]
50 pub customer_frg_id: Option<String>,
51 #[serde(rename = "delete_protection", skip_serializing_if = "Option::is_none")]
53 pub delete_protection: Option<String>,
54 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
56 pub description: Option<String>,
57 #[serde(rename = "expiration-event-in", skip_serializing_if = "Option::is_none")]
59 pub expiration_event_in: Option<Vec<String>>,
60 #[serde(rename = "generate-self-signed-certificate", skip_serializing_if = "Option::is_none")]
62 pub generate_self_signed_certificate: Option<bool>,
63 #[serde(rename = "hash-algorithm", skip_serializing_if = "Option::is_none")]
65 pub hash_algorithm: Option<String>,
66 #[serde(rename = "item-custom-fields", skip_serializing_if = "Option::is_none")]
68 pub item_custom_fields: Option<std::collections::HashMap<String, String>>,
69 #[serde(rename = "json", skip_serializing_if = "Option::is_none")]
71 pub json: Option<bool>,
72 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
74 pub metadata: Option<String>,
75 #[serde(rename = "name")]
77 pub name: String,
78 #[serde(rename = "rotation-event-in", skip_serializing_if = "Option::is_none")]
80 pub rotation_event_in: Option<Vec<String>>,
81 #[serde(rename = "rotation-interval", skip_serializing_if = "Option::is_none")]
83 pub rotation_interval: Option<String>,
84 #[serde(rename = "split-level", skip_serializing_if = "Option::is_none")]
86 pub split_level: Option<i64>,
87 #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
89 pub tag: Option<Vec<String>>,
90 #[serde(rename = "token", skip_serializing_if = "Option::is_none")]
92 pub token: Option<String>,
93 #[serde(rename = "uid-token", skip_serializing_if = "Option::is_none")]
95 pub uid_token: Option<String>,
96}
97
98impl CreateDfcKey {
99 pub fn new(alg: String, name: String) -> CreateDfcKey {
100 CreateDfcKey {
101 alg,
102 auto_rotate: None,
103 certificate_common_name: None,
104 certificate_country: None,
105 certificate_digest_algo: None,
106 certificate_format: None,
107 certificate_locality: None,
108 certificate_organization: None,
109 certificate_province: None,
110 certificate_ttl: None,
111 conf_file_data: None,
112 customer_frg_id: None,
113 delete_protection: None,
114 description: None,
115 expiration_event_in: None,
116 generate_self_signed_certificate: None,
117 hash_algorithm: None,
118 item_custom_fields: None,
119 json: None,
120 metadata: None,
121 name,
122 rotation_event_in: None,
123 rotation_interval: None,
124 split_level: None,
125 tag: None,
126 token: None,
127 uid_token: None,
128 }
129 }
130}
131