def fill_model()

in packages/autorest.python/autorest/m4reformatter/__init__.py [0:0]


def fill_model(yaml_data: Dict[str, Any], current_model: Dict[str, Any]) -> Dict[str, Any]:
    properties = []
    yaml_parents = yaml_data.get("parents", {}).get("immediate", [])
    dict_parents = [p for p in yaml_parents if p["type"] == "dictionary"]
    if dict_parents:
        # add additional properties property
        properties.append(
            {
                "clientName": "additional_properties",
                "wireName": "",
                "type": update_type(dict_parents[0]),
                "optional": True,
                "description": "Unmatched properties from the message are deserialized to this collection.",
                "isDiscriminator": False,
                "readonly": False,
            }
        )
    properties.extend(
        [update_property(p, has_additional_properties=bool(dict_parents)) for p in yaml_data.get("properties", [])]
    )
    current_model.update(
        {
            "properties": properties,
            "parents": [update_type(yaml_data=p) for p in yaml_parents if p["type"] == "object"],
            "discriminatedSubtypes": update_discriminated_subtypes(yaml_data),
            "discriminatorValue": yaml_data.get("discriminatorValue"),
        }
    )
    return current_model