Attach a given data file with a model run. The attached file is
        identified by the resource identifier. If a resource with the given
        identifier already exists it will be overwritten.

        Parameters
        ----------
        experiment_id : string
            Unique experiment identifier
        model_id : string
            Unique identifier of model to run
        resource_id : string
            Unique attachment identifier
        filename : string
            Path to data file that is being attached. A copy of the file will
            be created
        mime_type : string, optional
            File Mime type
        Returns
        -------
        ModelRunHandle
            Modified model run handle or None if no run with given identifier
            exists

def experiments_predictions_attachments_create(self, experiment_id, run_id, resource_id, filename, mime_type=None):
        """Attach a given data file with a model run. The attached file is
        identified by the resource identifier. If a resource with the given
        identifier already exists it will be overwritten.

        Parameters
        ----------
        experiment_id : string
            Unique experiment identifier
        model_id : string
            Unique identifier of model to run
        resource_id : string
            Unique attachment identifier
        filename : string
            Path to data file that is being attached. A copy of the file will
            be created
        mime_type : string, optional
            File Mime type
        Returns
        -------
        ModelRunHandle
            Modified model run handle or None if no run with given identifier
            exists
        """
        # Get experiment to ensure that it exists
        if self.experiments_get(experiment_id) is None:
            return None
        return self.predictions.create_data_file_attachment(
            run_id,
            resource_id,
            filename,
            mime_type=mime_type
        )