use crate::Result;
use async_trait::async_trait;
use unitycatalog_common::models::temporary_credentials::v1::*;
#[async_trait]
pub trait TemporaryCredentialHandler<Cx = crate::api::RequestContext>:
Send + Sync + 'static
{
async fn generate_temporary_table_credentials(
&self,
request: GenerateTemporaryTableCredentialsRequest,
context: Cx,
) -> Result<TemporaryCredential>;
async fn generate_temporary_path_credentials(
&self,
request: GenerateTemporaryPathCredentialsRequest,
context: Cx,
) -> Result<TemporaryCredential>;
async fn generate_temporary_volume_credentials(
&self,
request: GenerateTemporaryVolumeCredentialsRequest,
context: Cx,
) -> Result<TemporaryCredential>;
async fn generate_temporary_model_version_credentials(
&self,
request: GenerateTemporaryModelVersionCredentialsRequest,
context: Cx,
) -> Result<TemporaryCredential>;
}