> ## Documentation Index > Fetch the complete documentation index at: https://support.fortanix.com/llms.txt > Use this file to discover all available pages before exploring further. # Provision a new compute node > Provision a new compute node. ## OpenAPI ````json POST /v1/nodes { "openapi": "3.0.4", "info": { "title": "Confidential Computing Manager", "description": "Fortanix Confidential Computing Manager Backend. These are APIs using which the frontend and other clients (compute node agents) interact with Fortanix Confidential Computing Manager functionalities, which include compute node and app enrollment, attestation and signing, and Certificate Authority.", "termsOfService": "https://www.fortanix.com/legal/terms/", "contact": { "name": "Fortanix Support", "url": "https://support.fortanix.com/hc/en-us/categories/360003107511-Confidential-Computing-Manager", "email": "support@fortanix.com" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "2.0.0" }, "servers": [ { "url": "https://ccm.fortanix.com" } ], "paths": { "/v1/nodes": { "post": { "tags": [ "Node" ], "summary": "Provision a new compute node.", "description": "Provision a new compute node.", "operationId": "provisionNode", "requestBody": { "$ref": "#/components/requestBodies/NodeProvisionRequest" }, "responses": { "200": { "description": "Compute node creation task.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResult" } } } } }, "x-auth-resource": "Manager,JoinTokenAuth" } } }, "components": { "requestBodies": { "NodeProvisionRequest": { "description": "Request to provision a compute node.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NodeProvisionRequest" } } }, "required": true, "x-bodyName": "body" } }, "schemas": { "TaskResult": { "type": "object", "properties": { "task_id": { "type": "string", "description": "Task Id", "format": "uuid" }, "certificate_id": { "type": "string", "description": "Certificate Id in case of certificate issuance task.", "format": "uuid" }, "node_id": { "type": "string", "description": "Compute Node Id.", "format": "uuid" }, "task_type": { "$ref": "#/components/schemas/TaskType" }, "task_status": { "$ref": "#/components/schemas/TaskStatus" }, "build_id": { "type": "string", "description": "Build Id.", "format": "uuid" } } }, "NodeProvisionRequest": { "required": [ "name", "ipaddress", "sgx_version" ], "type": "object", "properties": { "name": { "type": "string", "description": "Name of the compute node." }, "description": { "type": "string", "description": "Description of the compute node." }, "ipaddress": { "type": "string", "description": "IP Address of the compute node." }, "sys_info": { "$ref": "#/components/schemas/NodeSysInfo" }, "sgx_version": { "type": "string", "description": "Version of the Intel SGX Platform Software running on the compute node." }, "attestation_request": { "$ref": "#/components/schemas/AttestationRequest" }, "error_report": { "$ref": "#/components/schemas/NodeErrorReport" } } }, "TaskType": { "enum": [ "NODE_ATTESTATION", "CERTIFICATE_ISSUANCE", "BUILD_WHITELIST", "DOMAIN_WHITELIST" ], "type": "string", "description": "The types of tasks supported." }, "TaskStatus": { "required": [ "created_at", "status_updated_at", "status" ], "type": "object", "properties": { "created_at": { "type": "integer", "description": "Task creation time", "format": "int64" }, "status_updated_at": { "type": "integer", "description": "Time since the status change.", "format": "int64" }, "status": { "$ref": "#/components/schemas/TaskStatusType" }, "error": { "$ref": "#/components/schemas/TaskError" } }, "description": "Status info for a task." }, "NodeSysInfo": { "required": [ "epc_size", "num_cpu_cores" ], "type": "object", "properties": { "epc_size": { "type": "integer", "description": "Size of EPC of the compute node in bytes.", "format": "int64", "nullable": true }, "num_cpu_cores": { "type": "integer", "description": "Number of CPU cores of the compute node.", "format": "int32", "x-aliases": [ "num_cpu" ] }, "total_memory": { "type": "integer", "description": "Total available memory of the compute node in bytes. Populated for TDX nodes; null for SGX and other node types.", "format": "int64", "nullable": true } }, "description": "System Related details of a compute node." }, "AttestationRequest": { "required": [ "csr" ], "type": "object", "properties": { "ias_quote": { "type": "string", "description": "IAS (EPID/DCAP) Quote report bytes.", "format": "binary" }, "csr": { "type": "string", "description": "Certificate Signing Request bytes." }, "attestation_type": { "type": "string", "description": "Node Attestation type (DCAP, NITRO_ENCLAVE, AMD_SEV_SNP, BAREMETAL_AMD_SEV_SNP or BAREMETAL_TDX)." } } }, "NodeErrorReport": { "required": [ "name", "message" ], "type": "object", "properties": { "message": { "type": "string", "description": "Error message containing the reason why node agent failed." }, "name": { "$ref": "#/components/schemas/NodeProvisionErrorType" } } }, "TaskStatusType": { "enum": [ "INPROGRESS", "FAILED", "SUCCESS", "DENIED" ], "type": "string", "description": "Status string for a task." }, "TaskError": { "required": [ "message" ], "type": "object", "properties": { "message": { "type": "string", "description": "Error message in case of task failures" } } }, "NodeProvisionErrorType": { "enum": [ "AESMD_FAILURE", "QUOTE_GENERATION_ERROR", "QUOTE_VERIFICATION_ERROR", "GROUP_OUT_OF_DATE", "SIGRL_VERSION_MISMATCH", "CONFIGURATION_NEEDED", "QUOTE_REVOKED", "SIGNATURE_INVALID", "DCAP_ERROR", "CPUSVN_OUT_OF_DATE", "PSW_OUT_OF_DATE", "BAD_PSW", "BAD DATA" ], "type": "string", "description": "Node agent attestation error type." } } } } ````