blueprint_remote_providers/
lib.rs1#![cfg_attr(docsrs, feature(doc_cfg))]
4
5pub mod auth_integration;
7pub mod config;
8pub mod core;
9pub mod infra;
10pub mod monitoring;
11pub mod observability;
12pub mod pricing;
13pub mod providers;
14pub mod secure_bridge;
15pub mod security;
16pub mod shared;
17
18pub mod deployment;
19
20pub use config::{AwsConfig, AzureConfig, CloudConfig, DigitalOceanConfig, GcpConfig, VultrConfig};
22pub use core::{CloudProvider, Error, ResourceSpec, Result};
23pub use deployment::{DeploymentTracker, SshDeploymentClient};
24pub use infra::{CloudProvisioner, InstanceStatus, ProvisionedInstance};
25pub use monitoring::{HealthCheckResult, HealthMonitor, HealthStatus};
26pub use pricing::{PricingService, ServiceCostReport as CostReport};
27pub use providers::{ProvisionedInfrastructure, ProvisioningConfig};
28
29#[cfg(feature = "aws")]
30pub use providers::{AwsInstanceMapper, AwsProvisioner};
31
32pub fn create_provider_client(timeout_secs: u64) -> Result<reqwest::Client> {
33 use blueprint_std::time::Duration;
34 reqwest::Client::builder()
35 .timeout(Duration::from_secs(timeout_secs))
36 .build()
37 .map_err(|e| Error::HttpError(e.to_string()))
38}
39
40pub fn create_default_provider_client() -> Result<reqwest::Client> {
41 create_provider_client(10)
42}
43
44pub fn create_metadata_client(timeout_secs: u64) -> Result<reqwest::Client> {
45 create_provider_client(timeout_secs)
46}
47
48pub mod auto_deployment {
50 pub use crate::infra::auto::*;
51}
52pub mod infrastructure {
53 pub use crate::infra::*;
54}
55pub mod remote {
56 pub use crate::core::remote::*;
57}
58pub mod resources {
59 pub use crate::core::resources::*;
60}
61
62pub const VERSION: &str = env!("CARGO_PKG_VERSION");