Skip to main content

bitwarden_api_api/models/
access_request_details_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/// AccessRequestDetailsResponseModel : An access request with its denormalized requester identity.
16#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct AccessRequestDetailsResponseModel {
18    #[serde(
19        rename = "object",
20        alias = "Object",
21        skip_serializing_if = "Option::is_none"
22    )]
23    pub object: Option<String>,
24    #[serde(rename = "id", alias = "Id", skip_serializing_if = "Option::is_none")]
25    pub id: Option<uuid::Uuid>,
26    #[serde(
27        rename = "cipherId",
28        alias = "CipherId",
29        skip_serializing_if = "Option::is_none"
30    )]
31    pub cipher_id: Option<uuid::Uuid>,
32    /// The collection through which the request is governed.
33    #[serde(
34        rename = "collectionId",
35        alias = "CollectionId",
36        skip_serializing_if = "Option::is_none"
37    )]
38    pub collection_id: Option<uuid::Uuid>,
39    #[serde(
40        rename = "organizationId",
41        alias = "OrganizationId",
42        skip_serializing_if = "Option::is_none"
43    )]
44    pub organization_id: Option<uuid::Uuid>,
45    #[serde(
46        rename = "requesterId",
47        alias = "RequesterId",
48        skip_serializing_if = "Option::is_none"
49    )]
50    pub requester_id: Option<uuid::Uuid>,
51    /// The access rule pinned on the request at submit, if any.
52    #[serde(
53        rename = "ruleId",
54        alias = "RuleId",
55        skip_serializing_if = "Option::is_none"
56    )]
57    pub rule_id: Option<uuid::Uuid>,
58    #[serde(
59        rename = "status",
60        alias = "Status",
61        skip_serializing_if = "Option::is_none"
62    )]
63    pub status: Option<models::AccessRequestStatus>,
64    /// Start of the window resolved at submit (now to now + duration on the automatic path, the
65    /// chosen start and end on the human path). The request can be activated only inside it.
66    #[serde(
67        rename = "leaseNotBefore",
68        alias = "LeaseNotBefore",
69        skip_serializing_if = "Option::is_none"
70    )]
71    pub lease_not_before: Option<String>,
72    /// End of the window; see
73    /// Bit.Services.Pam.Api.Models.Response.AccessRequestDetailsResponseModel.LeaseNotBefore.
74    #[serde(
75        rename = "leaseNotAfter",
76        alias = "LeaseNotAfter",
77        skip_serializing_if = "Option::is_none"
78    )]
79    pub lease_not_after: Option<String>,
80    #[serde(
81        rename = "reason",
82        alias = "Reason",
83        skip_serializing_if = "Option::is_none"
84    )]
85    pub reason: Option<String>,
86    #[serde(
87        rename = "submittedAt",
88        alias = "SubmittedAt",
89        skip_serializing_if = "Option::is_none"
90    )]
91    pub submitted_at: Option<String>,
92    /// When the request was last approved, denied or cancelled. Null while pending or after
93    /// expiring unanswered.
94    #[serde(
95        rename = "resolvedAt",
96        alias = "ResolvedAt",
97        skip_serializing_if = "Option::is_none"
98    )]
99    pub resolved_at: Option<String>,
100    /// The request's decisions, oldest first.
101    #[serde(
102        rename = "decisions",
103        alias = "Decisions",
104        skip_serializing_if = "Option::is_none"
105    )]
106    pub decisions: Option<Vec<models::AccessRequestDecisionResponseModel>>,
107    /// Set once an approved request has produced a lease.
108    #[serde(
109        rename = "producedLeaseId",
110        alias = "ProducedLeaseId",
111        skip_serializing_if = "Option::is_none"
112    )]
113    pub produced_lease_id: Option<uuid::Uuid>,
114    #[serde(
115        rename = "producedLeaseStatus",
116        alias = "ProducedLeaseStatus",
117        skip_serializing_if = "Option::is_none"
118    )]
119    pub produced_lease_status: Option<models::AccessLeaseStatus>,
120    /// The produced lease's end, including any extension, or null when no lease exists.
121    #[serde(
122        rename = "producedLeaseNotAfter",
123        alias = "ProducedLeaseNotAfter",
124        skip_serializing_if = "Option::is_none"
125    )]
126    pub produced_lease_not_after: Option<String>,
127    /// The parent lease if this is an extension request.
128    #[serde(
129        rename = "extensionOfLeaseId",
130        alias = "ExtensionOfLeaseId",
131        skip_serializing_if = "Option::is_none"
132    )]
133    pub extension_of_lease_id: Option<uuid::Uuid>,
134    /// The requester's display name; null when unset or the user could not be resolved.
135    #[serde(
136        rename = "requesterName",
137        alias = "RequesterName",
138        skip_serializing_if = "Option::is_none"
139    )]
140    pub requester_name: Option<String>,
141    /// The requester's email; null when the user could not be resolved.
142    #[serde(
143        rename = "requesterEmail",
144        alias = "RequesterEmail",
145        skip_serializing_if = "Option::is_none"
146    )]
147    pub requester_email: Option<String>,
148}
149
150impl AccessRequestDetailsResponseModel {
151    /// An access request with its denormalized requester identity.
152    pub fn new() -> AccessRequestDetailsResponseModel {
153        AccessRequestDetailsResponseModel {
154            object: None,
155            id: None,
156            cipher_id: None,
157            collection_id: None,
158            organization_id: None,
159            requester_id: None,
160            rule_id: None,
161            status: None,
162            lease_not_before: None,
163            lease_not_after: None,
164            reason: None,
165            submitted_at: None,
166            resolved_at: None,
167            decisions: None,
168            produced_lease_id: None,
169            produced_lease_status: None,
170            produced_lease_not_after: None,
171            extension_of_lease_id: None,
172            requester_name: None,
173            requester_email: None,
174        }
175    }
176}