{ "$schema": "http://json-schema.org/schema#", "type": "object", "properties": { "reloader": { "type": "object", "properties": { "reloadStrategy": { "type": "string", "enum": [ "default", "env-vars", "annotations" ] }, "service": { "type": "object", "properties": { "ipFamilyPolicy": { "type": "string", "enum": [ "SingleStack", "PreferDualStack", "RequireDualStack" ] }, "ipFamilies": { "type": "array", "items": { "type": "string" }, "maxItems": 2, "uniqueItems": true } }, "allOf": [ { "if": { "properties": { "ipFamilyPolicy": { "const": "SingleStack" } }, "required": [ "ipFamilyPolicy" ] }, "then": { "properties": { "ipFamilies": { "allOf": [ { "type": "array" }, { "items": { "type": "string", "enum": [ "IPv4", "IPv6" ] } }, { "maxItems": 1, "minItems": 1 } ] } } } }, { "if": { "properties": { "ipFamilyPolicy": { "const": "RequireDualStack" } }, "required": [ "ipFamilyPolicy" ] }, "then": { "properties": { "ipFamilies": { "allOf": [ { "type": "array" }, { "items": { "type": "string", "enum": [ "IPv4", "IPv6" ] } }, { "minItems": 2 } ] } } } }, { "if": { "properties": { "ipFamilyPolicy": { "const": "PreferDualStack" } }, "required": [ "ipFamilyPolicy" ] }, "then": { "properties": { "ipFamilies": { "allOf": [ { "type": "array" }, { "items": { "type": "string", "enum": [ "IPv4", "IPv6" ] } }, { "minItems": 1, "maxItems": 2 } ] } } } } ] } } } } }