def delete_metadata_properties(
        self, metadata_properties: Union[str, List[str]]
    ) -> Union["AllowedMetadataPropertyTypes", List["AllowedMetadataPropertyTypes"]]:
        """Deletes a list of `metadata_properties` from the current `FeedbackDataset`
        in Argilla.

        Note:
            Existing `FeedbackRecord`s if any, will remain unchanged if those contain metadata
            named the same way as the `metadata_properties` to delete, but the validation will
            be removed as well as `metadata_property` index, which means one won't be able to
            use that for filtering.

        Args:
            metadata_properties: the metadata property/ies name/s to delete from the current
                `FeedbackDataset` in Argilla.

        Returns:
            The `metadata_property` or `metadata_properties` deleted from the current
            `FeedbackDataset` in Argilla, but using the local schema e.g. if you delete a
            `RemoteFloatMetadataProperty` this method will delete it from Argilla and will
            return a `FloatMetadataProperty` instance.

        Raises:
            PermissionError: if the user does not have either `owner` or `admin` role.
            RuntimeError: if the `metadata_properties` cannot be deleted from the current
                `FeedbackDataset` in Argilla.
        """
        if isinstance(metadata_properties, str):
            metadata_properties = [metadata_properties]

        existing_metadata_properties = self.metadata_properties
        existing_metadata_property_names = [
            metadata_property.name for metadata_property in existing_metadata_properties
        ]

        unexisting_metadata_properties = []
        for metadata_property in metadata_properties:
            if metadata_property not in existing_metadata_property_names:
                unexisting_metadata_properties.append(metadata_property)
        if len(unexisting_metadata_properties) > 0:
            raise ValueError(
                f"The following metadata properties do not exist in the current `FeedbackDataset` in Argilla: {unexisting_metadata_properties}."
                f" The existing metadata properties are: {existing_metadata_property_names}."
            )

        deleted_metadata_properties = []
        for metadata_property in existing_metadata_properties:
            if metadata_property.name in metadata_properties:
                ArgillaMetadataPropertiesMixin.delete(client=self._client, metadata_property_id=metadata_property.id)
                metadata_properties.remove(metadata_property.name)
                deleted_metadata_properties.append(metadata_property)
        return deleted_metadata_properties if len(deleted_metadata_properties) > 1 else deleted_metadata_properties[0]
Deletes a list of `metadata_properties` from the current `FeedbackDataset`
        in Argilla.

        Note:
            Existing `FeedbackRecord`s if any, will remain unchanged if those contain metadata
            named the same way as the `metadata_properties` to delete, but the validation will
            be removed as well as `metadata_property` index, which means one won't be able to
            use that for filtering.

        Args:
            metadata_properties: the metadata property/ies name/s to delete from the current
                `FeedbackDataset` in Argilla.

        Returns:
            The `metadata_property` or `metadata_properties` deleted from the current
            `FeedbackDataset` in Argilla, but using the local schema e.g. if you delete a
            `RemoteFloatMetadataProperty` this method will delete it from Argilla and will
            return a `FloatMetadataProperty` instance.

        Raises:
            PermissionError: if the user does not have either `owner` or `admin` role.
            RuntimeError: if the `metadata_properties` cannot be deleted from the current
                `FeedbackDataset` in Argilla.
        
argilla-v1/src/argilla_v1/client/feedback/dataset/remote/dataset.py