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};