use crate::errors::Result;
use crate::models::applications::Application;
use async_trait::async_trait;
#[async_trait]
pub trait ApplicationsAPI {
async fn filter(
&self,
application_name: &str,
filter: Option<serde_json::Value>,
) -> Result<String>;
async fn get(&self, application_name: &str) -> Result<Application>;
async fn list(&self) -> Result<Vec<Application>>;
async fn subscribe(&self, application_name: &str, event_source: Vec<String>) -> Result<String>;
async fn unsubscribe(
&self,
application_name: &str,
event_source: Vec<String>,
) -> Result<String>;
}