use serde::{Deserialize, Serialize};
use vantage_table::table::Table;
use crate::{AwsAccount, eq};
use crate::models::logs::event::{LogEvent, events_table};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Task {
#[serde(rename = "taskArn")]
pub task_arn: String,
}
pub fn tasks_table(aws: AwsAccount) -> Table<AwsAccount, Task> {
Table::new(
"json1/taskArns:ecs/AmazonEC2ContainerServiceV20141113.ListTasks",
aws,
)
.with_id_column("taskArn")
}
impl Task {
pub fn task_id(&self) -> Option<&str> {
self.task_arn.rsplit('/').next()
}
pub fn ref_log_events(
&self,
aws: AwsAccount,
log_group_name: &str,
prefix: &str,
) -> Table<AwsAccount, LogEvent> {
let mut t = events_table(aws);
t.add_condition(eq("logGroupName", log_group_name));
t.add_condition(eq("logStreamNamePrefix", prefix));
t
}
}