metaculus/apis/
projects_api.rs

1/*
2 * Metaculus API
3 *
4 * Welcome to the unofficial Rust client for the Metaculus API
5 *
6 * The version of the OpenAPI document: 1.0
7 * Contact: Benjamin Manns <opensource@benmanns.com>
8 * Generated by: https://openapi-generator.tech
9 */
10
11use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16/// struct for passing parameters to the method [`projects_create`]
17#[derive(Clone, Debug)]
18pub struct ProjectsCreateParams {
19    pub project_update: crate::models::ProjectUpdate,
20}
21
22/// struct for passing parameters to the method [`projects_follow_create`]
23#[derive(Clone, Debug)]
24pub struct ProjectsFollowCreateParams {
25    /// A unique integer value identifying this project.
26    pub id: i32,
27    pub project: crate::models::Project,
28}
29
30/// struct for passing parameters to the method [`projects_invite_members_create`]
31#[derive(Clone, Debug)]
32pub struct ProjectsInviteMembersCreateParams {
33    /// A unique integer value identifying this project.
34    pub id: i32,
35    pub project: crate::models::Project,
36}
37
38/// struct for passing parameters to the method [`projects_is_following_retrieve`]
39#[derive(Clone, Debug)]
40pub struct ProjectsIsFollowingRetrieveParams {
41    /// A unique integer value identifying this project.
42    pub id: i32,
43}
44
45/// struct for passing parameters to the method [`projects_join_create`]
46#[derive(Clone, Debug)]
47pub struct ProjectsJoinCreateParams {
48    /// A unique integer value identifying this project.
49    pub id: i32,
50    pub project: crate::models::Project,
51}
52
53/// struct for passing parameters to the method [`projects_leave_create`]
54#[derive(Clone, Debug)]
55pub struct ProjectsLeaveCreateParams {
56    /// A unique integer value identifying this project.
57    pub id: i32,
58    pub project: crate::models::Project,
59}
60
61/// struct for passing parameters to the method [`projects_list`]
62#[derive(Clone, Debug)]
63pub struct ProjectsListParams {
64    /// Number of results to return per page.
65    pub limit: Option<i32>,
66    /// The initial index from which to return the results.
67    pub offset: Option<i32>,
68}
69
70/// struct for passing parameters to the method [`projects_members_create`]
71#[derive(Clone, Debug)]
72pub struct ProjectsMembersCreateParams {
73    /// A unique integer value identifying this project.
74    pub id: i32,
75    pub user_id: String,
76    pub project: crate::models::Project,
77}
78
79/// struct for passing parameters to the method [`projects_members_destroy`]
80#[derive(Clone, Debug)]
81pub struct ProjectsMembersDestroyParams {
82    /// A unique integer value identifying this project.
83    pub id: i32,
84    pub user_id: String,
85}
86
87/// struct for passing parameters to the method [`projects_members_partial_update`]
88#[derive(Clone, Debug)]
89pub struct ProjectsMembersPartialUpdateParams {
90    /// A unique integer value identifying this project.
91    pub id: i32,
92    pub user_id: String,
93    pub patched_project: Option<crate::models::PatchedProject>,
94}
95
96/// struct for passing parameters to the method [`projects_members_update`]
97#[derive(Clone, Debug)]
98pub struct ProjectsMembersUpdateParams {
99    /// A unique integer value identifying this project.
100    pub id: i32,
101    pub user_id: String,
102    pub project: crate::models::Project,
103}
104
105/// struct for passing parameters to the method [`projects_partial_update`]
106#[derive(Clone, Debug)]
107pub struct ProjectsPartialUpdateParams {
108    /// A unique integer value identifying this project.
109    pub id: i32,
110    pub patched_project: Option<crate::models::PatchedProject>,
111}
112
113/// struct for passing parameters to the method [`projects_personal_stats_retrieve`]
114#[derive(Clone, Debug)]
115pub struct ProjectsPersonalStatsRetrieveParams {
116    /// A unique integer value identifying this project.
117    pub id: i32,
118}
119
120/// struct for passing parameters to the method [`projects_register_create`]
121#[derive(Clone, Debug)]
122pub struct ProjectsRegisterCreateParams {
123    /// A unique integer value identifying this project.
124    pub id: i32,
125    pub project: crate::models::Project,
126}
127
128/// struct for passing parameters to the method [`projects_registered_retrieve`]
129#[derive(Clone, Debug)]
130pub struct ProjectsRegisteredRetrieveParams {
131    /// A unique integer value identifying this project.
132    pub id: i32,
133}
134
135/// struct for passing parameters to the method [`projects_retrieve`]
136#[derive(Clone, Debug)]
137pub struct ProjectsRetrieveParams {
138    /// A unique integer value identifying this project.
139    pub id: i32,
140}
141
142/// struct for passing parameters to the method [`projects_unfollow_create`]
143#[derive(Clone, Debug)]
144pub struct ProjectsUnfollowCreateParams {
145    /// A unique integer value identifying this project.
146    pub id: i32,
147    pub project: crate::models::Project,
148}
149
150/// struct for passing parameters to the method [`projects_update`]
151#[derive(Clone, Debug)]
152pub struct ProjectsUpdateParams {
153    /// A unique integer value identifying this project.
154    pub id: i32,
155    pub project_update: crate::models::ProjectUpdate,
156}
157
158/// struct for typed errors of method [`projects_create`]
159#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum ProjectsCreateError {
162    UnknownValue(serde_json::Value),
163}
164
165/// struct for typed errors of method [`projects_follow_create`]
166#[derive(Debug, Clone, Serialize, Deserialize)]
167#[serde(untagged)]
168pub enum ProjectsFollowCreateError {
169    UnknownValue(serde_json::Value),
170}
171
172/// struct for typed errors of method [`projects_invite_members_create`]
173#[derive(Debug, Clone, Serialize, Deserialize)]
174#[serde(untagged)]
175pub enum ProjectsInviteMembersCreateError {
176    UnknownValue(serde_json::Value),
177}
178
179/// struct for typed errors of method [`projects_is_following_retrieve`]
180#[derive(Debug, Clone, Serialize, Deserialize)]
181#[serde(untagged)]
182pub enum ProjectsIsFollowingRetrieveError {
183    UnknownValue(serde_json::Value),
184}
185
186/// struct for typed errors of method [`projects_join_create`]
187#[derive(Debug, Clone, Serialize, Deserialize)]
188#[serde(untagged)]
189pub enum ProjectsJoinCreateError {
190    UnknownValue(serde_json::Value),
191}
192
193/// struct for typed errors of method [`projects_leave_create`]
194#[derive(Debug, Clone, Serialize, Deserialize)]
195#[serde(untagged)]
196pub enum ProjectsLeaveCreateError {
197    UnknownValue(serde_json::Value),
198}
199
200/// struct for typed errors of method [`projects_list`]
201#[derive(Debug, Clone, Serialize, Deserialize)]
202#[serde(untagged)]
203pub enum ProjectsListError {
204    UnknownValue(serde_json::Value),
205}
206
207/// struct for typed errors of method [`projects_members_create`]
208#[derive(Debug, Clone, Serialize, Deserialize)]
209#[serde(untagged)]
210pub enum ProjectsMembersCreateError {
211    UnknownValue(serde_json::Value),
212}
213
214/// struct for typed errors of method [`projects_members_destroy`]
215#[derive(Debug, Clone, Serialize, Deserialize)]
216#[serde(untagged)]
217pub enum ProjectsMembersDestroyError {
218    UnknownValue(serde_json::Value),
219}
220
221/// struct for typed errors of method [`projects_members_partial_update`]
222#[derive(Debug, Clone, Serialize, Deserialize)]
223#[serde(untagged)]
224pub enum ProjectsMembersPartialUpdateError {
225    UnknownValue(serde_json::Value),
226}
227
228/// struct for typed errors of method [`projects_members_update`]
229#[derive(Debug, Clone, Serialize, Deserialize)]
230#[serde(untagged)]
231pub enum ProjectsMembersUpdateError {
232    UnknownValue(serde_json::Value),
233}
234
235/// struct for typed errors of method [`projects_partial_update`]
236#[derive(Debug, Clone, Serialize, Deserialize)]
237#[serde(untagged)]
238pub enum ProjectsPartialUpdateError {
239    UnknownValue(serde_json::Value),
240}
241
242/// struct for typed errors of method [`projects_personal_stats_retrieve`]
243#[derive(Debug, Clone, Serialize, Deserialize)]
244#[serde(untagged)]
245pub enum ProjectsPersonalStatsRetrieveError {
246    UnknownValue(serde_json::Value),
247}
248
249/// struct for typed errors of method [`projects_register_create`]
250#[derive(Debug, Clone, Serialize, Deserialize)]
251#[serde(untagged)]
252pub enum ProjectsRegisterCreateError {
253    UnknownValue(serde_json::Value),
254}
255
256/// struct for typed errors of method [`projects_registered_retrieve`]
257#[derive(Debug, Clone, Serialize, Deserialize)]
258#[serde(untagged)]
259pub enum ProjectsRegisteredRetrieveError {
260    UnknownValue(serde_json::Value),
261}
262
263/// struct for typed errors of method [`projects_retrieve`]
264#[derive(Debug, Clone, Serialize, Deserialize)]
265#[serde(untagged)]
266pub enum ProjectsRetrieveError {
267    UnknownValue(serde_json::Value),
268}
269
270/// struct for typed errors of method [`projects_unfollow_create`]
271#[derive(Debug, Clone, Serialize, Deserialize)]
272#[serde(untagged)]
273pub enum ProjectsUnfollowCreateError {
274    UnknownValue(serde_json::Value),
275}
276
277/// struct for typed errors of method [`projects_update`]
278#[derive(Debug, Clone, Serialize, Deserialize)]
279#[serde(untagged)]
280pub enum ProjectsUpdateError {
281    UnknownValue(serde_json::Value),
282}
283
284pub async fn projects_create(
285    configuration: &configuration::Configuration,
286    params: ProjectsCreateParams,
287) -> Result<crate::models::ProjectUpdate, Error<ProjectsCreateError>> {
288    let local_var_configuration = configuration;
289
290    // unbox the parameters
291    let project_update = params.project_update;
292
293    let local_var_client = &local_var_configuration.client;
294
295    let local_var_uri_str = format!("{}/api2/projects/", local_var_configuration.base_path);
296    let mut local_var_req_builder =
297        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
298
299    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
300        local_var_req_builder =
301            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
302    }
303    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
304        local_var_req_builder = local_var_req_builder
305            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
306    };
307    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
308        local_var_req_builder =
309            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
310    };
311    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
312        let local_var_key = local_var_apikey.key.clone();
313        let local_var_value = match local_var_apikey.prefix {
314            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
315            None => local_var_key,
316        };
317        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
318    };
319    local_var_req_builder = local_var_req_builder.json(&project_update);
320
321    let local_var_req = local_var_req_builder.build()?;
322    let local_var_resp = local_var_client.execute(local_var_req).await?;
323
324    let local_var_status = local_var_resp.status();
325    let local_var_content = local_var_resp.text().await?;
326
327    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
328        serde_json::from_str(&local_var_content).map_err(Error::from)
329    } else {
330        let local_var_entity: Option<ProjectsCreateError> =
331            serde_json::from_str(&local_var_content).ok();
332        let local_var_error = ResponseContent {
333            status: local_var_status,
334            content: local_var_content,
335            entity: local_var_entity,
336        };
337        Err(Error::ResponseError(local_var_error))
338    }
339}
340
341pub async fn projects_follow_create(
342    configuration: &configuration::Configuration,
343    params: ProjectsFollowCreateParams,
344) -> Result<crate::models::Project, Error<ProjectsFollowCreateError>> {
345    let local_var_configuration = configuration;
346
347    // unbox the parameters
348    let id = params.id;
349    let project = params.project;
350
351    let local_var_client = &local_var_configuration.client;
352
353    let local_var_uri_str = format!(
354        "{}/api2/projects/{id}/follow/",
355        local_var_configuration.base_path,
356        id = id
357    );
358    let mut local_var_req_builder =
359        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
360
361    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
362        local_var_req_builder =
363            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
364    }
365    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
366        local_var_req_builder = local_var_req_builder
367            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
368    };
369    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
370        local_var_req_builder =
371            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
372    };
373    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
374        let local_var_key = local_var_apikey.key.clone();
375        let local_var_value = match local_var_apikey.prefix {
376            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
377            None => local_var_key,
378        };
379        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
380    };
381    local_var_req_builder = local_var_req_builder.json(&project);
382
383    let local_var_req = local_var_req_builder.build()?;
384    let local_var_resp = local_var_client.execute(local_var_req).await?;
385
386    let local_var_status = local_var_resp.status();
387    let local_var_content = local_var_resp.text().await?;
388
389    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
390        serde_json::from_str(&local_var_content).map_err(Error::from)
391    } else {
392        let local_var_entity: Option<ProjectsFollowCreateError> =
393            serde_json::from_str(&local_var_content).ok();
394        let local_var_error = ResponseContent {
395            status: local_var_status,
396            content: local_var_content,
397            entity: local_var_entity,
398        };
399        Err(Error::ResponseError(local_var_error))
400    }
401}
402
403pub async fn projects_invite_members_create(
404    configuration: &configuration::Configuration,
405    params: ProjectsInviteMembersCreateParams,
406) -> Result<crate::models::Project, Error<ProjectsInviteMembersCreateError>> {
407    let local_var_configuration = configuration;
408
409    // unbox the parameters
410    let id = params.id;
411    let project = params.project;
412
413    let local_var_client = &local_var_configuration.client;
414
415    let local_var_uri_str = format!(
416        "{}/api2/projects/{id}/invite-members/",
417        local_var_configuration.base_path,
418        id = id
419    );
420    let mut local_var_req_builder =
421        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
422
423    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
424        local_var_req_builder =
425            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
426    }
427    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
428        local_var_req_builder = local_var_req_builder
429            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
430    };
431    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
432        local_var_req_builder =
433            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
434    };
435    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
436        let local_var_key = local_var_apikey.key.clone();
437        let local_var_value = match local_var_apikey.prefix {
438            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
439            None => local_var_key,
440        };
441        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
442    };
443    local_var_req_builder = local_var_req_builder.json(&project);
444
445    let local_var_req = local_var_req_builder.build()?;
446    let local_var_resp = local_var_client.execute(local_var_req).await?;
447
448    let local_var_status = local_var_resp.status();
449    let local_var_content = local_var_resp.text().await?;
450
451    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
452        serde_json::from_str(&local_var_content).map_err(Error::from)
453    } else {
454        let local_var_entity: Option<ProjectsInviteMembersCreateError> =
455            serde_json::from_str(&local_var_content).ok();
456        let local_var_error = ResponseContent {
457            status: local_var_status,
458            content: local_var_content,
459            entity: local_var_entity,
460        };
461        Err(Error::ResponseError(local_var_error))
462    }
463}
464
465pub async fn projects_is_following_retrieve(
466    configuration: &configuration::Configuration,
467    params: ProjectsIsFollowingRetrieveParams,
468) -> Result<crate::models::Project, Error<ProjectsIsFollowingRetrieveError>> {
469    let local_var_configuration = configuration;
470
471    // unbox the parameters
472    let id = params.id;
473
474    let local_var_client = &local_var_configuration.client;
475
476    let local_var_uri_str = format!(
477        "{}/api2/projects/{id}/is-following/",
478        local_var_configuration.base_path,
479        id = id
480    );
481    let mut local_var_req_builder =
482        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
483
484    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
485        local_var_req_builder =
486            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
487    }
488    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
489        local_var_req_builder = local_var_req_builder
490            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
491    };
492    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
493        local_var_req_builder =
494            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
495    };
496    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
497        let local_var_key = local_var_apikey.key.clone();
498        let local_var_value = match local_var_apikey.prefix {
499            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
500            None => local_var_key,
501        };
502        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
503    };
504
505    let local_var_req = local_var_req_builder.build()?;
506    let local_var_resp = local_var_client.execute(local_var_req).await?;
507
508    let local_var_status = local_var_resp.status();
509    let local_var_content = local_var_resp.text().await?;
510
511    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
512        serde_json::from_str(&local_var_content).map_err(Error::from)
513    } else {
514        let local_var_entity: Option<ProjectsIsFollowingRetrieveError> =
515            serde_json::from_str(&local_var_content).ok();
516        let local_var_error = ResponseContent {
517            status: local_var_status,
518            content: local_var_content,
519            entity: local_var_entity,
520        };
521        Err(Error::ResponseError(local_var_error))
522    }
523}
524
525pub async fn projects_join_create(
526    configuration: &configuration::Configuration,
527    params: ProjectsJoinCreateParams,
528) -> Result<crate::models::Project, Error<ProjectsJoinCreateError>> {
529    let local_var_configuration = configuration;
530
531    // unbox the parameters
532    let id = params.id;
533    let project = params.project;
534
535    let local_var_client = &local_var_configuration.client;
536
537    let local_var_uri_str = format!(
538        "{}/api2/projects/{id}/join/",
539        local_var_configuration.base_path,
540        id = id
541    );
542    let mut local_var_req_builder =
543        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
544
545    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
546        local_var_req_builder =
547            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
548    }
549    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
550        local_var_req_builder = local_var_req_builder
551            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
552    };
553    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
554        local_var_req_builder =
555            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
556    };
557    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
558        let local_var_key = local_var_apikey.key.clone();
559        let local_var_value = match local_var_apikey.prefix {
560            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
561            None => local_var_key,
562        };
563        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
564    };
565    local_var_req_builder = local_var_req_builder.json(&project);
566
567    let local_var_req = local_var_req_builder.build()?;
568    let local_var_resp = local_var_client.execute(local_var_req).await?;
569
570    let local_var_status = local_var_resp.status();
571    let local_var_content = local_var_resp.text().await?;
572
573    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
574        serde_json::from_str(&local_var_content).map_err(Error::from)
575    } else {
576        let local_var_entity: Option<ProjectsJoinCreateError> =
577            serde_json::from_str(&local_var_content).ok();
578        let local_var_error = ResponseContent {
579            status: local_var_status,
580            content: local_var_content,
581            entity: local_var_entity,
582        };
583        Err(Error::ResponseError(local_var_error))
584    }
585}
586
587pub async fn projects_leave_create(
588    configuration: &configuration::Configuration,
589    params: ProjectsLeaveCreateParams,
590) -> Result<crate::models::Project, Error<ProjectsLeaveCreateError>> {
591    let local_var_configuration = configuration;
592
593    // unbox the parameters
594    let id = params.id;
595    let project = params.project;
596
597    let local_var_client = &local_var_configuration.client;
598
599    let local_var_uri_str = format!(
600        "{}/api2/projects/{id}/leave/",
601        local_var_configuration.base_path,
602        id = id
603    );
604    let mut local_var_req_builder =
605        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
606
607    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
608        local_var_req_builder =
609            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
610    }
611    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
612        local_var_req_builder = local_var_req_builder
613            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
614    };
615    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
616        local_var_req_builder =
617            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
618    };
619    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
620        let local_var_key = local_var_apikey.key.clone();
621        let local_var_value = match local_var_apikey.prefix {
622            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
623            None => local_var_key,
624        };
625        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
626    };
627    local_var_req_builder = local_var_req_builder.json(&project);
628
629    let local_var_req = local_var_req_builder.build()?;
630    let local_var_resp = local_var_client.execute(local_var_req).await?;
631
632    let local_var_status = local_var_resp.status();
633    let local_var_content = local_var_resp.text().await?;
634
635    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
636        serde_json::from_str(&local_var_content).map_err(Error::from)
637    } else {
638        let local_var_entity: Option<ProjectsLeaveCreateError> =
639            serde_json::from_str(&local_var_content).ok();
640        let local_var_error = ResponseContent {
641            status: local_var_status,
642            content: local_var_content,
643            entity: local_var_entity,
644        };
645        Err(Error::ResponseError(local_var_error))
646    }
647}
648
649pub async fn projects_list(
650    configuration: &configuration::Configuration,
651    params: ProjectsListParams,
652) -> Result<crate::models::PaginatedProjectList, Error<ProjectsListError>> {
653    let local_var_configuration = configuration;
654
655    // unbox the parameters
656    let limit = params.limit;
657    let offset = params.offset;
658
659    let local_var_client = &local_var_configuration.client;
660
661    let local_var_uri_str = format!("{}/api2/projects/", local_var_configuration.base_path);
662    let mut local_var_req_builder =
663        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
664
665    if let Some(ref local_var_str) = limit {
666        local_var_req_builder =
667            local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
668    }
669    if let Some(ref local_var_str) = offset {
670        local_var_req_builder =
671            local_var_req_builder.query(&[("offset", &local_var_str.to_string())]);
672    }
673    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
674        local_var_req_builder =
675            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
676    }
677    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
678        local_var_req_builder = local_var_req_builder
679            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
680    };
681    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
682        local_var_req_builder =
683            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
684    };
685    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
686        let local_var_key = local_var_apikey.key.clone();
687        let local_var_value = match local_var_apikey.prefix {
688            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
689            None => local_var_key,
690        };
691        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
692    };
693
694    let local_var_req = local_var_req_builder.build()?;
695    let local_var_resp = local_var_client.execute(local_var_req).await?;
696
697    let local_var_status = local_var_resp.status();
698    let local_var_content = local_var_resp.text().await?;
699
700    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
701        serde_json::from_str(&local_var_content).map_err(Error::from)
702    } else {
703        let local_var_entity: Option<ProjectsListError> =
704            serde_json::from_str(&local_var_content).ok();
705        let local_var_error = ResponseContent {
706            status: local_var_status,
707            content: local_var_content,
708            entity: local_var_entity,
709        };
710        Err(Error::ResponseError(local_var_error))
711    }
712}
713
714pub async fn projects_members_create(
715    configuration: &configuration::Configuration,
716    params: ProjectsMembersCreateParams,
717) -> Result<crate::models::Project, Error<ProjectsMembersCreateError>> {
718    let local_var_configuration = configuration;
719
720    // unbox the parameters
721    let id = params.id;
722    let user_id = params.user_id;
723    let project = params.project;
724
725    let local_var_client = &local_var_configuration.client;
726
727    let local_var_uri_str = format!(
728        "{}/api2/projects/{id}/members/{user_id}/",
729        local_var_configuration.base_path,
730        id = id,
731        user_id = crate::apis::urlencode(user_id)
732    );
733    let mut local_var_req_builder =
734        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
735
736    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
737        local_var_req_builder =
738            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
739    }
740    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
741        local_var_req_builder = local_var_req_builder
742            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
743    };
744    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
745        local_var_req_builder =
746            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
747    };
748    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
749        let local_var_key = local_var_apikey.key.clone();
750        let local_var_value = match local_var_apikey.prefix {
751            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
752            None => local_var_key,
753        };
754        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
755    };
756    local_var_req_builder = local_var_req_builder.json(&project);
757
758    let local_var_req = local_var_req_builder.build()?;
759    let local_var_resp = local_var_client.execute(local_var_req).await?;
760
761    let local_var_status = local_var_resp.status();
762    let local_var_content = local_var_resp.text().await?;
763
764    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
765        serde_json::from_str(&local_var_content).map_err(Error::from)
766    } else {
767        let local_var_entity: Option<ProjectsMembersCreateError> =
768            serde_json::from_str(&local_var_content).ok();
769        let local_var_error = ResponseContent {
770            status: local_var_status,
771            content: local_var_content,
772            entity: local_var_entity,
773        };
774        Err(Error::ResponseError(local_var_error))
775    }
776}
777
778pub async fn projects_members_destroy(
779    configuration: &configuration::Configuration,
780    params: ProjectsMembersDestroyParams,
781) -> Result<(), Error<ProjectsMembersDestroyError>> {
782    let local_var_configuration = configuration;
783
784    // unbox the parameters
785    let id = params.id;
786    let user_id = params.user_id;
787
788    let local_var_client = &local_var_configuration.client;
789
790    let local_var_uri_str = format!(
791        "{}/api2/projects/{id}/members/{user_id}/",
792        local_var_configuration.base_path,
793        id = id,
794        user_id = crate::apis::urlencode(user_id)
795    );
796    let mut local_var_req_builder =
797        local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
798
799    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
800        local_var_req_builder =
801            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
802    }
803    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
804        local_var_req_builder = local_var_req_builder
805            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
806    };
807    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
808        local_var_req_builder =
809            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
810    };
811    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
812        let local_var_key = local_var_apikey.key.clone();
813        let local_var_value = match local_var_apikey.prefix {
814            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
815            None => local_var_key,
816        };
817        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
818    };
819
820    let local_var_req = local_var_req_builder.build()?;
821    let local_var_resp = local_var_client.execute(local_var_req).await?;
822
823    let local_var_status = local_var_resp.status();
824    let local_var_content = local_var_resp.text().await?;
825
826    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
827        Ok(())
828    } else {
829        let local_var_entity: Option<ProjectsMembersDestroyError> =
830            serde_json::from_str(&local_var_content).ok();
831        let local_var_error = ResponseContent {
832            status: local_var_status,
833            content: local_var_content,
834            entity: local_var_entity,
835        };
836        Err(Error::ResponseError(local_var_error))
837    }
838}
839
840pub async fn projects_members_partial_update(
841    configuration: &configuration::Configuration,
842    params: ProjectsMembersPartialUpdateParams,
843) -> Result<crate::models::Project, Error<ProjectsMembersPartialUpdateError>> {
844    let local_var_configuration = configuration;
845
846    // unbox the parameters
847    let id = params.id;
848    let user_id = params.user_id;
849    let patched_project = params.patched_project;
850
851    let local_var_client = &local_var_configuration.client;
852
853    let local_var_uri_str = format!(
854        "{}/api2/projects/{id}/members/{user_id}/",
855        local_var_configuration.base_path,
856        id = id,
857        user_id = crate::apis::urlencode(user_id)
858    );
859    let mut local_var_req_builder =
860        local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
861
862    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
863        local_var_req_builder =
864            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
865    }
866    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
867        local_var_req_builder = local_var_req_builder
868            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
869    };
870    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
871        local_var_req_builder =
872            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
873    };
874    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
875        let local_var_key = local_var_apikey.key.clone();
876        let local_var_value = match local_var_apikey.prefix {
877            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
878            None => local_var_key,
879        };
880        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
881    };
882    local_var_req_builder = local_var_req_builder.json(&patched_project);
883
884    let local_var_req = local_var_req_builder.build()?;
885    let local_var_resp = local_var_client.execute(local_var_req).await?;
886
887    let local_var_status = local_var_resp.status();
888    let local_var_content = local_var_resp.text().await?;
889
890    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
891        serde_json::from_str(&local_var_content).map_err(Error::from)
892    } else {
893        let local_var_entity: Option<ProjectsMembersPartialUpdateError> =
894            serde_json::from_str(&local_var_content).ok();
895        let local_var_error = ResponseContent {
896            status: local_var_status,
897            content: local_var_content,
898            entity: local_var_entity,
899        };
900        Err(Error::ResponseError(local_var_error))
901    }
902}
903
904pub async fn projects_members_update(
905    configuration: &configuration::Configuration,
906    params: ProjectsMembersUpdateParams,
907) -> Result<crate::models::Project, Error<ProjectsMembersUpdateError>> {
908    let local_var_configuration = configuration;
909
910    // unbox the parameters
911    let id = params.id;
912    let user_id = params.user_id;
913    let project = params.project;
914
915    let local_var_client = &local_var_configuration.client;
916
917    let local_var_uri_str = format!(
918        "{}/api2/projects/{id}/members/{user_id}/",
919        local_var_configuration.base_path,
920        id = id,
921        user_id = crate::apis::urlencode(user_id)
922    );
923    let mut local_var_req_builder =
924        local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
925
926    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
927        local_var_req_builder =
928            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
929    }
930    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
931        local_var_req_builder = local_var_req_builder
932            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
933    };
934    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
935        local_var_req_builder =
936            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
937    };
938    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
939        let local_var_key = local_var_apikey.key.clone();
940        let local_var_value = match local_var_apikey.prefix {
941            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
942            None => local_var_key,
943        };
944        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
945    };
946    local_var_req_builder = local_var_req_builder.json(&project);
947
948    let local_var_req = local_var_req_builder.build()?;
949    let local_var_resp = local_var_client.execute(local_var_req).await?;
950
951    let local_var_status = local_var_resp.status();
952    let local_var_content = local_var_resp.text().await?;
953
954    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
955        serde_json::from_str(&local_var_content).map_err(Error::from)
956    } else {
957        let local_var_entity: Option<ProjectsMembersUpdateError> =
958            serde_json::from_str(&local_var_content).ok();
959        let local_var_error = ResponseContent {
960            status: local_var_status,
961            content: local_var_content,
962            entity: local_var_entity,
963        };
964        Err(Error::ResponseError(local_var_error))
965    }
966}
967
968pub async fn projects_partial_update(
969    configuration: &configuration::Configuration,
970    params: ProjectsPartialUpdateParams,
971) -> Result<crate::models::Project, Error<ProjectsPartialUpdateError>> {
972    let local_var_configuration = configuration;
973
974    // unbox the parameters
975    let id = params.id;
976    let patched_project = params.patched_project;
977
978    let local_var_client = &local_var_configuration.client;
979
980    let local_var_uri_str = format!(
981        "{}/api2/projects/{id}/",
982        local_var_configuration.base_path,
983        id = id
984    );
985    let mut local_var_req_builder =
986        local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
987
988    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
989        local_var_req_builder =
990            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
991    }
992    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
993        local_var_req_builder = local_var_req_builder
994            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
995    };
996    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
997        local_var_req_builder =
998            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
999    };
1000    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1001        let local_var_key = local_var_apikey.key.clone();
1002        let local_var_value = match local_var_apikey.prefix {
1003            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1004            None => local_var_key,
1005        };
1006        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1007    };
1008    local_var_req_builder = local_var_req_builder.json(&patched_project);
1009
1010    let local_var_req = local_var_req_builder.build()?;
1011    let local_var_resp = local_var_client.execute(local_var_req).await?;
1012
1013    let local_var_status = local_var_resp.status();
1014    let local_var_content = local_var_resp.text().await?;
1015
1016    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1017        serde_json::from_str(&local_var_content).map_err(Error::from)
1018    } else {
1019        let local_var_entity: Option<ProjectsPartialUpdateError> =
1020            serde_json::from_str(&local_var_content).ok();
1021        let local_var_error = ResponseContent {
1022            status: local_var_status,
1023            content: local_var_content,
1024            entity: local_var_entity,
1025        };
1026        Err(Error::ResponseError(local_var_error))
1027    }
1028}
1029
1030pub async fn projects_personal_stats_retrieve(
1031    configuration: &configuration::Configuration,
1032    params: ProjectsPersonalStatsRetrieveParams,
1033) -> Result<crate::models::Project, Error<ProjectsPersonalStatsRetrieveError>> {
1034    let local_var_configuration = configuration;
1035
1036    // unbox the parameters
1037    let id = params.id;
1038
1039    let local_var_client = &local_var_configuration.client;
1040
1041    let local_var_uri_str = format!(
1042        "{}/api2/projects/{id}/personal-stats/",
1043        local_var_configuration.base_path,
1044        id = id
1045    );
1046    let mut local_var_req_builder =
1047        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1048
1049    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1050        local_var_req_builder =
1051            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1052    }
1053    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
1054        local_var_req_builder = local_var_req_builder
1055            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
1056    };
1057    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
1058        local_var_req_builder =
1059            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
1060    };
1061    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1062        let local_var_key = local_var_apikey.key.clone();
1063        let local_var_value = match local_var_apikey.prefix {
1064            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1065            None => local_var_key,
1066        };
1067        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1068    };
1069
1070    let local_var_req = local_var_req_builder.build()?;
1071    let local_var_resp = local_var_client.execute(local_var_req).await?;
1072
1073    let local_var_status = local_var_resp.status();
1074    let local_var_content = local_var_resp.text().await?;
1075
1076    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1077        serde_json::from_str(&local_var_content).map_err(Error::from)
1078    } else {
1079        let local_var_entity: Option<ProjectsPersonalStatsRetrieveError> =
1080            serde_json::from_str(&local_var_content).ok();
1081        let local_var_error = ResponseContent {
1082            status: local_var_status,
1083            content: local_var_content,
1084            entity: local_var_entity,
1085        };
1086        Err(Error::ResponseError(local_var_error))
1087    }
1088}
1089
1090pub async fn projects_register_create(
1091    configuration: &configuration::Configuration,
1092    params: ProjectsRegisterCreateParams,
1093) -> Result<crate::models::Project, Error<ProjectsRegisterCreateError>> {
1094    let local_var_configuration = configuration;
1095
1096    // unbox the parameters
1097    let id = params.id;
1098    let project = params.project;
1099
1100    let local_var_client = &local_var_configuration.client;
1101
1102    let local_var_uri_str = format!(
1103        "{}/api2/projects/{id}/register/",
1104        local_var_configuration.base_path,
1105        id = id
1106    );
1107    let mut local_var_req_builder =
1108        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
1109
1110    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1111        local_var_req_builder =
1112            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1113    }
1114    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
1115        local_var_req_builder = local_var_req_builder
1116            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
1117    };
1118    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
1119        local_var_req_builder =
1120            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
1121    };
1122    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1123        let local_var_key = local_var_apikey.key.clone();
1124        let local_var_value = match local_var_apikey.prefix {
1125            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1126            None => local_var_key,
1127        };
1128        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1129    };
1130    local_var_req_builder = local_var_req_builder.json(&project);
1131
1132    let local_var_req = local_var_req_builder.build()?;
1133    let local_var_resp = local_var_client.execute(local_var_req).await?;
1134
1135    let local_var_status = local_var_resp.status();
1136    let local_var_content = local_var_resp.text().await?;
1137
1138    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1139        serde_json::from_str(&local_var_content).map_err(Error::from)
1140    } else {
1141        let local_var_entity: Option<ProjectsRegisterCreateError> =
1142            serde_json::from_str(&local_var_content).ok();
1143        let local_var_error = ResponseContent {
1144            status: local_var_status,
1145            content: local_var_content,
1146            entity: local_var_entity,
1147        };
1148        Err(Error::ResponseError(local_var_error))
1149    }
1150}
1151
1152pub async fn projects_registered_retrieve(
1153    configuration: &configuration::Configuration,
1154    params: ProjectsRegisteredRetrieveParams,
1155) -> Result<crate::models::Project, Error<ProjectsRegisteredRetrieveError>> {
1156    let local_var_configuration = configuration;
1157
1158    // unbox the parameters
1159    let id = params.id;
1160
1161    let local_var_client = &local_var_configuration.client;
1162
1163    let local_var_uri_str = format!(
1164        "{}/api2/projects/{id}/registered/",
1165        local_var_configuration.base_path,
1166        id = id
1167    );
1168    let mut local_var_req_builder =
1169        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1170
1171    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1172        local_var_req_builder =
1173            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1174    }
1175    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
1176        local_var_req_builder = local_var_req_builder
1177            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
1178    };
1179    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
1180        local_var_req_builder =
1181            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
1182    };
1183    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1184        let local_var_key = local_var_apikey.key.clone();
1185        let local_var_value = match local_var_apikey.prefix {
1186            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1187            None => local_var_key,
1188        };
1189        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1190    };
1191
1192    let local_var_req = local_var_req_builder.build()?;
1193    let local_var_resp = local_var_client.execute(local_var_req).await?;
1194
1195    let local_var_status = local_var_resp.status();
1196    let local_var_content = local_var_resp.text().await?;
1197
1198    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1199        serde_json::from_str(&local_var_content).map_err(Error::from)
1200    } else {
1201        let local_var_entity: Option<ProjectsRegisteredRetrieveError> =
1202            serde_json::from_str(&local_var_content).ok();
1203        let local_var_error = ResponseContent {
1204            status: local_var_status,
1205            content: local_var_content,
1206            entity: local_var_entity,
1207        };
1208        Err(Error::ResponseError(local_var_error))
1209    }
1210}
1211
1212pub async fn projects_retrieve(
1213    configuration: &configuration::Configuration,
1214    params: ProjectsRetrieveParams,
1215) -> Result<crate::models::ProjectDetail, Error<ProjectsRetrieveError>> {
1216    let local_var_configuration = configuration;
1217
1218    // unbox the parameters
1219    let id = params.id;
1220
1221    let local_var_client = &local_var_configuration.client;
1222
1223    let local_var_uri_str = format!(
1224        "{}/api2/projects/{id}/",
1225        local_var_configuration.base_path,
1226        id = id
1227    );
1228    let mut local_var_req_builder =
1229        local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
1230
1231    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1232        local_var_req_builder =
1233            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1234    }
1235    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
1236        local_var_req_builder = local_var_req_builder
1237            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
1238    };
1239    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
1240        local_var_req_builder =
1241            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
1242    };
1243    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1244        let local_var_key = local_var_apikey.key.clone();
1245        let local_var_value = match local_var_apikey.prefix {
1246            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1247            None => local_var_key,
1248        };
1249        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1250    };
1251
1252    let local_var_req = local_var_req_builder.build()?;
1253    let local_var_resp = local_var_client.execute(local_var_req).await?;
1254
1255    let local_var_status = local_var_resp.status();
1256    let local_var_content = local_var_resp.text().await?;
1257
1258    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1259        serde_json::from_str(&local_var_content).map_err(Error::from)
1260    } else {
1261        let local_var_entity: Option<ProjectsRetrieveError> =
1262            serde_json::from_str(&local_var_content).ok();
1263        let local_var_error = ResponseContent {
1264            status: local_var_status,
1265            content: local_var_content,
1266            entity: local_var_entity,
1267        };
1268        Err(Error::ResponseError(local_var_error))
1269    }
1270}
1271
1272pub async fn projects_unfollow_create(
1273    configuration: &configuration::Configuration,
1274    params: ProjectsUnfollowCreateParams,
1275) -> Result<crate::models::Project, Error<ProjectsUnfollowCreateError>> {
1276    let local_var_configuration = configuration;
1277
1278    // unbox the parameters
1279    let id = params.id;
1280    let project = params.project;
1281
1282    let local_var_client = &local_var_configuration.client;
1283
1284    let local_var_uri_str = format!(
1285        "{}/api2/projects/{id}/unfollow/",
1286        local_var_configuration.base_path,
1287        id = id
1288    );
1289    let mut local_var_req_builder =
1290        local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
1291
1292    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1293        local_var_req_builder =
1294            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1295    }
1296    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
1297        local_var_req_builder = local_var_req_builder
1298            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
1299    };
1300    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
1301        local_var_req_builder =
1302            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
1303    };
1304    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1305        let local_var_key = local_var_apikey.key.clone();
1306        let local_var_value = match local_var_apikey.prefix {
1307            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1308            None => local_var_key,
1309        };
1310        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1311    };
1312    local_var_req_builder = local_var_req_builder.json(&project);
1313
1314    let local_var_req = local_var_req_builder.build()?;
1315    let local_var_resp = local_var_client.execute(local_var_req).await?;
1316
1317    let local_var_status = local_var_resp.status();
1318    let local_var_content = local_var_resp.text().await?;
1319
1320    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1321        serde_json::from_str(&local_var_content).map_err(Error::from)
1322    } else {
1323        let local_var_entity: Option<ProjectsUnfollowCreateError> =
1324            serde_json::from_str(&local_var_content).ok();
1325        let local_var_error = ResponseContent {
1326            status: local_var_status,
1327            content: local_var_content,
1328            entity: local_var_entity,
1329        };
1330        Err(Error::ResponseError(local_var_error))
1331    }
1332}
1333
1334pub async fn projects_update(
1335    configuration: &configuration::Configuration,
1336    params: ProjectsUpdateParams,
1337) -> Result<crate::models::ProjectUpdate, Error<ProjectsUpdateError>> {
1338    let local_var_configuration = configuration;
1339
1340    // unbox the parameters
1341    let id = params.id;
1342    let project_update = params.project_update;
1343
1344    let local_var_client = &local_var_configuration.client;
1345
1346    let local_var_uri_str = format!(
1347        "{}/api2/projects/{id}/",
1348        local_var_configuration.base_path,
1349        id = id
1350    );
1351    let mut local_var_req_builder =
1352        local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
1353
1354    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1355        local_var_req_builder =
1356            local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1357    }
1358    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
1359        local_var_req_builder = local_var_req_builder
1360            .basic_auth(local_var_auth_conf.0.clone(), local_var_auth_conf.1.clone());
1361    };
1362    if let Some(ref local_var_cookie) = local_var_configuration.cookie {
1363        local_var_req_builder =
1364            local_var_req_builder.header("Cookie", format!("sessionid={}", local_var_cookie.value));
1365    };
1366    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
1367        let local_var_key = local_var_apikey.key.clone();
1368        let local_var_value = match local_var_apikey.prefix {
1369            Some(ref local_var_prefix) => format!("{local_var_prefix} {local_var_key}"),
1370            None => local_var_key,
1371        };
1372        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
1373    };
1374    local_var_req_builder = local_var_req_builder.json(&project_update);
1375
1376    let local_var_req = local_var_req_builder.build()?;
1377    let local_var_resp = local_var_client.execute(local_var_req).await?;
1378
1379    let local_var_status = local_var_resp.status();
1380    let local_var_content = local_var_resp.text().await?;
1381
1382    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1383        serde_json::from_str(&local_var_content).map_err(Error::from)
1384    } else {
1385        let local_var_entity: Option<ProjectsUpdateError> =
1386            serde_json::from_str(&local_var_content).ok();
1387        let local_var_error = ResponseContent {
1388            status: local_var_status,
1389            content: local_var_content,
1390            entity: local_var_entity,
1391        };
1392        Err(Error::ResponseError(local_var_error))
1393    }
1394}