{
  "definitions": {
    "Collection": {
      "type": "object",
      "properties": {
        "totalResults": {
          "type": "integer"
        },
        "startIndex": {
          "type": "integer"
        },
        "entry": {
          "type": "array",
          "items": {
            "$generic": "T"
          }
        }
      }
    },
    "Collection_Query": {
      "type": "object",
      "properties": {
        "startIndex": {
          "type": "integer"
        },
        "count": {
          "type": "integer"
        },
        "search": {
          "type": "string"
        }
      }
    },
    "Collection_Category_Query": {
      "$extends": "Collection_Query",
      "type": "object",
      "properties": {
        "categoryId": {
          "type": "integer"
        }
      }
    },
    "Message": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "Form_Container": {
      "type": "object",
      "properties": {
        "element": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "Form_Element_Input"
              },
              {
                "$ref": "Form_Element_Select"
              },
              {
                "$ref": "Form_Element_Tag"
              },
              {
                "$ref": "Form_Element_TextArea"
              }
            ],
            "discriminator": {
              "propertyName": "element",
              "mapping": {
                "http://fusio-project.org/ns/2015/form/input": "Form_Element_Input",
                "http://fusio-project.org/ns/2015/form/select": "Form_Element_Select",
                "http://fusio-project.org/ns/2015/form/tag": "Form_Element_Tag",
                "http://fusio-project.org/ns/2015/form/textarea": "Form_Element_TextArea"
              }
            }
          }
        }
      }
    },
    "Form_Element": {
      "type": "object",
      "properties": {
        "element": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "help": {
          "type": "string"
        }
      },
      "required": [
        "element"
      ]
    },
    "Form_Element_Input": {
      "$extends": "Form_Element",
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        }
      }
    },
    "Form_Element_Select_Option": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "Form_Element_Select": {
      "$extends": "Form_Element",
      "type": "object",
      "properties": {
        "options": {
          "type": "array",
          "items": {
            "$ref": "Form_Element_Select_Option"
          }
        }
      }
    },
    "Form_Element_Tag": {
      "$extends": "Form_Element",
      "type": "object",
      "properties": {
      }
    },
    "Form_Element_TextArea": {
      "$extends": "Form_Element",
      "type": "object",
      "properties": {
        "mode": {
          "type": "string"
        }
      }
    },
    "Form_Query": {
      "type": "object",
      "properties": {
        "class": {
          "type": "string"
        }
      }
    }
  }
}
