{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/liferay/liferay-js-toolkit/master/resources/schemas/configuration.schema.json", "type": "object", "title": "Widget Configuration", "definitions": { "name": { "type": "string", "title": "Configuration Name", "pattern": "^(.*)$" }, "field": { "$id": "#/definitions/commonField", "type": "object", "title": "Configuration Field", "required": ["type", "name"], "properties": { "name": { "type": "string", "title": "Field Name", "pattern": "^(.*)$" }, "description": { "type": "string", "title": "Field Description", "pattern": "^(.*)$" }, "default": { "type": "string", "title": "Default Field Value", "pattern": "^(.*)$" }, "options": { "type": "object", "title": "Enumerated Field Values", "additionalProperties": { "type": "string", "title": "Enumerated Field Value:Label", "pattern": "^(.*)$" } }, "repeatable": { "type": "boolean", "title": "Multiple Field Flag", "default": false } } }, "systemField": { "$ref": "#/definitions/field", "properties": { "type": { "type": "string", "title": "Field Type", "enum": ["number", "float", "string", "boolean", "password"] } } }, "portletInstanceField": { "$ref": "#/definitions/field", "properties": { "type": { "type": "string", "title": "Field Type", "enum": ["number", "float", "string", "boolean"] } } } }, "properties": { "system": { "type": "object", "title": "System Configuration Description", "required": ["fields"], "properties": { "category": { "type": "string", "title": "Configuration Category", "pattern": "^(.*)$" }, "name": { "$ref": "#/definitions/name" }, "fields": { "type": "object", "title": "Configuration Fields", "additionalProperties": { "$ref": "#/definitions/systemField" } } } }, "portletInstance": { "type": "object", "title": "Portlet Instance Configuration Description", "required": ["fields"], "properties": { "name": { "$ref": "#/definitions/name" }, "fields": { "type": "object", "title": "Configuration Fields", "additionalProperties": { "$ref": "#/definitions/portletInstanceField" } } } } } }