use crate::config::models::GlobalConfig;
use crate::engine::executor::RetryContext;
use crate::response_cache::CacheConfig;
use serde_json::Value;
use std::collections::HashMap;
#[derive(Debug, Clone)]
pub struct OperationCall {
pub operation_id: String,
pub path_params: HashMap<String, String>,
pub query_params: HashMap<String, String>,
pub header_params: HashMap<String, String>,
pub body: Option<String>,
pub custom_headers: Vec<String>,
}
#[derive(Debug, Clone, Default)]
pub struct ExecutionContext {
pub dry_run: bool,
pub idempotency_key: Option<String>,
pub cache_config: Option<CacheConfig>,
pub retry_context: Option<RetryContext>,
pub base_url: Option<String>,
pub global_config: Option<GlobalConfig>,
pub server_var_args: Vec<String>,
pub auto_paginate: bool,
}
#[derive(Debug, Clone)]
pub enum ExecutionResult {
Success {
body: String,
status: u16,
headers: HashMap<String, String>,
},
DryRun {
request_info: Value,
},
Cached {
body: String,
},
Empty,
}