Skip to main content

oci_api/
lib.rs

1//! # OCI API
2//!
3//! Oracle Cloud Infrastructure (OCI) API client for Rust.
4//!
5//! ## Features
6//!
7//! - Environment variable-based authentication
8//! - Instance principal authentication support
9//! - Email Delivery service support
10//! - Async I/O (tokio)
11//!
12//! ## Quick Start
13//!
14//! ```no_run
15//! use oci_api::Oci;
16//!
17//! #[tokio::main]
18//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
19//!     // Load configuration from environment variables
20//!     let oci = Oci::from_env()?;
21//!     
22//!     Ok(())
23//! }
24//! ```
25
26// Module declarations
27pub mod auth;
28pub mod client;
29pub mod error;
30pub mod services;
31pub mod utils;
32
33// Re-exports for convenient imports
34pub use client::{AuthMode, Oci, OciBuilder};
35pub use error::{Error, Result};
36
37// Re-export email module to allow `oci_api::email::*` (without `services`)
38pub use services::email;
39pub use services::keys;
40pub use services::object_storage;
41pub use services::vault;
42
43// Re-export async_trait for downstream mock implementations
44pub use async_trait::async_trait;