#[async_trait::async_trait]
pub trait DirectAccessService: std::fmt::Debug + Send + Sync {
async fn create_device_session(
&self,
req: crate::model::CreateDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeviceSession>>;
async fn list_device_sessions(
&self,
req: crate::model::ListDeviceSessionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListDeviceSessionsResponse>>;
async fn get_device_session(
&self,
req: crate::model::GetDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeviceSession>>;
async fn cancel_device_session(
&self,
req: crate::model::CancelDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn update_device_session(
&self,
req: crate::model::UpdateDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeviceSession>>;
}
#[async_trait::async_trait]
impl<T: super::DirectAccessService> DirectAccessService for T {
async fn create_device_session(
&self,
req: crate::model::CreateDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeviceSession>> {
T::create_device_session(self, req, options).await
}
async fn list_device_sessions(
&self,
req: crate::model::ListDeviceSessionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListDeviceSessionsResponse>> {
T::list_device_sessions(self, req, options).await
}
async fn get_device_session(
&self,
req: crate::model::GetDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeviceSession>> {
T::get_device_session(self, req, options).await
}
async fn cancel_device_session(
&self,
req: crate::model::CancelDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::cancel_device_session(self, req, options).await
}
async fn update_device_session(
&self,
req: crate::model::UpdateDeviceSessionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::DeviceSession>> {
T::update_device_session(self, req, options).await
}
}