backblaze_b2_client/definitions/
headers.rs

1use super::shared::{
2    B2FileLegalHold, B2FileRetentionMode, B2ServerSideEncryption, B2ServerSideEncryptionAlgorithm,
3};
4use crate::util::IntoHeaderMap;
5use serde::Serialize;
6use typed_builder::TypedBuilder;
7
8#[derive(Clone, Debug, Serialize, TypedBuilder)]
9#[builder(field_defaults(default))]
10pub struct B2UploadPartHeaders {
11    #[builder(!default)]
12    #[serde(rename = "Authorization")]
13    #[builder(!default)]
14    pub authorization: String,
15    #[serde(rename = "X-Bz-Part-Number")]
16    #[builder(!default)]
17    pub part_number: u16,
18    #[serde(rename = "Content-Length")]
19    #[builder(!default)]
20    pub content_length: u64,
21    #[serde(rename = "X-Bz-Content-Sha1")]
22    #[builder(!default)]
23    pub content_sha1: String,
24    #[serde(rename = "X-Bz-Server-Side-Encryption-Customer-Algorithm")]
25    pub server_side_encryption_customer_algorithm: Option<B2ServerSideEncryptionAlgorithm>,
26    #[serde(rename = "X-Bz-Server-Side-Encryption-Customer-Key")]
27    pub server_side_encryption_customer_key: Option<String>,
28    #[serde(rename = "X-Bz-Server-Side-Encryption-Customer-Key-Md5")]
29    pub server_side_encryption_customer_key_md5: Option<String>,
30}
31
32#[derive(Clone, Debug, Serialize, TypedBuilder)]
33#[builder(field_defaults(default))]
34pub struct B2UploadFileHeaders {
35    #[builder(!default)]
36    #[serde(rename = "Authorization")]
37    pub authorization: String,
38    #[serde(rename = "X-Bz-File-Name")]
39    #[builder(!default)]
40    pub file_name: String,
41    #[builder(!default)]
42    #[serde(rename = "Content-Type")]
43    pub content_type: String,
44    #[builder(!default)]
45    #[serde(rename = "Content-Length")]
46    pub content_length: u64,
47    #[builder(!default)]
48    #[serde(rename = "X-Bz-Content-Sha1")]
49    pub content_sha1: String,
50    #[serde(rename = "X-Bz-Info-src_last_modified_millis")]
51    pub src_last_modified_millis: Option<u64>,
52    #[serde(rename = "X-Bz-Info-b2-content-disposition")]
53    pub b2_content_disposition: Option<String>,
54    #[serde(rename = "X-Bz-Info-b2-content-language")]
55    pub b2_content_language: Option<String>,
56    #[serde(rename = "X-Bz-Info-b2-expires")]
57    pub b2_expires: Option<String>,
58    #[serde(rename = "X-Bz-Info-b2-cache-control")]
59    pub b2_cache_control: Option<String>,
60    #[serde(rename = "X-Bz-Info-b2-content-encoding")]
61    pub b2_content_encoding: Option<String>,
62    #[serde(rename = "X-Bz-Custom-Upload-Timestamp")]
63    pub custom_upload_timestamp: Option<u64>,
64    #[serde(rename = "X-Bz-File-Legal-Hold")]
65    pub legal_hold: Option<B2FileLegalHold>,
66    #[serde(rename = "X-Bz-File-Retention-Mode")]
67    pub retention_mode: Option<B2FileRetentionMode>,
68    #[serde(rename = "X-Bz-File-Retention-Retain-Until-Timestamp")]
69    pub retention_retain_until_timestamp: Option<u64>,
70    #[serde(rename = "X-Bz-Server-Side-Encryption")]
71    pub server_side_encryption: Option<B2ServerSideEncryption>,
72    #[serde(rename = "X-Bz-Server-Side-Encryption-Customer-Algorithm")]
73    pub server_side_encryption_customer_algorithm: Option<B2ServerSideEncryptionAlgorithm>,
74    #[serde(rename = "X-Bz-Server-Side-Encryption-Customer-Key")]
75    pub server_side_encryption_customer_key: Option<String>,
76    #[serde(rename = "X-Bz-Server-Side-Encryption-Customer-Key-Md5")]
77    pub server_side_encryption_customer_key_md5: Option<String>,
78}
79
80impl IntoHeaderMap for B2UploadPartHeaders {}
81impl IntoHeaderMap for B2UploadFileHeaders {}