azext_iot/monitor/central_validator/validators/obj.py (14 lines of code) (raw):
# coding=utf-8
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
from azext_iot.monitor.central_validator import validate_schema
def validate(schema: dict, value: dict):
if not isinstance(schema, dict):
return False
if not isinstance(value, dict):
return False
fields = schema.get("schema", {}).get("fields", [])
schema_fields = {field["name"]: field for field in fields}
for key, val in value.items():
if key not in schema_fields:
return False
if not validate_schema.validate(schema_fields[key], val):
return False
return True