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
{
"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)"}
]
}}
]
}