{
    "openapi": "3.1.2",
    "info": {
        "title": "ICOM public examples",
        "version": "0.10.0"
    },
    "servers": [
        {
            "url": "/"
        }
    ],
    "paths": {
        "/api/hello/{name}": {
            "get": {
                "operationId": "greeting",
                "summary": "Return a bounded public greeting",
                "security": [],
                "parameters": [
                    {
                        "name": "name",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Greeting with request identifier",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Greeting"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Name validation failed"
                    },
                    "429": {
                        "description": "Rate limit reached"
                    }
                }
            }
        },
        "/api/status": {
            "get": {
                "operationId": "status",
                "summary": "Framework preview release and serving runtime",
                "security": [],
                "responses": {
                    "200": {
                        "description": "Current public release information",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Status"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Status": {
                "type": "object",
                "required": [
                    "framework",
                    "version",
                    "release",
                    "runtime"
                ],
                "additionalProperties": false,
                "properties": {
                    "framework": {
                        "type": "string"
                    },
                    "version": {
                        "type": "string"
                    },
                    "release": {
                        "const": "developer-preview"
                    },
                    "runtime": {
                        "type": "string"
                    }
                }
            },
            "Greeting": {
                "type": "object",
                "required": [
                    "message",
                    "framework",
                    "request_id"
                ],
                "additionalProperties": false,
                "properties": {
                    "message": {
                        "type": "string"
                    },
                    "framework": {
                        "const": "ICOM"
                    },
                    "request_id": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{32}$"
                    }
                }
            }
        },
        "securitySchemes": {}
    }
}
