# Общие поля
* `type`  
* `required` - по дефолту `false`
* `primary_key` - только одно поле в объекте имеет статус `true`, остальные по дефолту `false`

# Primary key
```json
"if": {
    "primaryKey": true,
    "type": "range",
    "multiple": false,
    "range": {
        "em2": "em2 (aa:bb:cc:dd:ff:aa)",
        "em3": "em3 (aa:bb:cc:dd:ff:aa)"
    },
    "allowCustomValue": false
},
```

# Bool
```json
"enable": {
    "type": "bool"
},
```

# Regexp
```json
"descr": {
    "type": "regexp",
    "pattern": "/^[A-Za-z]{1}[A-Za-z0-9_]{2,15}$/",
    "not": false
},
```

# Range
## Not required
```json
"type": {
    "type": "range",
    "multiple": false,
    "range": {
        "none": "None",
        "staticv4": "Static IPv4",
        "dhcp": "DHCP"
    },
    "allowCustomValue": false
},
```
## Required
```json
"gateway": {
    "required": true,
    "type": "range",
    "multiple": false,
    "range": {
        "none": "Auto-detect"
    },
    "allowCustomValue": false
},
```

# Number
## Not required
```json
"mtu": {
    "type": "number",
    "allowArray": false,
    "integerOnly": false,
    "min": 576,
    "max": 65535
},
```
## Required
```json
"subnet": {
    "required": true,
    "type": "number",
    "allowArray": false,
    "integerOnly": false,
    "min": 1,
    "max": 32
},
```

# IP
## Required
```json
"ipaddr": {
    "required": true,
    "type": "ip",
    "networks": false,
    "ipv6": false,
    "ipv4": true,
    "subnet": false,
    "expandIPv6": false
},
```
## Not required
```json
"alias_address": {
    "type": "ip",
    "networks": false,
    "ipv6": false,
    "ipv4": true,
    "subnet": false,
    "expandIPv6": false
},
```

# Unknown
```json
"system_name": {
    "required": true
},
```
```json
"spoofmac": {
    "type": "mac"
},
```
```json
"dhcphostname": {
    "type": "hostname"
},
```

# Вопросы
1. Что означает `integer_only` в option'ах `number`? То что можно отослать число с плавающей точкой?