Skip to main content

oxirs_embed/cloud_integration/
cloudintegrationconfig_traits.rs

1//! # CloudIntegrationConfig - Trait Implementations
2//!
3//! This module contains trait implementations for `CloudIntegrationConfig`.
4//!
5//! ## Implemented Traits
6//!
7//! - `Default`
8//!
9//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
10
11use 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}