{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "type" : "object",
  "properties" : {
    "cmsMetaRequest" : {
      "$ref" : "#/$defs/CmsMetaRequest"
    },
    "compositeContext" : {
      "$ref" : "#/$defs/CompositeContext"
    },
    "compositeInfo" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/CompositeInfo"
      }
    },
    "contentObject" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/ContentObject"
      }
    },
    "form" : {
      "$ref" : "#/$defs/Form"
    },
    "formContext" : {
      "$ref" : "#/$defs/FormContext"
    },
    "logicInfo" : {
      "$ref" : "#/$defs/LogicInfo"
    },
    "parameterInfo" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/ParameterInfo"
      }
    },
    "variableInfo" : {
      "$ref" : "#/$defs/VariableInfo"
    }
  },
  "$defs" : {
    "Button" : {
      "type" : "object",
      "properties" : {
        "action" : {
          "type" : "string"
        },
        "disabled" : {
          "type" : "string"
        },
        "icon" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "processOnlySelf" : {
          "type" : "boolean"
        },
        "variant" : {
          "$ref" : "#/$defs/ButtonVariant"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ButtonVariant" : {
      "type" : "string",
      "enum" : [ "PRIMARY", "SECONDARY", "DANGER" ]
    },
    "Checkbox" : {
      "type" : "object",
      "properties" : {
        "disabled" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "selected" : {
          "type" : "string"
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "CmsMetaRequest" : {
      "type" : "object",
      "properties" : {
        "context" : {
          "$ref" : "#/$defs/FormContext"
        },
        "requiredProjects" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "Combobox" : {
      "type" : "object",
      "properties" : {
        "completeMethod" : {
          "type" : "string"
        },
        "disabled" : {
          "type" : "string"
        },
        "itemLabel" : {
          "type" : "string"
        },
        "itemValue" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "required" : {
          "type" : "string"
        },
        "requiredMessage" : {
          "type" : "string"
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        },
        "withDropdown" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "Component" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string",
          "enum" : [ "Button", "Checkbox", "Combobox", "Composite", "DataTable", "DatePicker", "Fieldset", "Input", "Layout", "Link", "Panel", "Radio", "Select", "Text", "Textarea" ]
        },
        "config" : {
          "anyOf" : [ {
            "$ref" : "#/$defs/Button"
          }, {
            "$ref" : "#/$defs/Checkbox"
          }, {
            "$ref" : "#/$defs/Combobox"
          }, {
            "$ref" : "#/$defs/Composite"
          }, {
            "$ref" : "#/$defs/DataTable"
          }, {
            "$ref" : "#/$defs/DatePicker"
          }, {
            "$ref" : "#/$defs/Fieldset"
          }, {
            "$ref" : "#/$defs/Input"
          }, {
            "$ref" : "#/$defs/Layout"
          }, {
            "$ref" : "#/$defs/Link"
          }, {
            "$ref" : "#/$defs/Panel"
          }, {
            "$ref" : "#/$defs/Radio"
          }, {
            "$ref" : "#/$defs/Select"
          }, {
            "$ref" : "#/$defs/Text"
          }, {
            "$ref" : "#/$defs/Textarea"
          } ]
        }
      },
      "additionalProperties" : false
    },
    "Composite" : {
      "type" : "object",
      "properties" : {
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "parameters" : {
          "$ref" : "#/$defs/Map(String,String)"
        },
        "startMethod" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "CompositeContext" : {
      "type" : "object",
      "properties" : {
        "compositeId" : {
          "type" : "string"
        },
        "context" : {
          "$ref" : "#/$defs/FormContext"
        }
      },
      "additionalProperties" : false
    },
    "CompositeInfo" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string"
        },
        "startMethods" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/MethodInfo"
          }
        }
      },
      "additionalProperties" : false
    },
    "ContentObject" : {
      "type" : "object",
      "properties" : {
        "children" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/ContentObject"
          }
        },
        "fullPath" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/ContentObjectType"
        },
        "values" : {
          "$ref" : "#/$defs/Map(String,String)"
        }
      },
      "additionalProperties" : false
    },
    "ContentObjectType" : {
      "type" : "string",
      "enum" : [ "STRING", "FILE", "FOLDER" ]
    },
    "DataTable" : {
      "type" : "object",
      "properties" : {
        "components" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/DataTableColumn"
          }
        },
        "lgSpan" : {
          "type" : "string"
        },
        "maxRows" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "paginator" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "DataTableColumn" : {
      "type" : "object",
      "properties" : {
        "config" : {
          "$ref" : "#/$defs/DataTableColumnConfig"
        },
        "id" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "DataTableColumnConfig" : {
      "type" : "object",
      "properties" : {
        "filterable" : {
          "type" : "boolean"
        },
        "header" : {
          "type" : "string"
        },
        "sortable" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "DatePicker" : {
      "type" : "object",
      "properties" : {
        "datePattern" : {
          "type" : "string"
        },
        "disabled" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "required" : {
          "type" : "string"
        },
        "requiredMessage" : {
          "type" : "string"
        },
        "showTime" : {
          "type" : "boolean"
        },
        "timePattern" : {
          "type" : "string"
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Fieldset" : {
      "type" : "object",
      "properties" : {
        "collapsed" : {
          "type" : "boolean"
        },
        "collapsible" : {
          "type" : "boolean"
        },
        "components" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Component"
          }
        },
        "legend" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Form" : {
      "type" : "object",
      "properties" : {
        "$schema" : {
          "type" : "string"
        },
        "id" : {
          "type" : "string",
          "format" : "uuid"
        },
        "config" : {
          "$ref" : "#/$defs/FormConfig"
        },
        "components" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Component"
          }
        }
      },
      "additionalProperties" : false
    },
    "FormConfig" : {
      "type" : "object",
      "properties" : {
        "renderer" : {
          "type" : "string",
          "enum" : [ "JSF" ]
        },
        "theme" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "FormContext" : {
      "type" : "object",
      "properties" : {
        "app" : {
          "type" : "string"
        },
        "file" : {
          "type" : "string"
        },
        "pmv" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Input" : {
      "type" : "object",
      "properties" : {
        "disabled" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "required" : {
          "type" : "string"
        },
        "requiredMessage" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/InputType"
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "InputType" : {
      "type" : "string",
      "enum" : [ "TEXT", "EMAIL", "PASSWORD", "NUMBER" ]
    },
    "Layout" : {
      "type" : "object",
      "properties" : {
        "components" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Component"
          }
        },
        "gridVariant" : {
          "$ref" : "#/$defs/LayoutGridVariant"
        },
        "justifyContent" : {
          "$ref" : "#/$defs/LayoutJustifyContent"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/LayoutType"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "LayoutGridVariant" : {
      "type" : "string",
      "enum" : [ "GRID2", "GRID4", "FREE" ]
    },
    "LayoutJustifyContent" : {
      "type" : "string",
      "enum" : [ "NORMAL", "END" ]
    },
    "LayoutType" : {
      "type" : "string",
      "enum" : [ "GRID", "FLEX" ]
    },
    "Link" : {
      "type" : "object",
      "properties" : {
        "href" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "LogicEventInfo" : {
      "type" : "object",
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "LogicInfo" : {
      "type" : "object",
      "properties" : {
        "eventStarts" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LogicEventInfo"
          }
        },
        "startMethods" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/LogicMethodInfo"
          }
        }
      },
      "additionalProperties" : false
    },
    "LogicMethodInfo" : {
      "type" : "object",
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "parameters" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Parameter"
          }
        },
        "returnParameter" : {
          "$ref" : "#/$defs/Parameter"
        }
      },
      "additionalProperties" : false
    },
    "Map(String,List(Variable))" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "array",
        "items" : {
          "$ref" : "#/$defs/Variable"
        }
      }
    },
    "Map(String,String)" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "MethodInfo" : {
      "type" : "object",
      "properties" : {
        "deprecated" : {
          "type" : "boolean"
        },
        "name" : {
          "type" : "string"
        },
        "parameters" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/ParameterInfo"
          }
        }
      },
      "additionalProperties" : false
    },
    "OrientationType" : {
      "type" : "string",
      "enum" : [ "horizontal", "vertical" ]
    },
    "Panel" : {
      "type" : "object",
      "properties" : {
        "collapsed" : {
          "type" : "boolean"
        },
        "collapsible" : {
          "type" : "boolean"
        },
        "components" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Component"
          }
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "title" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Parameter" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ParameterInfo" : {
      "type" : "object",
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Radio" : {
      "type" : "object",
      "properties" : {
        "disabled" : {
          "type" : "string"
        },
        "dynamicItemsLabel" : {
          "type" : "string"
        },
        "dynamicItemsList" : {
          "type" : "string"
        },
        "dynamicItemsValue" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "orientation" : {
          "$ref" : "#/$defs/OrientationType"
        },
        "required" : {
          "type" : "string"
        },
        "requiredMessage" : {
          "type" : "string"
        },
        "staticItems" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/SelectItem"
          }
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Select" : {
      "type" : "object",
      "properties" : {
        "disabled" : {
          "type" : "string"
        },
        "dynamicItemsLabel" : {
          "type" : "string"
        },
        "dynamicItemsList" : {
          "type" : "string"
        },
        "dynamicItemsValue" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "required" : {
          "type" : "string"
        },
        "requiredMessage" : {
          "type" : "string"
        },
        "staticItems" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/SelectItem"
          }
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "SelectItem" : {
      "type" : "object",
      "properties" : {
        "label" : {
          "type" : "string"
        },
        "value" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Text" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string"
        },
        "icon" : {
          "type" : "string"
        },
        "iconStyle" : {
          "$ref" : "#/$defs/TextIconStyle"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/TextType"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "TextIconStyle" : {
      "type" : "string",
      "enum" : [ "INLINE", "BLOCK" ]
    },
    "TextType" : {
      "type" : "string",
      "enum" : [ "RAW", "MARKDOWN" ]
    },
    "Textarea" : {
      "type" : "object",
      "properties" : {
        "autoResize" : {
          "type" : "boolean"
        },
        "disabled" : {
          "type" : "string"
        },
        "label" : {
          "type" : "string"
        },
        "lgSpan" : {
          "type" : "string"
        },
        "mdSpan" : {
          "type" : "string"
        },
        "required" : {
          "type" : "string"
        },
        "requiredMessage" : {
          "type" : "string"
        },
        "rows" : {
          "type" : "string"
        },
        "updateOnChange" : {
          "type" : "boolean"
        },
        "value" : {
          "type" : "string"
        },
        "visible" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Variable" : {
      "type" : "object",
      "properties" : {
        "attribute" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "simpleType" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "VariableInfo" : {
      "type" : "object",
      "properties" : {
        "types" : {
          "$ref" : "#/$defs/Map(String,List(Variable))"
        },
        "variables" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Variable"
          }
        }
      },
      "additionalProperties" : false
    }
  }
}
