Skip to main content

mixtape_tools/aws/
mod.rs

1//! AWS service integration tools for mixtape agents.
2//!
3//! This module provides a universal interface to AWS services, allowing agents to
4//! invoke any AWS API operation dynamically. It uses SigV4 signing for authentication
5//! and supports all AWS credential sources (environment variables, profiles, IAM roles, etc.).
6//!
7//! # Example
8//!
9//! ```no_run
10//! use mixtape_core::Tool;
11//! use mixtape_tools::aws::UseAwsTool;
12//!
13//! #[tokio::main]
14//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
15//!     let tool = UseAwsTool::new().await?;
16//!
17//!     // The tool is typically used through an agent, but can be called directly:
18//!     let input = serde_json::from_value(serde_json::json!({
19//!         "service_name": "sts",
20//!         "operation_name": "GetCallerIdentity",
21//!         "parameters": {},
22//!         "region": "us-east-1",
23//!         "label": "Get AWS caller identity"
24//!     }))?;
25//!
26//!     let result = tool.execute(input).await?;
27//!     println!("{}", result.as_text());
28//!     Ok(())
29//! }
30//! ```
31
32mod use_aws;
33
34pub use use_aws::{UseAwsInput, UseAwsTool, UseAwsToolBuilder};