oxirs_embed/cloud_integration/
cloudintegrationconfig_traits.rs1use std::collections::HashMap;
12
13use super::types::{
14 AutoScalingConfig, CloudIntegrationConfig, CloudProvider, CostOptimizationConfig,
15 MonitoringConfig, SecurityConfig,
16};
17
18impl Default for CloudIntegrationConfig {
19 fn default() -> Self {
20 Self {
21 default_provider: CloudProvider::AWS,
22 auto_scaling: AutoScalingConfig {
23 enabled: true,
24 min_instances: 1,
25 max_instances: 10,
26 target_cpu_utilization: 70.0,
27 target_memory_utilization: 80.0,
28 scale_up_threshold: 80.0,
29 scale_down_threshold: 30.0,
30 cooldown_period_seconds: 300,
31 },
32 cost_optimization: CostOptimizationConfig {
33 enabled: true,
34 max_hourly_cost_usd: 50.0,
35 use_spot_instances: false,
36 auto_shutdown_idle: true,
37 idle_threshold_minutes: 30,
38 reserved_capacity_percentage: 20.0,
39 },
40 security: SecurityConfig {
41 encryption_at_rest: true,
42 encryption_in_transit: true,
43 vpc_config: None,
44 iam_config: None,
45 network_acl: vec![],
46 },
47 monitoring: MonitoringConfig {
48 enabled: true,
49 collection_interval_seconds: 60,
50 alert_thresholds: HashMap::from([
51 ("cpu_utilization".to_string(), 85.0),
52 ("memory_utilization".to_string(), 90.0),
53 ("error_rate".to_string(), 0.05),
54 ]),
55 notification_endpoints: vec![],
56 },
57 }
58 }
59}