Схема JSON для одного свойства, зависящего от значений другого свойства - PullRequest
0 голосов
/ 01 мая 2018

У меня есть 2 свойства, которые я хочу перечислить: os_type и os_version.

os_type будет перечислением с несколькими значениями, такими как windows, linux и т. Д.

на основе os_type значения os_version будут разными значениями перечисления.

как для окон, os_version будет 7,8,10

для Linux, os_version будет Ubuntu, Fedora и т. Д.

Как я могу сделать это со схемой json, где os_version зависит от os_type, и различные значения перечисления для os_version отображаются на основе os_type?

Это мой текущий фрагмент кода, не совсем работающий.

{
    "namespace": "MetadataOSVersion",
    "display_name": "Company Metadata: OS Version",
    "description": "Company Metadata: OS Version",
    "visibility": "public",
    "protected": true,
    "objects": [
        {
            "name": "os_type",
            "description": "os_type",
            "properties": {
                "os_type":
                {
                    "title": "os_type",
                    "description": "os_type",
                    "type": "string",
                    "enum": ["Linux", "Windows"]
                },
                "os_version":
                {
                    "title": "os_version",
                    "description": "os_version",
                    "type": "string",
                    "required": ["os_type"],
                    "oneOf": [
                        {{"os_type": {"enum": ["Windows"], "enum": ["7", "8", "10"]}}},
                        {{"os_type": {"enum": ["Linux"], "enum": ["Ubuntu", "Fedora"]}}}
                    ]
                }
            }
       }
        ]

}
...