Restate · Schema

Deployment

Represents a Restate service deployment registration — a URI endpoint that hosts one or more durable services.

Durable ExecutionWorkflowsMicroservicesOrchestrationDistributed Systems

Properties

Name Type Description
id string Unique identifier for the deployment.
uri string The URI of the service deployment endpoint.
protocol_type string The HTTP protocol type used for communication.
http_version string The HTTP version used (e.g., HTTP_2, HTTP_11).
additional_headers object Additional HTTP headers to include when calling the deployment.
created_at string ISO 8601 timestamp when the deployment was registered.
services array List of services hosted by this deployment.
View JSON Schema on GitHub

JSON Schema

restate-deployment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/restate/refs/heads/main/json-schema/restate-deployment-schema.json",
  "title": "Deployment",
  "description": "Represents a Restate service deployment registration — a URI endpoint that hosts one or more durable services.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the deployment."
    },
    "uri": {
      "type": "string",
      "format": "uri",
      "description": "The URI of the service deployment endpoint."
    },
    "protocol_type": {
      "type": "string",
      "description": "The HTTP protocol type used for communication.",
      "enum": ["RequestResponse", "BidiStream"]
    },
    "http_version": {
      "type": "string",
      "description": "The HTTP version used (e.g., HTTP_2, HTTP_11)."
    },
    "additional_headers": {
      "type": "object",
      "description": "Additional HTTP headers to include when calling the deployment.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the deployment was registered."
    },
    "services": {
      "type": "array",
      "description": "List of services hosted by this deployment.",
      "items": {
        "$ref": "#/$defs/ServiceMetadata"
      }
    }
  },
  "required": ["id", "uri"],
  "$defs": {
    "ServiceMetadata": {
      "type": "object",
      "description": "Metadata for a Restate service.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The service name."
        },
        "ty": {
          "type": "string",
          "description": "The service type.",
          "enum": ["Service", "VirtualObject", "Workflow"]
        },
        "deployment_id": {
          "type": "string",
          "description": "The deployment that hosts this service."
        },
        "revision": {
          "type": "integer",
          "description": "The service revision number."
        },
        "public": {
          "type": "boolean",
          "description": "Whether the service is publicly accessible."
        },
        "idempotency_retention": {
          "type": "string",
          "description": "Duration for retaining idempotency keys."
        },
        "workflow_completion_retention": {
          "type": "string",
          "description": "Duration for retaining workflow completion state."
        },
        "handlers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HandlerMetadata"
          }
        }
      },
      "required": ["name", "ty"]
    },
    "HandlerMetadata": {
      "type": "object",
      "description": "Metadata for a durable handler within a service.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The handler name."
        },
        "ty": {
          "type": "string",
          "description": "The handler type.",
          "enum": ["Exclusive", "Shared", "Workflow"]
        },
        "input": {
          "type": "object",
          "description": "Input schema for the handler.",
          "properties": {
            "required": {"type": "boolean"},
            "contentType": {"type": "string"},
            "jsonSchema": {"type": "object"}
          }
        },
        "output": {
          "type": "object",
          "description": "Output schema for the handler.",
          "properties": {
            "contentType": {"type": "string"},
            "setContentTypeIfEmpty": {"type": "boolean"},
            "jsonSchema": {"type": "object"}
          }
        }
      },
      "required": ["name", "ty"]
    }
  }
}