Skip to main content

bitwarden_api_api/models/
access_rule_response_model.rs

1/*
2 * Bitwarden Internal API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: latest
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct AccessRuleResponseModel {
17    #[serde(
18        rename = "object",
19        alias = "Object",
20        skip_serializing_if = "Option::is_none"
21    )]
22    pub object: Option<String>,
23    #[serde(rename = "id", alias = "Id", skip_serializing_if = "Option::is_none")]
24    pub id: Option<uuid::Uuid>,
25    #[serde(
26        rename = "organizationId",
27        alias = "OrganizationId",
28        skip_serializing_if = "Option::is_none"
29    )]
30    pub organization_id: Option<uuid::Uuid>,
31    #[serde(
32        rename = "name",
33        alias = "Name",
34        skip_serializing_if = "Option::is_none"
35    )]
36    pub name: Option<String>,
37    /// Free text describing the rule's intent; has no effect on evaluation.
38    #[serde(
39        rename = "description",
40        alias = "Description",
41        skip_serializing_if = "Option::is_none"
42    )]
43    pub description: Option<String>,
44    /// When false, the rule does not gate access to its collections.
45    #[serde(
46        rename = "enabled",
47        alias = "Enabled",
48        skip_serializing_if = "Option::is_none"
49    )]
50    pub enabled: Option<bool>,
51    /// A JSON array of condition objects, such as human approval or a source IP restriction. An
52    /// empty array means the rule imposes no conditions.
53    #[serde(
54        rename = "conditions",
55        alias = "Conditions",
56        skip_serializing_if = "Option::is_none"
57    )]
58    pub conditions: Option<serde_json::Value>,
59    /// When true, at most one active lease per cipher across all users.
60    #[serde(
61        rename = "singleActiveLease",
62        alias = "SingleActiveLease",
63        skip_serializing_if = "Option::is_none"
64    )]
65    pub single_active_lease: Option<bool>,
66    /// Pre-fills the duration of a request under this rule. Null means the global default.
67    #[serde(
68        rename = "defaultLeaseDurationSeconds",
69        alias = "DefaultLeaseDurationSeconds",
70        skip_serializing_if = "Option::is_none"
71    )]
72    pub default_lease_duration_seconds: Option<i32>,
73    /// Ceiling on any single lease under this rule. Null means no per-rule cap.
74    #[serde(
75        rename = "maxLeaseDurationSeconds",
76        alias = "MaxLeaseDurationSeconds",
77        skip_serializing_if = "Option::is_none"
78    )]
79    pub max_lease_duration_seconds: Option<i32>,
80    /// When true, a member holding an active lease under this rule may extend it once (always
81    /// auto-approved), by up to
82    /// Bit.Services.Pam.Api.Models.Response.AccessRuleResponseModel.MaxExtensionDurationSeconds.
83    #[serde(
84        rename = "allowsExtensions",
85        alias = "AllowsExtensions",
86        skip_serializing_if = "Option::is_none"
87    )]
88    pub allows_extensions: Option<bool>,
89    /// The longest a single extension may run, in seconds. Set when
90    /// Bit.Services.Pam.Api.Models.Response.AccessRuleResponseModel.AllowsExtensions is true.
91    #[serde(
92        rename = "maxExtensionDurationSeconds",
93        alias = "MaxExtensionDurationSeconds",
94        skip_serializing_if = "Option::is_none"
95    )]
96    pub max_extension_duration_seconds: Option<i32>,
97    #[serde(
98        rename = "collections",
99        alias = "Collections",
100        skip_serializing_if = "Option::is_none"
101    )]
102    pub collections: Option<Vec<uuid::Uuid>>,
103    #[serde(
104        rename = "creationDate",
105        alias = "CreationDate",
106        skip_serializing_if = "Option::is_none"
107    )]
108    pub creation_date: Option<String>,
109    #[serde(
110        rename = "revisionDate",
111        alias = "RevisionDate",
112        skip_serializing_if = "Option::is_none"
113    )]
114    pub revision_date: Option<String>,
115}
116
117impl AccessRuleResponseModel {
118    pub fn new() -> AccessRuleResponseModel {
119        AccessRuleResponseModel {
120            object: None,
121            id: None,
122            organization_id: None,
123            name: None,
124            description: None,
125            enabled: None,
126            conditions: None,
127            single_active_lease: None,
128            default_lease_duration_seconds: None,
129            max_lease_duration_seconds: None,
130            allows_extensions: None,
131            max_extension_duration_seconds: None,
132            collections: None,
133            creation_date: None,
134            revision_date: None,
135        }
136    }
137}