1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//! Cloud abstraction layer for LLM Shield.
//!
//! This crate provides unified traits and types for interacting with cloud services
//! across AWS, GCP, and Azure. It enables LLM Shield to leverage cloud-native features
//! for secrets management, object storage, metrics, logging, and distributed tracing.
//!
//! # Architecture
//!
//! The crate defines trait-based abstractions for common cloud operations:
//!
//! - **Secret Management**: [`CloudSecretManager`] for AWS Secrets Manager, GCP Secret Manager, Azure Key Vault
//! - **Object Storage**: [`CloudStorage`] for AWS S3, GCP Cloud Storage, Azure Blob Storage
//! - **Observability**: [`CloudMetrics`], [`CloudLogger`], [`CloudTracer`] for cloud-native monitoring
//!
//! # Features
//!
//! This crate provides the core abstractions. Concrete implementations are provided by:
//!
//! - `llm-shield-cloud-aws` - AWS integrations (enable with `cloud-aws` feature)
//! - `llm-shield-cloud-gcp` - GCP integrations (enable with `cloud-gcp` feature)
//! - `llm-shield-cloud-azure` - Azure integrations (enable with `cloud-azure` feature)
//!
//! # Example
//!
//! ```rust,no_run
//! use llm_shield_cloud::{CloudSecretManager, SecretValue, Result};
//!
//! async fn load_api_keys(
//! secret_manager: &dyn CloudSecretManager
//! ) -> Result<Vec<String>> {
//! // Fetch API keys from cloud secret manager
//! let secret = secret_manager.get_secret("llm-shield/api-keys").await?;
//!
//! // Parse the secret value
//! let api_keys: Vec<String> = serde_json::from_str(secret.as_string())?;
//!
//! Ok(api_keys)
//! }
//! ```
//!
//! # Configuration
//!
//! Cloud integrations are configured via [`CloudConfig`]:
//!
//! ```yaml
//! cloud:
//! provider: aws
//! aws:
//! region: us-east-1
//! secrets_manager:
//! enabled: true
//! cache_ttl_seconds: 300
//! s3:
//! bucket: llm-shield-models
//! ```
// Re-export core dependencies
pub use async_trait;
// Module declarations
// Re-export commonly used types
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
/// Library version.
pub const VERSION: &str = env!;
/// Library name.
pub const LIB_NAME: &str = env!;