schemas_v1_api_apps - OmniCloudOrg/OmniOrchestrator GitHub Wiki

apps (src/schemas/v1/api)

Path: src/schemas/v1/api/apps.rs

Module Documentation

Application management module for handling CRUD operations on applications.

This module provides a REST API for managing applications, including:

  • Listing applications
  • Creating new applications
  • Updating existing applications
  • Getting application details and statistics
  • Starting and stopping applications
  • Scaling applications
  • Deleting applications
  • Releasing new versions of applications

Table of Contents

Public Items

struct Application

Definition

pub struct Application {
    /// Unique identifier for the application
    id: String,
    /// Name of the application
    name: String,
    /// Owner of the application
    owner: String,
    /// Number of running instances
    instances: i64,
    /// Memory allocation in MB
    memory: i64,
    /// Current status of the application
    status: String,
    /// Creation timestamp
    created_at: chrono::DateTime<chrono::Utc>,
    /// Last update timestamp
    updated_at: chrono::DateTime<chrono::Utc>,
}

Documentation

Represents an application in the system.

struct ScaleRequest

Definition

pub struct ScaleRequest {
    /// Number of instances to scale to
    instances: i32,
    /// Memory allocation in MB to scale to
    memory: i32,
}

Documentation

Request data for scaling an application.

struct AppStats

Definition

pub struct AppStats {
    /// CPU usage as a percentage
    cpu_usage: f64,
    /// Memory usage in bytes
    memory_usage: i64,
    /// Disk usage in bytes
    disk_usage: i64,
    /// Average number of requests per second
    requests_per_second: f64,
    /// Average response time in milliseconds
    response_time_ms: i64,
}

Documentation

Statistics for an application's resource usage and performance.

struct CreateAppRequest

Definition

pub struct CreateAppRequest {
    /// Name of the application
    name: String,
    /// Memory allocation in MB
    memory: i64,
    /// Number of instances
    instances: i64,
    /// Organization ID that owns the application
    org_id: i64,
}

Documentation

Request data for creating a new application.

struct UpdateAppRequest

Definition

pub struct UpdateAppRequest {
    /// New name for the application
    name: String,
    /// New memory allocation in MB
    memory: i64,
    /// New number of instances
    instances: i64,
    /// Organization ID that owns the application
    org_id: i64,
}

Documentation

Request data for updating an existing application.

async fn list_apps

Definition

pub async fn list_apps(
    platform_id: i64,
    page: Option<i64>,
    per_page: Option<i64>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

List all applications with pagination support.

Arguments
  • platform_id - Platform identifier
  • page - Required page number for pagination
  • per_page - Required number of items per page
  • db_manager - Database manager for accessing platform-specific pools
Returns

A JSON array of applications or an error if pagination parameters are missing

async fn get_app_with_instances

Definition

pub async fn get_app_with_instances(
    db_manager: &State<Arc<DatabaseManager>>, 
    platform_id: i64,
    app_id: i64
) -> Result<Json<AppWithInstances>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get app with instances

async fn count_apps

Definition

pub async fn count_apps(
    platform_id: i64,
    db_manager: &State<Arc<DatabaseManager>>
) -> Result<Json<i64>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Count the total number of applications.

async fn get_app

Definition

pub async fn get_app(
    platform_id: i64,
    app_id: i64, 
    db_manager: &State<Arc<DatabaseManager>>
) -> Result<Json<App>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get a specific application by ID.

Arguments
  • platform_id - Platform identifier
  • app_id - The ID of the application to retrieve
  • db_manager - Database manager for accessing platform-specific pools
Returns

The application if found, or None if not found

async fn create_app

Definition

pub async fn create_app(
    platform_id: i64,
    app_request: Json<CreateAppRequest>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<App>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Create a new application.

Arguments
  • platform_id - Platform identifier
  • app_request - JSON data containing application details
  • db_manager - Database manager for accessing platform-specific pools
Returns

The newly created application

async fn update_app

Definition

pub async fn update_app(
    platform_id: i64,
    app_request: Json<UpdateAppRequest>,
    db_manager: &State<Arc<DatabaseManager>>,
    app_id: i64,
) -> Result<Json<App>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Update an existing application.

Arguments
  • platform_id - Platform identifier
  • app_request - JSON data containing updated application details
  • db_manager - Database manager for accessing platform-specific pools
  • app_id - The ID of the application to update
Returns

The updated application

async fn get_app_stats

Definition

pub async fn get_app_stats(
    platform_id: i64,
    app_id: String, 
    db_manager: &State<Arc<DatabaseManager>>
) -> Result<Json<AppStats>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Get statistics for a specific application.

Arguments
  • platform_id - Platform identifier
  • app_id - The ID of the application to get statistics for
  • db_manager - Database manager for accessing platform-specific pools
Returns

Statistics for the application

async fn start_app

Definition

pub async fn start_app(
    platform_id: i64,
    app_id: String,
    db_manager: &State<Arc<DatabaseManager>>
) -> Result<Json<Application>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Start a specific application.

Arguments
  • platform_id - Platform identifier
  • app_id - The ID of the application to start
  • db_manager - Database manager for accessing platform-specific pools
Returns

The updated application if found, or None if not found

async fn stop_app

Definition

pub async fn stop_app(
    platform_id: i64,
    app_id: String,
    db_manager: &State<Arc<DatabaseManager>>
) -> Result<Json<Application>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Stop a specific application.

Arguments
  • platform_id - Platform identifier
  • app_id - The ID of the application to stop
  • db_manager - Database manager for accessing platform-specific pools
Returns

The updated application if found, or None if not found

async fn scale_app

Definition

pub async fn scale_app(
    platform_id: i64,
    app_id: String, 
    scale: Json<ScaleRequest>,
    db_manager: &State<Arc<DatabaseManager>>
) -> Result<Json<Application>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Scale a specific application.

Arguments
  • platform_id - Platform identifier
  • app_id - The ID of the application to scale
  • scale - JSON data containing scaling parameters
  • db_manager - Database manager for accessing platform-specific pools
Returns

The updated application if found, or None if not found

async fn delete_app

Definition

pub async fn delete_app(
    platform_id: i64,
    app_id: String,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}

Documentation

Delete a specific application.

Arguments
  • platform_id - Platform identifier
  • app_id - The ID of the application to delete
  • db_manager - Database manager for accessing platform-specific pools
Returns

A JSON response indicating success or an error message

async fn release

Definition

pub async fn release(
    platform_id: i64,
    app_id: String,
    release_version: String,
    content_type: &ContentType,
    data: Data<'_>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Status, Status> {
    // ... function body
}

async fn list_instances

Definition

pub async fn list_instances(
    platform_id: i64,
    app_id: i64,
    page: Option<i64>,
    per_page: Option<i64>,
    db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
    // ... function body
}
⚠️ **GitHub.com Fallback** ⚠️