> ## Documentation Index > Fetch the complete documentation index at: https://kb.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # Setup Data Engine > Setup Data Engine for the tenant. Replaces /setup-provisioning. ## OpenAPI ````json POST /data-engine { "openapi": "3.0.3", "info": { "title": "VAST DataEngine API", "description": "Combined OpenAPI specification for Document360: Provisioning, Telemetries Query, Telemetries Collector, and shared common components.", "version": "1.4.0" }, "servers": [ { "url": "http://localhost:3000", "description": "Provisioning Service (Local development server)" }, { "url": "http://localhost:8080/query_telemetries", "description": "Telemetries Query Service (Local development server)" }, { "url": "http://localhost:8080/telemetries", "description": "Telemetries Collector Service (Local development server)" } ], "tags": [ { "name": "Provisioning Service v1.4.0", "description": "Provisioning Service API" }, { "name": "Provisioning Service v1.4.0 > dataEngine", "description": "Data Engine lifecycle" }, { "name": "Provisioning Service v1.4.0 > setup_provisioning", "description": "Deprecated provisioning setup" }, { "name": "Provisioning Service v1.4.0 > pipelines", "description": "Pipelines" }, { "name": "Provisioning Service v1.4.0 > pipelineRevisions", "description": "Pipeline revisions" }, { "name": "Provisioning Service v1.4.0 > functions", "description": "Functions" }, { "name": "Provisioning Service v1.4.0 > functionRevisions", "description": "Function revisions" }, { "name": "Provisioning Service v1.4.0 > functionRevisionsDeprecated", "description": "Deprecated function revision endpoints" }, { "name": "Provisioning Service v1.4.0 > triggers", "description": "Triggers" }, { "name": "Provisioning Service v1.4.0 > topics", "description": "Topics" }, { "name": "Provisioning Service v1.4.0 > containerRegistries", "description": "Container registries" }, { "name": "Provisioning Service v1.4.0 > kubernetesClusters", "description": "Kubernetes clusters" }, { "name": "Provisioning Service v1.4.0 > kubernetesSecrets", "description": "Kubernetes secrets" }, { "name": "Provisioning Service v1.4.0 > mtlsAuthenticationCredentials", "description": "mTLS authentication credentials" }, { "name": "Provisioning Service v1.4.0 > dashboard", "description": "Dashboard" }, { "name": "Provisioning Service v1.4.0 > reports", "description": "Saved reports" }, { "name": "Telemetries Collector Service v1.4.0", "description": "API for collecting OTEL signals (traces, logs and metrics)" }, { "name": "Telemetries Collector Service v1.4.0 > collect_telemetries", "description": "Collect OTEL signals" }, { "name": "Telemetries Query Service v1.4.0", "description": "API for querying traces, logs and metrics" }, { "name": "Telemetries Query Service v1.4.0 > query_telemetries", "description": "Query traces and logs" }, { "name": "Telemetries Query Service v1.4.0 > metrics", "description": "Query metrics" }, { "name": "Telemetries Query Service v1.4.0 > reports", "description": "Saved reports" } ], "paths": { "/data-engine": { "post": { "summary": "Setup Data Engine", "description": "Setup Data Engine for the tenant. Replaces /setup-provisioning.", "operationId": "setup_data_engine", "tags": [ "Provisioning Service v1.4.0 > dataEngine" ], "requestBody": { "required": "true", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetupDataEngineRequest" } } } }, "responses": { "200": { "description": "Data Engine setup initiated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DataEngineStatus" } } } }, "400": { "$ref": "#/components/responses/BadRequestError" }, "401": { "$ref": "#/components/responses/UnauthorizedError" }, "403": { "$ref": "#/components/responses/ForbiddenError" }, "409": { "$ref": "#/components/responses/ConflictError" }, "422": { "$ref": "#/components/responses/ValidationError" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } } }, "components": { "schemas": { "SetupDataEngineRequest": { "type": "object", "description": "Request body for setting up Data Engine", "required": [ "kafka_broker", "default_topic_name", "dead_letter_topic_name" ], "properties": { "vip_pools": { "type": "array", "description": "VIP Pools to use for the telemetries collector", "items": { "type": "integer" } }, "kafka_broker": { "$ref": "#/components/schemas/Broker" }, "default_topic_name": { "type": "string", "description": "The name of the default topic" }, "dead_letter_topic_name": { "type": "string", "description": "The name of the dead letter topic" }, "kafka_ca_certificate": { "type": "string", "description": "Optional CA certificate for Kafka broker (Base64 encoded). Must be provided if the Kafka broker is using TLS.", "nullable": "true" } } }, "DataEngineStatus": { "type": "object", "description": "Unified status for Data Engine setup and deletion operations", "properties": { "setup": { "$ref": "#/components/schemas/DataEngineSetupStatus" }, "deletion": { "$ref": "#/components/schemas/DataEngineDeletionStatus" }, "deprecated_api_used": { "type": "boolean", "description": "True if the request came from a deprecated endpoint", "default": "false" } }, "required": [ "setup", "deletion" ] }, "Broker": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/BrokerType" }, "url": { "type": "string", "deprecated": "true", "description": "Deprecated. The broker URL is now resolved from VMS by broker name. This field is ignored for VMS-registered brokers and only used as a legacy fallback for brokers not yet registered in VMS. It will be removed in a future release.", "example": "https://kafka.example.com:6969" }, "name": { "type": "string", "description": "Broker name for external or Bucket (View) name for internal.", "example": "my-kafka-broker", "maxLength": "40" }, "is_accessible_to_data_engine": { "type": "boolean", "default": "true", "description": "When true (default), the Data Engine will periodically validate that the broker is accessible. Set to false if the broker is not reachable from the Data Engine (e.g., external brokers behind firewalls)." } }, "required": [ "type", "name" ] }, "DataEngineSetupStatus": { "type": "object", "description": "Status of the Data Engine setup process", "properties": { "status": { "$ref": "#/components/schemas/DataEngineSetupStatusEnum" }, "started_at": { "type": "string", "format": "date-time", "description": "When the setup process was started" }, "completed_at": { "type": "string", "format": "date-time", "description": "When the setup process completed successfully" }, "message": { "type": "string", "description": "Current status message or error details" }, "parameters": { "$ref": "#/components/schemas/SetupDataEngineRequest" } }, "required": [ "status" ] }, "DataEngineDeletionStatus": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/DeletionStatusEnum", "default": "idle" }, "started_at": { "type": "string", "format": "date-time", "description": "When the deletion process was started" }, "message": { "type": "string", "description": "Status message or error details" } }, "required": [ "status" ] }, "ErrorResponse": { "type": "object", "properties": { "detail": { "type": "string" }, "source": { "$ref": "#/components/schemas/ErrorSource" }, "code": { "type": "string", "description": "Optional machine-readable error code for clients to branch on instead of parsing `detail`." } } }, "ValidationErrorResponse": { "type": "object", "properties": { "detail": { "type": "string", "description": "String representation of a mapping between field names and error messages", "example": "{\"url\": \"URL must include a protocol\", \"port\": \"Port must be an integer\"}" } } }, "BrokerType": { "type": "string", "enum": [ "External", "Internal" ] }, "DataEngineSetupStatusEnum": { "type": "string", "enum": [ "not_started", "in_progress", "completed", "error" ], "description": "The current status of the Data Engine setup process" }, "DeletionStatusEnum": { "type": "string", "enum": [ "idle", "in_progress", "error" ], "description": "The current status of the data engine deletion process" }, "ErrorSource": { "type": "object", "description": "Represents the underlying problem that made Data Engine raise the error", "properties": { "source_type": { "type": "string", "description": "The component where the error happened", "example": "kubernetes | vms | vdb | registry" }, "source_name": { "type": "string", "description": "The name of the source compoenent", "example": "my-cluster" }, "inner_error": { "type": "string", "description": "The error message from the source component", "example": "Failed to connect to the cluster" } } } }, "responses": { "BadRequestError": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "UnauthorizedError": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "ForbiddenError": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "ConflictError": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "ValidationError": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } } }, "InternalServerError": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } } ````