/* tslint:disable */
/* eslint-disable */
/**
 * Daytona
 * Daytona AI platform API Docs
 *
 * The version of the OpenAPI document: 1.0
 * Contact: support@daytona.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


// May contain unused imports in some cases
// @ts-ignore
import type { BuildInfo } from './build-info';
// May contain unused imports in some cases
// @ts-ignore
import type { SandboxDesiredState } from './sandbox-desired-state';
// May contain unused imports in some cases
// @ts-ignore
import type { SandboxState } from './sandbox-state';
// May contain unused imports in some cases
// @ts-ignore
import type { SandboxVolume } from './sandbox-volume';

export interface Sandbox {
    /**
     * The ID of the sandbox
     */
    'id': string;
    /**
     * The organization ID of the sandbox
     */
    'organizationId': string;
    /**
     * The name of the sandbox
     */
    'name': string;
    /**
     * The snapshot used for the sandbox
     */
    'snapshot'?: string;
    /**
     * The user associated with the project
     */
    'user': string;
    /**
     * Environment variables for the sandbox
     */
    'env': { [key: string]: string; };
    /**
     * Labels for the sandbox
     */
    'labels': { [key: string]: string; };
    /**
     * Whether the sandbox http preview is public
     */
    'public': boolean;
    /**
     * Whether to block all network access for the sandbox
     */
    'networkBlockAll': boolean;
    /**
     * Comma-separated list of allowed CIDR network addresses for the sandbox
     */
    'networkAllowList'?: string;
    /**
     * The target environment for the sandbox
     */
    'target': string;
    /**
     * The CPU quota for the sandbox
     */
    'cpu': number;
    /**
     * The GPU quota for the sandbox
     */
    'gpu': number;
    /**
     * The memory quota for the sandbox
     */
    'memory': number;
    /**
     * The disk quota for the sandbox
     */
    'disk': number;
    /**
     * The state of the sandbox
     */
    'state'?: SandboxState;
    /**
     * The desired state of the sandbox
     */
    'desiredState'?: SandboxDesiredState;
    /**
     * The error reason of the sandbox
     */
    'errorReason'?: string;
    /**
     * Whether the sandbox error is recoverable.
     */
    'recoverable'?: boolean;
    /**
     * The state of the backup
     */
    'backupState'?: SandboxBackupStateEnum;
    /**
     * The creation timestamp of the last backup
     */
    'backupCreatedAt'?: string;
    /**
     * Auto-stop interval in minutes (0 means disabled)
     */
    'autoStopInterval'?: number;
    /**
     * Auto-archive interval in minutes
     */
    'autoArchiveInterval'?: number;
    /**
     * Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)
     */
    'autoDeleteInterval'?: number;
    /**
     * Array of volumes attached to the sandbox
     */
    'volumes'?: Array<SandboxVolume>;
    /**
     * Build information for the sandbox
     */
    'buildInfo'?: BuildInfo;
    /**
     * The creation timestamp of the sandbox
     */
    'createdAt'?: string;
    /**
     * The last update timestamp of the sandbox
     */
    'updatedAt'?: string;
    /**
     * The last activity timestamp of the sandbox
     */
    'lastActivityAt'?: string;
    /**
     * The class of the sandbox
     * @deprecated
     */
    'class'?: SandboxClassEnum;
    /**
     * The version of the daemon running in the sandbox
     */
    'daemonVersion'?: string;
    /**
     * The runner ID of the sandbox
     */
    'runnerId'?: string;
    /**
     * The toolbox proxy URL for the sandbox
     */
    'toolboxProxyUrl': string;
}

export const SandboxBackupStateEnum = {
    NONE: 'None',
    PENDING: 'Pending',
    IN_PROGRESS: 'InProgress',
    COMPLETED: 'Completed',
    ERROR: 'Error',
    UNKNOWN_DEFAULT_OPEN_API: '11184809',
} as const;

export type SandboxBackupStateEnum = typeof SandboxBackupStateEnum[keyof typeof SandboxBackupStateEnum];
export const SandboxClassEnum = {
    SMALL: 'small',
    MEDIUM: 'medium',
    LARGE: 'large',
    UNKNOWN_DEFAULT_OPEN_API: '11184809',
} as const;

export type SandboxClassEnum = typeof SandboxClassEnum[keyof typeof SandboxClassEnum];


