1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Import {
17 #[serde(rename = "vcs", deserialize_with = "Option::deserialize")]
18 pub vcs: Option<String>,
19 #[serde(rename = "use_lfs", skip_serializing_if = "Option::is_none")]
20 pub use_lfs: Option<bool>,
21 #[serde(rename = "vcs_url")]
23 pub vcs_url: String,
24 #[serde(rename = "svc_root", skip_serializing_if = "Option::is_none")]
25 pub svc_root: Option<String>,
26 #[serde(rename = "tfvc_project", skip_serializing_if = "Option::is_none")]
27 pub tfvc_project: Option<String>,
28 #[serde(rename = "status")]
29 pub status: Status,
30 #[serde(rename = "status_text", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub status_text: Option<Option<String>>,
32 #[serde(rename = "failed_step", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub failed_step: Option<Option<String>>,
34 #[serde(rename = "error_message", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub error_message: Option<Option<String>>,
36 #[serde(rename = "import_percent", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub import_percent: Option<Option<i32>>,
38 #[serde(rename = "commit_count", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
39 pub commit_count: Option<Option<i32>>,
40 #[serde(rename = "push_percent", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub push_percent: Option<Option<i32>>,
42 #[serde(rename = "has_large_files", skip_serializing_if = "Option::is_none")]
43 pub has_large_files: Option<bool>,
44 #[serde(rename = "large_files_size", skip_serializing_if = "Option::is_none")]
45 pub large_files_size: Option<i32>,
46 #[serde(rename = "large_files_count", skip_serializing_if = "Option::is_none")]
47 pub large_files_count: Option<i32>,
48 #[serde(rename = "project_choices", skip_serializing_if = "Option::is_none")]
49 pub project_choices: Option<Vec<models::ImportProjectChoicesInner>>,
50 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
51 pub message: Option<String>,
52 #[serde(rename = "authors_count", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
53 pub authors_count: Option<Option<i32>>,
54 #[serde(rename = "url")]
55 pub url: String,
56 #[serde(rename = "html_url")]
57 pub html_url: String,
58 #[serde(rename = "authors_url")]
59 pub authors_url: String,
60 #[serde(rename = "repository_url")]
61 pub repository_url: String,
62 #[serde(rename = "svn_root", skip_serializing_if = "Option::is_none")]
63 pub svn_root: Option<String>,
64}
65
66impl Import {
67 pub fn new(vcs: Option<String>, vcs_url: String, status: Status, url: String, html_url: String, authors_url: String, repository_url: String) -> Import {
69 Import {
70 vcs,
71 use_lfs: None,
72 vcs_url,
73 svc_root: None,
74 tfvc_project: None,
75 status,
76 status_text: None,
77 failed_step: None,
78 error_message: None,
79 import_percent: None,
80 commit_count: None,
81 push_percent: None,
82 has_large_files: None,
83 large_files_size: None,
84 large_files_count: None,
85 project_choices: None,
86 message: None,
87 authors_count: None,
88 url,
89 html_url,
90 authors_url,
91 repository_url,
92 svn_root: None,
93 }
94 }
95}
96#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
98pub enum Status {
99 #[serde(rename = "auth")]
100 Auth,
101 #[serde(rename = "error")]
102 Error,
103 #[serde(rename = "none")]
104 None,
105 #[serde(rename = "detecting")]
106 Detecting,
107 #[serde(rename = "choose")]
108 Choose,
109 #[serde(rename = "auth_failed")]
110 AuthFailed,
111 #[serde(rename = "importing")]
112 Importing,
113 #[serde(rename = "mapping")]
114 Mapping,
115 #[serde(rename = "waiting_to_push")]
116 WaitingToPush,
117 #[serde(rename = "pushing")]
118 Pushing,
119 #[serde(rename = "complete")]
120 Complete,
121 #[serde(rename = "setup")]
122 Setup,
123 #[serde(rename = "unknown")]
124 Unknown,
125 #[serde(rename = "detection_found_multiple")]
126 DetectionFoundMultiple,
127 #[serde(rename = "detection_found_nothing")]
128 DetectionFoundNothing,
129 #[serde(rename = "detection_needs_auth")]
130 DetectionNeedsAuth,
131}
132
133impl Default for Status {
134 fn default() -> Status {
135 Self::Auth
136 }
137}
138