cloudcover_core/
provider.rs1use crate::{ApiMethod, ResolvedSdk, Sdk, SdkMethodMapping};
2
3pub trait CloudProvider {
4 type Error: std::error::Error + Send + Sync + 'static;
5
6 #[must_use]
7 fn list_api_methods(&self) -> Vec<ApiMethod>;
8
9 #[must_use]
10 fn list_sdks(&self) -> Vec<Sdk>;
11
12 fn sdk_method_mappings(
17 &self,
18 resolved_sdk: &ResolvedSdk,
19 ) -> Result<Vec<SdkMethodMapping>, Self::Error>;
20
21 fn permissions_policy(&self, methods: &[ApiMethod]) -> Result<serde_json::Value, Self::Error>;
26}