Skip to main content

steam_user/types/
file_upload.rs

1/// Result returned by the
2/// [`begin_file_upload`](crate::client::SteamUser::begin_file_upload) call.
3#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
4pub struct BeginFileUploadResult {
5    pub success: i32,
6    pub url_host: String,
7    pub url_path: String,
8    pub use_https: i32,
9    pub request_headers: Vec<RequestHeader>,
10    pub timestamp: String,
11    pub ugcid: String,
12    pub hmac: String,
13    pub file_name: String,
14    pub file_sha: String,
15    pub file_image_width: u32,
16    pub file_image_height: u32,
17    pub file_type: String,
18}
19
20/// An HTTP header name/value pair returned as part of a file-upload handshake.
21#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
22pub struct RequestHeader {
23    pub name: String,
24    pub value: String,
25}
26
27/// Parameters required to commit an uploaded file on the Steam servers.
28#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
29pub struct CommitFileUploadParams {
30    pub file_name: String,
31    pub file_sha: String,
32    pub file_image_width: u32,
33    pub file_image_height: u32,
34    pub file_type: String,
35    pub ugcid: String,
36    pub timestamp: String,
37    pub hmac: String,
38    pub friend_steamid: Option<String>,
39}
40
41/// Response from
42/// [`commit_file_upload`](crate::client::SteamUser::commit_file_upload).
43#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
44pub struct CommitFileUploadResponse {
45    pub success: i32,
46    pub result: Option<CommitFileUploadResult>,
47    pub error: Option<String>,
48}
49
50/// Inner result object within [`CommitFileUploadResponse`].
51#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
52pub struct CommitFileUploadResult {
53    pub details: Option<CommitFileDetails>,
54}
55
56/// CDN URL details for a successfully committed file upload.
57#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
58pub struct CommitFileDetails {
59    pub url: String,
60}
61
62/// Raw wire shape of the `/chat/beginfileupload` response.
63#[derive(Debug, Clone, Default, serde::Deserialize)]
64#[serde(default)]
65pub struct BeginFileUploadRaw {
66    pub success: i64,
67    pub result: Option<BeginFileUploadResultRaw>,
68}
69
70/// Inner `result` object inside [`BeginFileUploadRaw`].
71#[derive(Debug, Clone, Default, serde::Deserialize)]
72#[serde(default)]
73pub struct BeginFileUploadResultRaw {
74    pub url_host: String,
75    pub url_path: String,
76    pub use_https: i64,
77    pub timestamp: String,
78    pub ugcid: String,
79    pub hmac: String,
80    pub request_headers: Vec<RequestHeader>,
81}
82
83/// Raw wire shape of the `/chat/commitfileupload/` response.
84#[derive(Debug, Clone, Default, serde::Deserialize)]
85#[serde(default)]
86pub struct CommitFileUploadRaw {
87    pub success: i64,
88    pub error: Option<String>,
89    pub result: Option<CommitFileUploadResultRaw>,
90}
91
92/// Inner `result` object inside [`CommitFileUploadRaw`].
93#[derive(Debug, Clone, Default, serde::Deserialize)]
94#[serde(default)]
95pub struct CommitFileUploadResultRaw {
96    pub details: Option<CommitFileDetails>,
97}