UNPKG

@phala/cloud

Version:
231 lines 9.59 kB
import { z } from "zod"; import { type Client, type SafeResult } from "../client"; import { ActionParameters, ActionReturnType } from "../types/common"; /** * Provision a CVM (Confidential Virtual Machine) * * This action provisions a new CVM on a specified node, returning the app_id, encryption public key, and other metadata required for secure deployment. * * @example * ```typescript * import { createClient, getAvailableNodes, provisionCvm } from '@phala/cloud' * * const client = createClient(); * const nodes = await getAvailableNodes(client); * const node = nodes.nodes[0]; * * const docker_compose = ` *version: '3' *services: * demo: * image: leechael/phala-cloud-bun-starter:latest * container_name: demo * ports: * - "3000:3000" * volumes: * - /var/run/tappd.sock:/var/run/tappd.sock *`; * * const app_compose = { * name: 'my-app', * node_id: node.node_id, * image: node.images[0].name, * vcpu: 1, * memory: 1024, * disk_size: 10, * compose_file: { * docker_compose_file: docker_compose, * name: 'my-app', * }, * }; * * const result = await provisionCvm(client, app_compose); * console.log(result.app_id); * ``` * * ## Safe Version * * Use `safeProvisionCvm` for error handling without exceptions: * * ```typescript * const result = await safeProvisionCvm(client, app_compose); * if (result.success) { * console.log(result.data.app_id); * } else { * console.error('Failed to provision CVM:', result.error.message); * } * ``` */ export declare const ProvisionCvmSchema: z.ZodObject<{ app_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; app_env_encrypt_pubkey: z.ZodOptional<z.ZodNullable<z.ZodString>>; compose_hash: z.ZodString; fmspc: z.ZodOptional<z.ZodNullable<z.ZodString>>; device_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; os_image_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>; node_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; kms_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ app_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; app_env_encrypt_pubkey: z.ZodOptional<z.ZodNullable<z.ZodString>>; compose_hash: z.ZodString; fmspc: z.ZodOptional<z.ZodNullable<z.ZodString>>; device_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; os_image_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>; node_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; kms_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ app_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; app_env_encrypt_pubkey: z.ZodOptional<z.ZodNullable<z.ZodString>>; compose_hash: z.ZodString; fmspc: z.ZodOptional<z.ZodNullable<z.ZodString>>; device_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; os_image_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>; node_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; kms_id: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, z.ZodTypeAny, "passthrough">>; export type ProvisionCvm = z.infer<typeof ProvisionCvmSchema>; export declare const ProvisionCvmRequestSchema: z.ZodObject<{ node_id: z.ZodOptional<z.ZodNumber>; teepod_id: z.ZodOptional<z.ZodNumber>; name: z.ZodString; image: z.ZodString; vcpu: z.ZodNumber; memory: z.ZodNumber; disk_size: z.ZodNumber; compose_file: z.ZodObject<{ allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; pre_launch_script: z.ZodOptional<z.ZodString>; docker_compose_file: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; kms_enabled: z.ZodOptional<z.ZodBoolean>; public_logs: z.ZodOptional<z.ZodBoolean>; public_sysinfo: z.ZodOptional<z.ZodBoolean>; gateway_enabled: z.ZodOptional<z.ZodBoolean>; tproxy_enabled: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; docker_compose_file?: string | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; gateway_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; }, { name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; docker_compose_file?: string | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; gateway_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; }>; listed: z.ZodOptional<z.ZodBoolean>; instance_type: z.ZodOptional<z.ZodNullable<z.ZodString>>; kms_id: z.ZodOptional<z.ZodString>; env_keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ node_id: z.ZodOptional<z.ZodNumber>; teepod_id: z.ZodOptional<z.ZodNumber>; name: z.ZodString; image: z.ZodString; vcpu: z.ZodNumber; memory: z.ZodNumber; disk_size: z.ZodNumber; compose_file: z.ZodObject<{ allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; pre_launch_script: z.ZodOptional<z.ZodString>; docker_compose_file: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; kms_enabled: z.ZodOptional<z.ZodBoolean>; public_logs: z.ZodOptional<z.ZodBoolean>; public_sysinfo: z.ZodOptional<z.ZodBoolean>; gateway_enabled: z.ZodOptional<z.ZodBoolean>; tproxy_enabled: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; docker_compose_file?: string | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; gateway_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; }, { name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; docker_compose_file?: string | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; gateway_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; }>; listed: z.ZodOptional<z.ZodBoolean>; instance_type: z.ZodOptional<z.ZodNullable<z.ZodString>>; kms_id: z.ZodOptional<z.ZodString>; env_keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ node_id: z.ZodOptional<z.ZodNumber>; teepod_id: z.ZodOptional<z.ZodNumber>; name: z.ZodString; image: z.ZodString; vcpu: z.ZodNumber; memory: z.ZodNumber; disk_size: z.ZodNumber; compose_file: z.ZodObject<{ allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; pre_launch_script: z.ZodOptional<z.ZodString>; docker_compose_file: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; kms_enabled: z.ZodOptional<z.ZodBoolean>; public_logs: z.ZodOptional<z.ZodBoolean>; public_sysinfo: z.ZodOptional<z.ZodBoolean>; gateway_enabled: z.ZodOptional<z.ZodBoolean>; tproxy_enabled: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; docker_compose_file?: string | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; gateway_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; }, { name?: string | undefined; public_sysinfo?: boolean | undefined; public_logs?: boolean | undefined; docker_compose_file?: string | undefined; pre_launch_script?: string | undefined; allowed_envs?: string[] | undefined; kms_enabled?: boolean | undefined; gateway_enabled?: boolean | undefined; tproxy_enabled?: boolean | undefined; }>; listed: z.ZodOptional<z.ZodBoolean>; instance_type: z.ZodOptional<z.ZodNullable<z.ZodString>>; kms_id: z.ZodOptional<z.ZodString>; env_keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, z.ZodTypeAny, "passthrough">>; export type ProvisionCvmRequest = z.infer<typeof ProvisionCvmRequestSchema> & { node_id?: number; teepod_id?: number; compose_file?: { gateway_enabled?: boolean; tproxy_enabled?: boolean; [key: string]: unknown; }; }; export type ProvisionCvmParameters<T = undefined> = ActionParameters<T>; export type ProvisionCvmReturnType<T = undefined> = ActionReturnType<ProvisionCvm, T>; export declare function provisionCvm<T extends z.ZodSchema | false | undefined = undefined>(client: Client, appCompose: ProvisionCvmRequest, parameters?: ProvisionCvmParameters<T>): Promise<ProvisionCvmReturnType<T>>; export declare function safeProvisionCvm<T extends z.ZodSchema | false | undefined = undefined>(client: Client, appCompose: ProvisionCvmRequest, parameters?: ProvisionCvmParameters<T>): Promise<SafeResult<ProvisionCvmReturnType<T>>>; //# sourceMappingURL=provision_cvm.d.ts.map