# VM Lifecycle Contracts # # Type definitions for VM persistence and lifecycle management. { PersistenceMode = [| 'permanent, 'temporary |], RestartPolicy = [| 'no, 'always, 'on_failure |], HostRebootAction = [| 'start, 'keep_stopped, 'destroy |], HostShutdownAction = [| 'shutdown, 'save_state, 'destroy |], ResourcePressureAction = [| 'suspend, 'kill, 'none |], CleanupStatus = [| 'pending, 'in_progress, 'completed, 'failed |], VmState = [| 'stopped, 'starting, 'running, 'stopping, 'paused, 'error |], StartFailureAction = [| 'stop, 'retry, 'ignore |], VmPersistence = { mode | PersistenceMode, auto_start | Bool, restart_policy | RestartPolicy, max_retries | Number, ttl_hours | Number, auto_cleanup | Bool, force_cleanup | Bool, cleanup_grace_period | Number, created_at_unix | Number, scheduled_cleanup | optional | Number, last_state_change | optional | Number, }, VmLifecyclePolicy = { on_host_reboot | HostRebootAction, on_host_shutdown | HostShutdownAction, on_memory_pressure | ResourcePressureAction, on_disk_full | ResourcePressureAction, enforce_memory_limit | Bool, enforce_cpu_limit | Bool, enforce_disk_limit | Bool, }, VmCleanupSchedule = { vm_name | String, vm_id | String, mode | PersistenceMode, created_at | String, scheduled_cleanup_at | String, ttl_hours | Number, cleanup_status | CleanupStatus, cleanup_attempts | Number, last_cleanup_attempt | optional | String, cleanup_error | optional | String, }, VmRecoveryState = { vm_name | String, vm_id | String, state_before_shutdown | VmState, creation_timestamp | String, last_checkpoint | String, memory_snapshot | optional | String, memory_size_mb | optional | Number, config_snapshot, }, VmAutoStartConfig = { vm_name | String, enabled | Bool, start_order | Number, start_delay_seconds | Number, wait_for_ssh | Bool, ssh_timeout_seconds | Number, on_start_failure | StartFailureAction, max_start_retries | Number, depends_on, }, VmCleanupPolicy = { cleanup_enabled | Bool, check_interval_minutes | Number, cleanup_window_start | String, cleanup_window_end | String, cleanup_in_window_only | Bool, max_concurrent_cleanups | Number, cleanup_batch_size | Number, require_confirmation | Bool, dry_run_mode | Bool, skip_on_low_resources | Bool, log_cleanup_operations | Bool, alert_on_cleanup_failure | Bool, retention_days | Number, }, VmStateSnapshot = { vm_name | String, snapshot_time | String, vm_state | VmState, cpu_usage_percent | Number, memory_usage_mb | Number, disk_usage_gb | Number, ip_addresses, mac_addresses, uptime_seconds | Number, restart_count | Number, }, }