runtara_management_sdk/lib.rs
1// Copyright (C) 2025 SyncMyOrders Sp. z o.o.
2// SPDX-License-Identifier: AGPL-3.0-or-later
3//! Runtara Management SDK
4//!
5//! High-level SDK for managing Runtara Environment instances and images.
6//!
7//! This crate provides an ergonomic client for interacting with runtara-environment's
8//! API over QUIC. It is the single entry point for all management operations.
9//!
10//! # Architecture
11//!
12//! The Management SDK talks ONLY to runtara-environment:
13//! - Image management (register, list, delete)
14//! - Instance lifecycle (start, stop, resume, status)
15//! - Signals (pause, cancel - proxied to runtara-core by Environment)
16//!
17//! # Example
18//!
19//! ```no_run
20//! use runtara_management_sdk::{ManagementSdk, StartInstanceOptions};
21//!
22//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
23//! // Create SDK for local development
24//! let sdk = ManagementSdk::localhost()?;
25//!
26//! // Connect to runtara-environment
27//! sdk.connect().await?;
28//!
29//! // Check health
30//! let health = sdk.health_check().await?;
31//! println!("Server version: {}", health.version);
32//!
33//! // Start an instance
34//! let options = StartInstanceOptions::new("my-image-id", "tenant-1")
35//! .with_input(serde_json::json!({"key": "value"}));
36//! let result = sdk.start_instance(options).await?;
37//! println!("Started instance: {}", result.instance_id);
38//!
39//! // Get instance status
40//! let status = sdk.get_instance_status(&result.instance_id).await?;
41//! println!("Status: {:?}", status.status);
42//! # Ok(())
43//! # }
44//! ```
45
46mod client;
47mod config;
48mod error;
49mod types;
50
51pub use client::ManagementSdk;
52pub use config::SdkConfig;
53pub use error::{Result, SdkError};
54pub use types::{
55 AgentInfo, CapabilityField, CapabilityInfo, Checkpoint, CheckpointSummary, EventSummary,
56 GetTenantMetricsOptions, HealthStatus, ImageSummary, InstanceInfo, InstanceStatus,
57 InstanceSummary, ListCheckpointsOptions, ListCheckpointsResult, ListEventsOptions,
58 ListEventsResult, ListImagesOptions, ListImagesResult, ListInstancesOptions,
59 ListInstancesOrder, ListInstancesResult, MetricsBucket, MetricsGranularity,
60 RegisterImageOptions, RegisterImageResult, RegisterImageStreamOptions, RunnerType, SignalType,
61 StartInstanceOptions, StartInstanceResult, StopInstanceOptions, TenantMetricsResult,
62 TestCapabilityOptions, TestCapabilityResult,
63};