bitwarden_api_api/models/
access_rule_request_model.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct AccessRuleRequestModel {
17 #[serde(rename = "name", alias = "Name")]
18 pub name: String,
19 #[serde(
21 rename = "description",
22 alias = "Description",
23 skip_serializing_if = "Option::is_none"
24 )]
25 pub description: Option<String>,
26 #[serde(
29 rename = "enabled",
30 alias = "Enabled",
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub enabled: Option<bool>,
34 #[serde(rename = "conditions", alias = "Conditions")]
37 pub conditions: Option<serde_json::Value>,
38 #[serde(
40 rename = "singleActiveLease",
41 alias = "SingleActiveLease",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub single_active_lease: Option<bool>,
45 #[serde(
47 rename = "defaultLeaseDurationSeconds",
48 alias = "DefaultLeaseDurationSeconds",
49 skip_serializing_if = "Option::is_none"
50 )]
51 pub default_lease_duration_seconds: Option<i32>,
52 #[serde(
54 rename = "maxLeaseDurationSeconds",
55 alias = "MaxLeaseDurationSeconds",
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub max_lease_duration_seconds: Option<i32>,
59 #[serde(
63 rename = "allowsExtensions",
64 alias = "AllowsExtensions",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub allows_extensions: Option<bool>,
68 #[serde(
71 rename = "maxExtensionDurationSeconds",
72 alias = "MaxExtensionDurationSeconds",
73 skip_serializing_if = "Option::is_none"
74 )]
75 pub max_extension_duration_seconds: Option<i32>,
76 #[serde(rename = "collections", alias = "Collections")]
79 pub collections: Vec<uuid::Uuid>,
80}
81
82impl AccessRuleRequestModel {
83 pub fn new(
84 name: String,
85 conditions: Option<serde_json::Value>,
86 collections: Vec<uuid::Uuid>,
87 ) -> AccessRuleRequestModel {
88 AccessRuleRequestModel {
89 name,
90 description: None,
91 enabled: None,
92 conditions,
93 single_active_lease: None,
94 default_lease_duration_seconds: None,
95 max_lease_duration_seconds: None,
96 allows_extensions: None,
97 max_extension_duration_seconds: None,
98 collections,
99 }
100 }
101}