def __init__(self, *args, **kwargs):
<EOL>args = deepcopy(args)<EOL>kwargs = deepcopy(kwargs)<EOL>super(Metadata, self).__init__(*args, **kwargs)<EOL>self._ensure_id()<EOL>self._ensure_version()<EOL>self._validate()<EOL>self._normalize_dates()<EOL>self._validate_interval()<EOL>
prepare compliant, normalized metadata from inputs

        Args:

            kwargs: key-value pairs for metadata fields.

        Raises:

            InvalidDatalakeMetadata if required fields are missing and cannot
            be inferred.