use anyhow::Result;
use dropshot::ApiDescription;

use std::sync::Arc;

use crate::context::ControllerContext;
use crate::machine;

type ControllerApiDescription = ApiDescription<Arc<ControllerContext>>;

pub fn api() -> Result<ControllerApiDescription> {
    let mut api = ControllerApiDescription::new();
    api.register(machine::describe)?;
    Ok(api)
}