harn_cli/package/manifest/
provider_setup.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
6pub struct ProviderSetupManifest {
7 #[serde(default, alias = "auth-type")]
8 pub auth_type: Option<String>,
9 #[serde(default)]
10 pub flow: Option<String>,
11 #[serde(default, alias = "required-scopes", alias = "scopes")]
12 pub required_scopes: Vec<String>,
13 #[serde(default, alias = "required-secrets")]
14 pub required_secrets: Vec<String>,
15 #[serde(default, alias = "credential-environment")]
16 pub credential_environment: Vec<ConnectorCredentialEnvironmentManifest>,
17 #[serde(default, alias = "setup-command")]
18 pub setup_command: Vec<String>,
19 #[serde(default, alias = "validation-command")]
20 pub validation_command: Vec<String>,
21 #[serde(default, alias = "health-checks")]
22 pub health_checks: Vec<ConnectorHealthCheckManifest>,
23 #[serde(default)]
24 pub recovery: ConnectorRecoveryCopy,
25 #[serde(flatten, default)]
26 pub extra: BTreeMap<String, toml::Value>,
27}
28
29#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
35pub struct ConnectorCredentialEnvironmentManifest {
36 pub secret: String,
37 #[serde(default, alias = "environment-names")]
38 pub environment_names: Vec<String>,
39}
40
41#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
42pub struct ConnectorHealthCheckManifest {
43 pub id: String,
44 pub kind: String,
45 #[serde(default)]
46 pub command: Vec<String>,
47 #[serde(default)]
48 pub secret: Option<String>,
49 #[serde(default)]
50 pub url: Option<String>,
51}
52
53#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
54pub struct ConnectorRecoveryCopy {
55 #[serde(default, alias = "missing-install")]
56 pub missing_install: Option<String>,
57 #[serde(default, alias = "missing-auth")]
58 pub missing_auth: Option<String>,
59 #[serde(default, alias = "expired-credentials")]
60 pub expired_credentials: Option<String>,
61 #[serde(default, alias = "revoked-credentials")]
62 pub revoked_credentials: Option<String>,
63 #[serde(default, alias = "missing-scopes")]
64 pub missing_scopes: Option<String>,
65 #[serde(default, alias = "inaccessible-resource")]
66 pub inaccessible_resource: Option<String>,
67 #[serde(default, alias = "transient-provider-outage")]
68 pub transient_provider_outage: Option<String>,
69}