{
  "openapi": "3.1.1",
  "info": {
    "title": "Veran.Api | v2",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://conlang.bigsafford.com/"
    }
  ],
  "paths": {
    "/health/live": {
      "get": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "GetLiveness",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/health/ready": {
      "get": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "GetReadiness",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/metadata": {
      "get": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "GetMetadata",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationVersions"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/validate": {
      "post": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "ValidateVeran",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/unicode-registry": {
      "get": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "GetUnicodeRegistry",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnicodeRegistryResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/translate": {
      "post": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "Translate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/parse": {
      "post": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "ParseSpokenVeran",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TextRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/explain": {
      "post": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "ExplainSpokenVeran",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TextRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/graph/parse": {
      "post": {
        "tags": [
          "Veran.Api"
        ],
        "operationId": "ParseVeranGraph",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TextRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "HealthResponse": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        }
      },
      "TextRequest": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "TranslateOptions": {
        "required": [
          "evidencePolicy"
        ],
        "type": "object",
        "properties": {
          "evidencePolicy": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "TranslateRequest": {
        "required": [
          "sourceLanguage",
          "targetLanguage",
          "text",
          "options"
        ],
        "type": "object",
        "properties": {
          "sourceLanguage": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetLanguage": {
            "type": [
              "null",
              "string"
            ]
          },
          "text": {
            "type": [
              "null",
              "string"
            ]
          },
          "options": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TranslateOptions"
              }
            ]
          }
        }
      },
      "TranslationVersions": {
        "required": [
          "language",
          "unicodeRegistry",
          "lexicon",
          "translator"
        ],
        "type": "object",
        "properties": {
          "language": {
            "type": "string"
          },
          "unicodeRegistry": {
            "type": "string"
          },
          "lexicon": {
            "type": "string"
          },
          "translator": {
            "type": "string"
          }
        }
      },
      "UnicodeRegistryResult": {
        "required": [
          "version",
          "encoding",
          "normalization",
          "symbols"
        ],
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "encoding": {
            "type": "string"
          },
          "normalization": {
            "type": "string"
          },
          "symbols": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnicodeSymbolResult"
            }
          }
        }
      },
      "UnicodeSymbolResult": {
        "required": [
          "character",
          "codePoint",
          "semanticClass",
          "meaning"
        ],
        "type": "object",
        "properties": {
          "character": {
            "type": "string"
          },
          "codePoint": {
            "type": "string"
          },
          "semanticClass": {
            "type": "string"
          },
          "meaning": {
            "type": "string"
          }
        }
      },
      "ValidateRequest": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Veran.Api"
    }
  ]
}