1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
use serde::{Deserialize, Serialize};
use crate::entities::passport_file::PassportFile;
/// Describes documents or other Telegram Passport elements shared with the bot by the user.
///
/// API Reference: [link](https://core.telegram.org/bots/api/#encryptedpassportelement)
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EncryptedPassportElement {
/// Element type. One of “personal\_details”, “passport”, “driver\_license”, “identity\_card”, “internal\_passport”, “address”, “utility\_bill”, “bank\_statement”, “rental\_agreement”, “passport\_registration”, “temporary\_registration”, “phone\_number”, “email”.
#[serde(rename = "type")]
pub type_: EncryptedPassportElementType,
/// *Optional*. Base64-encoded encrypted Telegram Passport element data provided by the user; available only for “personal\_details”, “passport”, “driver\_license”, “identity\_card”, “internal\_passport” and “address” types. Can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<String>,
/// *Optional*. User's verified phone number; available only for “phone\_number” type
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone_number: Option<String>,
/// *Optional*. User's verified email address; available only for “email” type
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
/// *Optional*. Array of encrypted files with documents provided by the user; available only for “utility\_bill”, “bank\_statement”, “rental\_agreement”, “passport\_registration” and “temporary\_registration” types. Files can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials).
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub files: Vec<PassportFile>,
/// *Optional*. Encrypted file with the front side of the document, provided by the user; available only for “passport”, “driver\_license”, “identity\_card” and “internal\_passport”. The file can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub front_side: Option<PassportFile>,
/// *Optional*. Encrypted file with the reverse side of the document, provided by the user; available only for “driver\_license” and “identity\_card”. The file can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reverse_side: Option<PassportFile>,
/// *Optional*. Encrypted file with the selfie of the user holding a document, provided by the user; available if requested for “passport”, “driver\_license”, “identity\_card” and “internal\_passport”. The file can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials).
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selfie: Option<PassportFile>,
/// *Optional*. Array of encrypted files with translated versions of documents provided by the user; available if requested for “passport”, “driver\_license”, “identity\_card”, “internal\_passport”, “utility\_bill”, “bank\_statement”, “rental\_agreement”, “passport\_registration” and “temporary\_registration” types. Files can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials).
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub translation: Vec<PassportFile>,
/// Base64-encoded element hash for using in [PassportElementErrorUnspecified](https://core.telegram.org/bots/api/#passportelementerrorunspecified)
pub hash: String,
}
/// Element type. One of “personal\_details”, “passport”, “driver\_license”, “identity\_card”, “internal\_passport”, “address”, “utility\_bill”, “bank\_statement”, “rental\_agreement”, “passport\_registration”, “temporary\_registration”, “phone\_number”, “email”.
#[derive(Debug, Clone, Copy, Default, PartialEq, Serialize, Deserialize)]
pub enum EncryptedPassportElementType {
/// `personal_details`
#[default]
#[serde(rename = "personal_details")]
PersonalDetails,
/// `passport`
#[serde(rename = "passport")]
Passport,
/// `driver_license`
#[serde(rename = "driver_license")]
DriverLicense,
/// `identity_card`
#[serde(rename = "identity_card")]
IdentityCard,
/// `internal_passport`
#[serde(rename = "internal_passport")]
InternalPassport,
/// `address`
#[serde(rename = "address")]
Address,
/// `utility_bill`
#[serde(rename = "utility_bill")]
UtilityBill,
/// `bank_statement`
#[serde(rename = "bank_statement")]
BankStatement,
/// `rental_agreement`
#[serde(rename = "rental_agreement")]
RentalAgreement,
/// `passport_registration`
#[serde(rename = "passport_registration")]
PassportRegistration,
/// `temporary_registration`
#[serde(rename = "temporary_registration")]
TemporaryRegistration,
/// `phone_number`
#[serde(rename = "phone_number")]
PhoneNumber,
/// `email`
#[serde(rename = "email")]
Email,
}
// Divider: all content below this line will be preserved after code regen