bitwarden_api_api/models/access_lease_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/// AccessLeaseResponseModel : An access lease as its requester sees it: the originating request,
16/// its lifecycle Bit.Services.Pam.Api.Models.Response.AccessLeaseResponseModel.Status, and
17/// revocation fields. Powers the request-submission envelope, the caller-scoped \"my active
18/// leases\" surface, and the cipher access-state snapshot. Fields without a backing store in v1
19/// (Bit.Services.Pam.Api.Models.Response.AccessLeaseResponseModel.RuleId,
20/// Bit.Services.Pam.Api.Models.Response.AccessLeaseResponseModel.RevocationReason) are null.
21#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
22pub struct AccessLeaseResponseModel {
23 #[serde(
24 rename = "object",
25 alias = "Object",
26 skip_serializing_if = "Option::is_none"
27 )]
28 pub object: Option<String>,
29 /// The lease's unique identifier.
30 #[serde(rename = "id", alias = "Id", skip_serializing_if = "Option::is_none")]
31 pub id: Option<uuid::Uuid>,
32 /// The request this lease was born from.
33 #[serde(
34 rename = "requestId",
35 alias = "RequestId",
36 skip_serializing_if = "Option::is_none"
37 )]
38 pub request_id: Option<uuid::Uuid>,
39 /// The cipher the lease grants access to.
40 #[serde(
41 rename = "cipherId",
42 alias = "CipherId",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub cipher_id: Option<uuid::Uuid>,
46 /// The collection the cipher belongs to.
47 #[serde(
48 rename = "collectionId",
49 alias = "CollectionId",
50 skip_serializing_if = "Option::is_none"
51 )]
52 pub collection_id: Option<uuid::Uuid>,
53 /// The access rule that gated the cipher at grant time. Not tracked in v1.
54 #[serde(
55 rename = "ruleId",
56 alias = "RuleId",
57 skip_serializing_if = "Option::is_none"
58 )]
59 pub rule_id: Option<String>,
60 /// The organization that owns the cipher.
61 #[serde(
62 rename = "organizationId",
63 alias = "OrganizationId",
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub organization_id: Option<uuid::Uuid>,
67 /// The user the lease was granted to (the original requester).
68 #[serde(
69 rename = "requesterId",
70 alias = "RequesterId",
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub requester_id: Option<uuid::Uuid>,
74 #[serde(
75 rename = "status",
76 alias = "Status",
77 skip_serializing_if = "Option::is_none"
78 )]
79 pub status: Option<models::AccessLeaseStatus>,
80 /// When the lease's access window opens (UTC).
81 #[serde(
82 rename = "notBefore",
83 alias = "NotBefore",
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub not_before: Option<String>,
87 /// When the lease's access window closes (UTC).
88 #[serde(
89 rename = "notAfter",
90 alias = "NotAfter",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub not_after: Option<String>,
94 /// When the lease was revoked early (UTC); null unless it was revoked before expiry.
95 #[serde(
96 rename = "revokedAt",
97 alias = "RevokedAt",
98 skip_serializing_if = "Option::is_none"
99 )]
100 pub revoked_at: Option<String>,
101 /// The user who revoked the lease; null unless it was revoked early.
102 #[serde(
103 rename = "revokedByUserId",
104 alias = "RevokedByUserId",
105 skip_serializing_if = "Option::is_none"
106 )]
107 pub revoked_by_user_id: Option<uuid::Uuid>,
108 /// The reason captured on early revocation. Recorded on the audit decision, not surfaced here
109 /// in v1.
110 #[serde(
111 rename = "revocationReason",
112 alias = "RevocationReason",
113 skip_serializing_if = "Option::is_none"
114 )]
115 pub revocation_reason: Option<String>,
116}
117
118impl AccessLeaseResponseModel {
119 /// An access lease as its requester sees it: the originating request, its lifecycle
120 /// Bit.Services.Pam.Api.Models.Response.AccessLeaseResponseModel.Status, and revocation fields.
121 /// Powers the request-submission envelope, the caller-scoped \"my active leases\" surface, and
122 /// the cipher access-state snapshot. Fields without a backing store in v1
123 /// (Bit.Services.Pam.Api.Models.Response.AccessLeaseResponseModel.RuleId,
124 /// Bit.Services.Pam.Api.Models.Response.AccessLeaseResponseModel.RevocationReason) are null.
125 pub fn new() -> AccessLeaseResponseModel {
126 AccessLeaseResponseModel {
127 object: None,
128 id: None,
129 request_id: None,
130 cipher_id: None,
131 collection_id: None,
132 rule_id: None,
133 organization_id: None,
134 requester_id: None,
135 status: None,
136 not_before: None,
137 not_after: None,
138 revoked_at: None,
139 revoked_by_user_id: None,
140 revocation_reason: None,
141 }
142 }
143}