1use provcfg::{ClapArgs, Configurable};
2use serde::{Deserialize, Serialize};
3use utoipa::ToSchema;
4
5#[derive(Debug, Deserialize, Serialize, Eq, PartialEq, Clone, Configurable, ClapArgs, ToSchema)]
6#[serde(default)]
7#[configurable(clap_prefix = "gcs")]
8pub struct Gcs {
9 pub enabled: bool,
10
11 pub endpoint: Option<String>,
14
15 pub allow_http: bool,
17
18 pub skip_signature: bool,
22
23 pub crates_bucket: String,
24
25 pub cratesio_bucket: String,
26
27 pub toolchain_bucket: String,
28
29 pub docs_bucket: Option<String>,
30
31 #[arg(long = "gcs-connect-timeout")]
33 pub connect_timeout_seconds: u64,
34
35 #[arg(long = "gcs-request-timeout")]
37 pub request_timeout_seconds: u64,
38}
39
40impl Default for Gcs {
41 fn default() -> Self {
42 Self {
43 enabled: false,
44 endpoint: None,
45 allow_http: true,
46 skip_signature: false,
47 crates_bucket: "kellnr-crates".to_string(),
48 cratesio_bucket: "kellnr-cratesio".to_string(),
49 toolchain_bucket: "kellnr-toolchains".to_string(),
50 docs_bucket: None,
51 connect_timeout_seconds: 5,
52 request_timeout_seconds: 30,
53 }
54 }
55}