* luci/libs: uvl: add reference meta scheme
This commit is contained in:
parent
c6ea479b06
commit
4afe2a3d3e
1 changed files with 310 additions and 0 deletions
310
libs/uvl/root/lib/uci/schema/meta/schema
Normal file
310
libs/uvl/root/lib/uci/schema/meta/schema
Normal file
|
@ -0,0 +1,310 @@
|
||||||
|
# UVL - Reference-Spec
|
||||||
|
# This is a meta scheme defining the format of uci schemes.
|
||||||
|
# Note that this spec is overly strict, it requires that the "depends",
|
||||||
|
# "valueof" and "validator" fields are of type list but if only one value is
|
||||||
|
# given, the notation as "option" is allowed too.
|
||||||
|
# $Id$
|
||||||
|
|
||||||
|
package schema
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Central section definition
|
||||||
|
#
|
||||||
|
# config section
|
||||||
|
# option ...
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Section definition (schema.@section)
|
||||||
|
config section
|
||||||
|
option name 'section'
|
||||||
|
option title 'Definition of uci section'
|
||||||
|
option package 'schema'
|
||||||
|
option required false
|
||||||
|
option named false
|
||||||
|
option unique false
|
||||||
|
option dynamic false
|
||||||
|
|
||||||
|
# Section name (schema.@section.name)
|
||||||
|
config variable
|
||||||
|
option name 'name'
|
||||||
|
option title 'Name of the defined section'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required true
|
||||||
|
|
||||||
|
# Section package (schema.@section.package)
|
||||||
|
config variable
|
||||||
|
option name 'package'
|
||||||
|
option title 'Parent package of the defined section'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required true
|
||||||
|
|
||||||
|
# Section title (schema.@section.title)
|
||||||
|
config variable
|
||||||
|
option name 'title'
|
||||||
|
option title 'Title of the defined section'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Section description (schema.@section.description)
|
||||||
|
config variable
|
||||||
|
option name 'description'
|
||||||
|
option title 'Description of the defined section'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Section dependencies (schema.@section.depends)
|
||||||
|
config variable
|
||||||
|
option name 'depends'
|
||||||
|
option title 'List of dependencies within and between defined sections'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'list'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Section required flag (schema.@section.required)
|
||||||
|
config variable
|
||||||
|
option name 'required'
|
||||||
|
option title 'Specify whether at least one instance of this section type must be defined in config'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'boolean'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Section unique flag (schema.@section.unique)
|
||||||
|
config variable
|
||||||
|
option name 'unique'
|
||||||
|
option title 'Specify whether only one instance of this section type is allowed in config'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'boolean'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Section named flag (schema.@section.named)
|
||||||
|
config variable
|
||||||
|
option name 'named'
|
||||||
|
option title 'Specify whether sections of this type must have a name set (are not anonymous)'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'boolean'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Section dynamic flag (schema.@section.dynamic)
|
||||||
|
config variable
|
||||||
|
option name 'dynamic'
|
||||||
|
option title 'Specify whether sections of this type may contain arbitary, not specified options'
|
||||||
|
option section 'schema.section'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'boolean'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Central variable definition
|
||||||
|
#
|
||||||
|
# config variable
|
||||||
|
# option ...
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Variable definition (schema.@variable)
|
||||||
|
config section
|
||||||
|
option name 'variable'
|
||||||
|
option title 'Definition of uci variable'
|
||||||
|
option package 'schema'
|
||||||
|
option required false
|
||||||
|
option named false
|
||||||
|
option unique false
|
||||||
|
option dynamic false
|
||||||
|
|
||||||
|
# Variable name (schema.@variable.name)
|
||||||
|
config variable
|
||||||
|
option name 'name'
|
||||||
|
option title 'Name of the defined variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required true
|
||||||
|
|
||||||
|
# Variable section (schema.@variable.section)
|
||||||
|
config variable
|
||||||
|
option name 'section'
|
||||||
|
option title 'Parent section of the defined variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required true
|
||||||
|
|
||||||
|
# Variable title (schema.@variable.title)
|
||||||
|
config variable
|
||||||
|
option name 'title'
|
||||||
|
option title 'Title of the defined variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Variable description (schema.@variable.description)
|
||||||
|
config variable
|
||||||
|
option name 'description'
|
||||||
|
option title 'Description of the defined variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Variable dependencies (schema.@variable.depends)
|
||||||
|
config variable
|
||||||
|
option name 'depends'
|
||||||
|
option title 'List of dependencies between defined variables'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'list'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Variable required flag (schema.@variable.required)
|
||||||
|
config variable
|
||||||
|
option name 'required'
|
||||||
|
option title 'Specify whether this variable must be set in config'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'boolean'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Variable type (schema.@variable.type)
|
||||||
|
config variable
|
||||||
|
option name 'type'
|
||||||
|
option title 'Type of this variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'enum'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Plain variable type (schema.@variable.type=variable)
|
||||||
|
config enum
|
||||||
|
option value 'variable'
|
||||||
|
option title 'This is a plain variable'
|
||||||
|
option variable 'schema.variable.type'
|
||||||
|
|
||||||
|
# Enum variable type (schema.@variable.type=enum)
|
||||||
|
config enum
|
||||||
|
option value 'enum'
|
||||||
|
option title 'This is a enum variable'
|
||||||
|
option variable 'schema.variable.type'
|
||||||
|
|
||||||
|
# List variable type (schema.@variable.type=list)
|
||||||
|
config enum
|
||||||
|
option value 'list'
|
||||||
|
option title 'This is a list variable'
|
||||||
|
option variable 'schema.variable.type'
|
||||||
|
|
||||||
|
# Reference variable type (schema.@variable.type=reference)
|
||||||
|
config enum
|
||||||
|
option value 'reference'
|
||||||
|
option title 'This is a reference (valueof) variable'
|
||||||
|
option variable 'schema.variable.type'
|
||||||
|
|
||||||
|
# Variable datatype (schema.@variable.datatype)
|
||||||
|
config variable
|
||||||
|
option name 'datatype'
|
||||||
|
option title 'Datatype of this variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Variable validators (schema.@variable.validator)
|
||||||
|
config variable
|
||||||
|
option name 'validator'
|
||||||
|
option title 'Datatype of this variable'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'list'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Variable value references (schema.@variable.valueof)
|
||||||
|
config variable
|
||||||
|
option name 'valueof'
|
||||||
|
option title 'Reference to section or option to read values from'
|
||||||
|
option section 'schema.variable'
|
||||||
|
option type 'list'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Central enum definition
|
||||||
|
#
|
||||||
|
# config enum
|
||||||
|
# option ...
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Enum definition (schema.@enum)
|
||||||
|
config section
|
||||||
|
option name 'enum'
|
||||||
|
option title 'Definition of uci enum value'
|
||||||
|
option package 'schema'
|
||||||
|
option required false
|
||||||
|
option named false
|
||||||
|
option unique false
|
||||||
|
option dynamic false
|
||||||
|
|
||||||
|
# Enum value (schema.@enum.value)
|
||||||
|
config variable
|
||||||
|
option name 'name'
|
||||||
|
option title 'Name of the defined variable'
|
||||||
|
option section 'schema.enum'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required true
|
||||||
|
|
||||||
|
# Enum variable (schema.@enum.variable)
|
||||||
|
config variable
|
||||||
|
option name 'variable'
|
||||||
|
option title 'Parent variable of the defined enum value'
|
||||||
|
option section 'schema.enum'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required true
|
||||||
|
|
||||||
|
# Enum value title (schema.@enum.title)
|
||||||
|
config variable
|
||||||
|
option name 'title'
|
||||||
|
option title 'Title of the defined enum value'
|
||||||
|
option section 'schema.enum'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Enum value description (schema.@enum.description)
|
||||||
|
config variable
|
||||||
|
option name 'description'
|
||||||
|
option title 'Description of the defined enum value'
|
||||||
|
option section 'schema.enum'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Enum value dependencies (schema.@enum.depends)
|
||||||
|
config variable
|
||||||
|
option name 'depends'
|
||||||
|
option title 'List of dependencies on defined variables'
|
||||||
|
option section 'schema.enum'
|
||||||
|
option type 'list'
|
||||||
|
option datatype 'string'
|
||||||
|
option required false
|
||||||
|
|
||||||
|
# Enum value default flag (schema.@enum.default)
|
||||||
|
config variable
|
||||||
|
option name 'default'
|
||||||
|
option title 'Specify whether this value is the default value of the parent enum'
|
||||||
|
option section 'schema.enum'
|
||||||
|
option type 'variable'
|
||||||
|
option datatype 'boolean'
|
||||||
|
option required false
|
Loading…
Reference in a new issue