1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct CreateRotatedSecret {
17 #[serde(rename = "ProviderType", skip_serializing_if = "Option::is_none")]
18 pub provider_type: Option<String>,
19 #[serde(rename = "api-id", skip_serializing_if = "Option::is_none")]
21 pub api_id: Option<String>,
22 #[serde(rename = "api-key", skip_serializing_if = "Option::is_none")]
24 pub api_key: Option<String>,
25 #[serde(rename = "application-id", skip_serializing_if = "Option::is_none")]
27 pub application_id: Option<String>,
28 #[serde(rename = "authentication-credentials", skip_serializing_if = "Option::is_none")]
30 pub authentication_credentials: Option<String>,
31 #[serde(rename = "auto-rotate", skip_serializing_if = "Option::is_none")]
33 pub auto_rotate: Option<String>,
34 #[serde(rename = "aws-region", skip_serializing_if = "Option::is_none")]
36 pub aws_region: Option<String>,
37 #[serde(rename = "custom-payload", skip_serializing_if = "Option::is_none")]
39 pub custom_payload: Option<String>,
40 #[serde(rename = "delete_protection", skip_serializing_if = "Option::is_none")]
42 pub delete_protection: Option<String>,
43 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
45 pub description: Option<String>,
46 #[serde(rename = "gcp-key", skip_serializing_if = "Option::is_none")]
48 pub gcp_key: Option<String>,
49 #[serde(rename = "gcp-service-account-email", skip_serializing_if = "Option::is_none")]
51 pub gcp_service_account_email: Option<String>,
52 #[serde(rename = "gcp-service-account-key-id", skip_serializing_if = "Option::is_none")]
54 pub gcp_service_account_key_id: Option<String>,
55 #[serde(rename = "grace-rotation", skip_serializing_if = "Option::is_none")]
57 pub grace_rotation: Option<String>,
58 #[serde(rename = "host-provider", skip_serializing_if = "Option::is_none")]
60 pub host_provider: Option<String>,
61 #[serde(rename = "json", skip_serializing_if = "Option::is_none")]
63 pub json: Option<bool>,
64 #[serde(rename = "key", skip_serializing_if = "Option::is_none")]
66 pub key: Option<String>,
67 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
69 pub metadata: Option<String>,
70 #[serde(rename = "name")]
72 pub name: String,
73 #[serde(rename = "password-length", skip_serializing_if = "Option::is_none")]
75 pub password_length: Option<String>,
76 #[serde(rename = "rotate-after-disconnect", skip_serializing_if = "Option::is_none")]
78 pub rotate_after_disconnect: Option<String>,
79 #[serde(rename = "rotated-password", skip_serializing_if = "Option::is_none")]
81 pub rotated_password: Option<String>,
82 #[serde(rename = "rotated-username", skip_serializing_if = "Option::is_none")]
84 pub rotated_username: Option<String>,
85 #[serde(rename = "rotation-hour", skip_serializing_if = "Option::is_none")]
87 pub rotation_hour: Option<i32>,
88 #[serde(rename = "rotation-interval", skip_serializing_if = "Option::is_none")]
90 pub rotation_interval: Option<String>,
91 #[serde(rename = "rotator-creds-type", skip_serializing_if = "Option::is_none")]
92 pub rotator_creds_type: Option<String>,
93 #[serde(rename = "rotator-custom-cmd", skip_serializing_if = "Option::is_none")]
95 pub rotator_custom_cmd: Option<String>,
96 #[serde(rename = "rotator-type")]
98 pub rotator_type: String,
99 #[serde(rename = "same-password", skip_serializing_if = "Option::is_none")]
101 pub same_password: Option<String>,
102 #[serde(rename = "secure-access-allow-external-user", skip_serializing_if = "Option::is_none")]
104 pub secure_access_allow_external_user: Option<bool>,
105 #[serde(rename = "secure-access-aws-account-id", skip_serializing_if = "Option::is_none")]
107 pub secure_access_aws_account_id: Option<String>,
108 #[serde(rename = "secure-access-aws-native-cli", skip_serializing_if = "Option::is_none")]
110 pub secure_access_aws_native_cli: Option<bool>,
111 #[serde(rename = "secure-access-bastion-issuer", skip_serializing_if = "Option::is_none")]
113 pub secure_access_bastion_issuer: Option<String>,
114 #[serde(rename = "secure-access-certificate-issuer", skip_serializing_if = "Option::is_none")]
116 pub secure_access_certificate_issuer: Option<String>,
117 #[serde(rename = "secure-access-db-name", skip_serializing_if = "Option::is_none")]
119 pub secure_access_db_name: Option<String>,
120 #[serde(rename = "secure-access-db-schema", skip_serializing_if = "Option::is_none")]
122 pub secure_access_db_schema: Option<String>,
123 #[serde(rename = "secure-access-disable-concurrent-connections", skip_serializing_if = "Option::is_none")]
125 pub secure_access_disable_concurrent_connections: Option<bool>,
126 #[serde(rename = "secure-access-enable", skip_serializing_if = "Option::is_none")]
128 pub secure_access_enable: Option<String>,
129 #[serde(rename = "secure-access-host", skip_serializing_if = "Option::is_none")]
131 pub secure_access_host: Option<Vec<String>>,
132 #[serde(rename = "secure-access-rdp-domain", skip_serializing_if = "Option::is_none")]
134 pub secure_access_rdp_domain: Option<String>,
135 #[serde(rename = "secure-access-rdp-user", skip_serializing_if = "Option::is_none")]
137 pub secure_access_rdp_user: Option<String>,
138 #[serde(rename = "secure-access-url", skip_serializing_if = "Option::is_none")]
140 pub secure_access_url: Option<String>,
141 #[serde(rename = "secure-access-web", skip_serializing_if = "Option::is_none")]
143 pub secure_access_web: Option<bool>,
144 #[serde(rename = "secure-access-web-browsing", skip_serializing_if = "Option::is_none")]
146 pub secure_access_web_browsing: Option<bool>,
147 #[serde(rename = "secure-access-web-proxy", skip_serializing_if = "Option::is_none")]
149 pub secure_access_web_proxy: Option<bool>,
150 #[serde(rename = "ssh-password", skip_serializing_if = "Option::is_none")]
152 pub ssh_password: Option<String>,
153 #[serde(rename = "ssh-username", skip_serializing_if = "Option::is_none")]
155 pub ssh_username: Option<String>,
156 #[serde(rename = "storage-account-key-name", skip_serializing_if = "Option::is_none")]
158 pub storage_account_key_name: Option<String>,
159 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
161 pub tags: Option<Vec<String>>,
162 #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
164 pub target: Option<Vec<String>>,
165 #[serde(rename = "target-name")]
167 pub target_name: String,
168 #[serde(rename = "token", skip_serializing_if = "Option::is_none")]
170 pub token: Option<String>,
171 #[serde(rename = "uid-token", skip_serializing_if = "Option::is_none")]
173 pub uid_token: Option<String>,
174 #[serde(rename = "user-attribute", skip_serializing_if = "Option::is_none")]
176 pub user_attribute: Option<String>,
177 #[serde(rename = "user-dn", skip_serializing_if = "Option::is_none")]
179 pub user_dn: Option<String>,
180}
181
182impl CreateRotatedSecret {
183 pub fn new(name: String, rotator_type: String, target_name: String) -> CreateRotatedSecret {
185 CreateRotatedSecret {
186 provider_type: None,
187 api_id: None,
188 api_key: None,
189 application_id: None,
190 authentication_credentials: None,
191 auto_rotate: None,
192 aws_region: None,
193 custom_payload: None,
194 delete_protection: None,
195 description: None,
196 gcp_key: None,
197 gcp_service_account_email: None,
198 gcp_service_account_key_id: None,
199 grace_rotation: None,
200 host_provider: None,
201 json: None,
202 key: None,
203 metadata: None,
204 name,
205 password_length: None,
206 rotate_after_disconnect: None,
207 rotated_password: None,
208 rotated_username: None,
209 rotation_hour: None,
210 rotation_interval: None,
211 rotator_creds_type: None,
212 rotator_custom_cmd: None,
213 rotator_type,
214 same_password: None,
215 secure_access_allow_external_user: None,
216 secure_access_aws_account_id: None,
217 secure_access_aws_native_cli: None,
218 secure_access_bastion_issuer: None,
219 secure_access_certificate_issuer: None,
220 secure_access_db_name: None,
221 secure_access_db_schema: None,
222 secure_access_disable_concurrent_connections: None,
223 secure_access_enable: None,
224 secure_access_host: None,
225 secure_access_rdp_domain: None,
226 secure_access_rdp_user: None,
227 secure_access_url: None,
228 secure_access_web: None,
229 secure_access_web_browsing: None,
230 secure_access_web_proxy: None,
231 ssh_password: None,
232 ssh_username: None,
233 storage_account_key_name: None,
234 tags: None,
235 target: None,
236 target_name,
237 token: None,
238 uid_token: None,
239 user_attribute: None,
240 user_dn: None,
241 }
242 }
243}
244