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};