/* 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 { CreateBuildInfo } from './create-build-info';
// May contain unused imports in some cases
// @ts-ignore
import type { SandboxVolume } from './sandbox-volume';

export interface CreateSandbox {
    /**
     * The name of the sandbox. If not provided, the sandbox ID will be used as the name
     */
    'name'?: string;
    /**
     * The ID or name of 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 publicly accessible
     */
    '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 sandbox class type
     */
    'class'?: CreateSandboxClassEnum;
    /**
     * The target (region) where the sandbox will be created
     */
    'target'?: string;
    /**
     * CPU cores allocated to the sandbox
     */
    'cpu'?: number;
    /**
     * GPU units allocated to the sandbox
     */
    'gpu'?: number;
    /**
     * Memory allocated to the sandbox in GB
     */
    'memory'?: number;
    /**
     * Disk space allocated to the sandbox in GB
     */
    'disk'?: number;
    /**
     * Auto-stop interval in minutes (0 means disabled)
     */
    'autoStopInterval'?: number;
    /**
     * Auto-archive interval in minutes (0 means the maximum interval will be used)
     */
    'autoArchiveInterval'?: number;
    /**
     * Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)
     */
    'autoDeleteInterval'?: number;
    /**
     * Array of volumes to attach to the sandbox
     */
    'volumes'?: Array<SandboxVolume>;
    /**
     * Build information for the sandbox
     */
    'buildInfo'?: CreateBuildInfo;
}

export const CreateSandboxClassEnum = {
    SMALL: 'small',
    MEDIUM: 'medium',
    LARGE: 'large',
    UNKNOWN_DEFAULT_OPEN_API: '11184809',
} as const;

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


