proxycurl_linkedin_rs/models/
person_endpoint_response.rs

1/*
2 * Proxycurl API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.0.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct PersonEndpointResponse {
13    ///                  The vanity identifier of the public LinkedIn profile.                 The vanity identifier comes after the `/in/` part of the LinkedIn Profile URL                 in the following format: `https://www.linkedin.com/in/<public_identifier>`             
14    #[serde(
15        rename = "public_identifier",
16        default,
17        with = "::serde_with::rust::double_option",
18        skip_serializing_if = "Option::is_none"
19    )]
20    pub public_identifier: Option<Option<String>>,
21    ///                  A temporary link to the user's profile picture that is valid for 30 minutes.                  The temporal nature of the link is by design to prevent having Proxycurl be the mirror for the images.                 The developer is expected to handle these images by downloading the image and re-hosting the image.                 See [this post](https://nubela.co/blog/why-is-the-api-returning-s3-links-for-profile-pictures-scraped-from-linkedin-profiles/) for context.                 Some profile pictures might be of the standard LinkedIn's profile picture placeholder. It is so because. See [this post](https://nubela.co/blog/why-do-most-linkedin-profiles-fetched-via-the-person-profile-endpoint-return-a-placeholder-profile-picture/) for context.             
22    #[serde(
23        rename = "profile_pic_url",
24        default,
25        with = "::serde_with::rust::double_option",
26        skip_serializing_if = "Option::is_none"
27    )]
28    pub profile_pic_url: Option<Option<String>>,
29    ///                  A temporary link to the user's background cover picture                 that is valid for 30 minutes.                 The temporal nature of the link is by design to prevent                 having Proxycurl be the mirror for the images.                 The developer is expected to handle these images                  by downloading the image and re-hosting the image.                  See [this post](https://nubela.co/blog/why-is-the-api-returning-s3-links-for-profile-pictures-scraped-from-linkedin-profiles/) for context.             
30    #[serde(
31        rename = "background_cover_image_url",
32        default,
33        with = "::serde_with::rust::double_option",
34        skip_serializing_if = "Option::is_none"
35    )]
36    pub background_cover_image_url: Option<Option<String>>,
37    /// First name of the user.
38    #[serde(
39        rename = "first_name",
40        default,
41        with = "::serde_with::rust::double_option",
42        skip_serializing_if = "Option::is_none"
43    )]
44    pub first_name: Option<Option<String>>,
45    /// Last name of the user.
46    #[serde(
47        rename = "last_name",
48        default,
49        with = "::serde_with::rust::double_option",
50        skip_serializing_if = "Option::is_none"
51    )]
52    pub last_name: Option<Option<String>>,
53    ///                  Full name of the user (`first_name` + `last_name`)             
54    #[serde(
55        rename = "full_name",
56        default,
57        with = "::serde_with::rust::double_option",
58        skip_serializing_if = "Option::is_none"
59    )]
60    pub full_name: Option<Option<String>>,
61    /// Follower count for this profile
62    #[serde(rename = "follower_count", skip_serializing_if = "Option::is_none")]
63    pub follower_count: Option<i32>,
64    ///                  The title and company name of the user's current employment.             
65    #[serde(
66        rename = "occupation",
67        default,
68        with = "::serde_with::rust::double_option",
69        skip_serializing_if = "Option::is_none"
70    )]
71    pub occupation: Option<Option<String>>,
72    ///                  The tagline written by the user for his profile.             
73    #[serde(
74        rename = "headline",
75        default,
76        with = "::serde_with::rust::double_option",
77        skip_serializing_if = "Option::is_none"
78    )]
79    pub headline: Option<Option<String>>,
80    ///                  A blurb (longer than the tagline) written by the user for his profile.             
81    #[serde(
82        rename = "summary",
83        default,
84        with = "::serde_with::rust::double_option",
85        skip_serializing_if = "Option::is_none"
86    )]
87    pub summary: Option<Option<String>>,
88    ///                  The user's country of residence depicted by                 a 2-letter country code (ISO 3166-1 alpha-2).             
89    #[serde(
90        rename = "country",
91        default,
92        with = "::serde_with::rust::double_option",
93        skip_serializing_if = "Option::is_none"
94    )]
95    pub country: Option<Option<String>>,
96    /// The user's country of residence, in English words.
97    #[serde(
98        rename = "country_full_name",
99        default,
100        with = "::serde_with::rust::double_option",
101        skip_serializing_if = "Option::is_none"
102    )]
103    pub country_full_name: Option<Option<String>>,
104    /// The city that the user is living at.
105    #[serde(
106        rename = "city",
107        default,
108        with = "::serde_with::rust::double_option",
109        skip_serializing_if = "Option::is_none"
110    )]
111    pub city: Option<Option<String>>,
112    /// The state that the user is living at.
113    #[serde(
114        rename = "state",
115        default,
116        with = "::serde_with::rust::double_option",
117        skip_serializing_if = "Option::is_none"
118    )]
119    pub state: Option<Option<String>>,
120    /// The user's list of historic work experiences.
121    #[serde(rename = "experiences", skip_serializing_if = "Option::is_none")]
122    pub experiences: Option<Vec<crate::models::Experience>>,
123    /// The user's list of education background.
124    #[serde(rename = "education", skip_serializing_if = "Option::is_none")]
125    pub education: Option<Vec<crate::models::Education>>,
126    ///                  A list of languages that the user claims to be familiar with,                 and has added to his/her profile.                 Do note that we do not have the proficiency level as                 that data point is not available on a public LinkedIn profile.             
127    #[serde(rename = "languages", skip_serializing_if = "Option::is_none")]
128    pub languages: Option<Vec<String>>,
129    ///                  List of noteworthy organizations that this user is part of.             
130    #[serde(
131        rename = "accomplishment_organisations",
132        skip_serializing_if = "Option::is_none"
133    )]
134    pub accomplishment_organisations: Option<Vec<crate::models::AccomplishmentOrg>>,
135    ///                  List of noteworthy publications that this user has partook in.             
136    #[serde(
137        rename = "accomplishment_publications",
138        skip_serializing_if = "Option::is_none"
139    )]
140    pub accomplishment_publications: Option<Vec<crate::models::Publication>>,
141    ///                  List of noteworthy honours and awards that this user has won.             
142    #[serde(
143        rename = "accomplishment_honors_awards",
144        skip_serializing_if = "Option::is_none"
145    )]
146    pub accomplishment_honors_awards: Option<Vec<crate::models::HonourAward>>,
147    /// List of noteworthy patents won by this user.
148    #[serde(
149        rename = "accomplishment_patents",
150        skip_serializing_if = "Option::is_none"
151    )]
152    pub accomplishment_patents: Option<Vec<crate::models::Patent>>,
153    /// List of noteworthy courses partook by this user.
154    #[serde(
155        rename = "accomplishment_courses",
156        skip_serializing_if = "Option::is_none"
157    )]
158    pub accomplishment_courses: Option<Vec<crate::models::Course>>,
159    ///                  List of noteworthy projects undertaken by this user.             
160    #[serde(
161        rename = "accomplishment_projects",
162        skip_serializing_if = "Option::is_none"
163    )]
164    pub accomplishment_projects: Option<Vec<crate::models::Project>>,
165    ///                  List of noteworthy test scores accomplished by this user.             
166    #[serde(
167        rename = "accomplishment_test_scores",
168        skip_serializing_if = "Option::is_none"
169    )]
170    pub accomplishment_test_scores: Option<Vec<crate::models::TestScore>>,
171    /// List of historic volunteer work experiences.
172    #[serde(rename = "volunteer_work", skip_serializing_if = "Option::is_none")]
173    pub volunteer_work: Option<Vec<crate::models::VolunteeringExperience>>,
174    ///                  List of noteworthy certifications accomplished by this user.             
175    #[serde(rename = "certifications", skip_serializing_if = "Option::is_none")]
176    pub certifications: Option<Vec<crate::models::Certification>>,
177    /// Total *count* of LinkedIn connections.
178    #[serde(
179        rename = "connections",
180        default,
181        with = "::serde_with::rust::double_option",
182        skip_serializing_if = "Option::is_none"
183    )]
184    pub connections: Option<Option<i32>>,
185    ///                  A list of other LinkedIn profiles closely related to this user.             
186    #[serde(rename = "people_also_viewed", skip_serializing_if = "Option::is_none")]
187    pub people_also_viewed: Option<Vec<crate::models::PeopleAlsoViewed>>,
188    ///                  List of recommendations made by other users about this profile.             
189    #[serde(rename = "recommendations", skip_serializing_if = "Option::is_none")]
190    pub recommendations: Option<Vec<String>>,
191    /// A list of LinkedIn status activities.
192    #[serde(rename = "activities", skip_serializing_if = "Option::is_none")]
193    pub activities: Option<Vec<crate::models::Activity>>,
194    ///                  A list of other LinkedIn profiles with similar names.             
195    #[serde(
196        rename = "similarly_named_profiles",
197        skip_serializing_if = "Option::is_none"
198    )]
199    pub similarly_named_profiles: Option<Vec<crate::models::SimilarProfile>>,
200    ///                  A list of content-based articles posted by this user.             
201    #[serde(rename = "articles", skip_serializing_if = "Option::is_none")]
202    pub articles: Option<Vec<crate::models::Article>>,
203    ///                  A list of LinkedIn groups that this user is a part of.\",             
204    #[serde(rename = "groups", skip_serializing_if = "Option::is_none")]
205    pub groups: Option<Vec<crate::models::PersonGroup>>,
206    #[serde(rename = "phone_numbers", skip_serializing_if = "Option::is_none")]
207    pub phone_numbers: Option<Vec<String>>,
208    #[serde(
209        rename = "social_networking_services",
210        skip_serializing_if = "Option::is_none"
211    )]
212    pub social_networking_services: Option<Vec<crate::models::PersonSocialNetworkingService>>,
213    /// A list of keyword-based skills that this user boasts of on his LinkedIn profile.
214    #[serde(rename = "skills", skip_serializing_if = "Option::is_none")]
215    pub skills: Option<Vec<String>>,
216    #[serde(rename = "inferred_salary", skip_serializing_if = "Option::is_none")]
217    pub inferred_salary: Option<Box<crate::models::InferredSalary>>,
218    /// Gender of the user.
219    #[serde(
220        rename = "gender",
221        default,
222        with = "::serde_with::rust::double_option",
223        skip_serializing_if = "Option::is_none"
224    )]
225    pub gender: Option<Option<String>>,
226    #[serde(rename = "birth_date", skip_serializing_if = "Option::is_none")]
227    pub birth_date: Option<Box<crate::models::Date>>,
228    /// Industry that the user works in.
229    #[serde(
230        rename = "industry",
231        default,
232        with = "::serde_with::rust::double_option",
233        skip_serializing_if = "Option::is_none"
234    )]
235    pub industry: Option<Option<String>>,
236    #[serde(rename = "extra", skip_serializing_if = "Option::is_none")]
237    pub extra: Option<Box<crate::models::PersonExtra>>,
238    /// A list of interests that the user has.
239    #[serde(rename = "interests", skip_serializing_if = "Option::is_none")]
240    pub interests: Option<Vec<String>>,
241    /// A list of personal emails associated with this user.
242    #[serde(rename = "personal_emails", skip_serializing_if = "Option::is_none")]
243    pub personal_emails: Option<Vec<String>>,
244    /// A list of personal mobile phone numbers associated with this user.
245    #[serde(rename = "personal_numbers", skip_serializing_if = "Option::is_none")]
246    pub personal_numbers: Option<Vec<String>>,
247}
248
249impl PersonEndpointResponse {
250    pub fn new() -> PersonEndpointResponse {
251        PersonEndpointResponse {
252            public_identifier: None,
253            profile_pic_url: None,
254            background_cover_image_url: None,
255            first_name: None,
256            last_name: None,
257            full_name: None,
258            follower_count: None,
259            occupation: None,
260            headline: None,
261            summary: None,
262            country: None,
263            country_full_name: None,
264            city: None,
265            state: None,
266            experiences: None,
267            education: None,
268            languages: None,
269            accomplishment_organisations: None,
270            accomplishment_publications: None,
271            accomplishment_honors_awards: None,
272            accomplishment_patents: None,
273            accomplishment_courses: None,
274            accomplishment_projects: None,
275            accomplishment_test_scores: None,
276            volunteer_work: None,
277            certifications: None,
278            connections: None,
279            people_also_viewed: None,
280            recommendations: None,
281            activities: None,
282            similarly_named_profiles: None,
283            articles: None,
284            groups: None,
285            phone_numbers: None,
286            social_networking_services: None,
287            skills: None,
288            inferred_salary: None,
289            gender: None,
290            birth_date: None,
291            industry: None,
292            extra: None,
293            interests: None,
294            personal_emails: None,
295            personal_numbers: None,
296        }
297    }
298}