Smithy · JSON Structure

Smithy Model Structure

JSON structure documentation for a Smithy model in JSON AST representation

Type: object Properties: 0
Code GenerationIDLSDKsAPI DesignInterface Definition LanguageToolchain

Smithy Model Structure is a JSON Structure definition published by Smithy.

Meta-schema:

JSON Structure

smithy-model-structure.json Raw ↑
{
  "title": "Smithy Model JSON AST Structure",
  "description": "JSON structure documentation for a Smithy model in JSON AST representation",
  "type": "object",
  "fields": [
    {"name": "smithy", "type": "string", "required": true, "description": "Smithy version (e.g., '2.0')"},
    {"name": "metadata", "type": "object", "required": false, "description": "Model-level metadata key-value pairs"},
    {"name": "shapes", "type": "object", "required": false, "description": "All shapes in the model keyed by absolute shape ID", "items": {
      "type": "object",
      "description": "A Smithy shape",
      "fields": [
        {"name": "type", "type": "enum", "required": true, "values": ["blob", "boolean", "string", "integer", "long", "float", "double", "timestamp", "document", "list", "map", "structure", "union", "enum", "intEnum", "service", "resource", "operation"]},
        {"name": "traits", "type": "object", "required": false, "description": "Traits applied to the shape"},
        {"name": "members", "type": "object", "required": false, "description": "Named members (for structures and unions)"},
        {"name": "member", "type": "object", "required": false, "description": "Collection member (for lists)"},
        {"name": "key", "type": "object", "required": false, "description": "Map key shape (for maps)"},
        {"name": "value", "type": "object", "required": false, "description": "Map value shape (for maps)"},
        {"name": "input", "type": "object", "required": false, "description": "Input shape reference (for operations)"},
        {"name": "output", "type": "object", "required": false, "description": "Output shape reference (for operations)"},
        {"name": "errors", "type": "array", "required": false, "description": "Error shape references (for operations)"},
        {"name": "version", "type": "string", "required": false, "description": "Service API version (for services)"},
        {"name": "operations", "type": "array", "required": false, "description": "Operation references (for services and resources)"},
        {"name": "resources", "type": "array", "required": false, "description": "Resource references (for services)"}
      ]
    }}
  ]
}