def update_dataset(self, dataset_id, friendly_name=None, description=None,
                       access=None, project_id=None):
        """Updates information in an existing dataset. The update method
        replaces the entire dataset resource, whereas the patch method only
        replaces fields that are provided in the submitted dataset resource.

        Parameters
        ----------
        dataset_id : str
            Unique ``str`` identifying the dataset with the project (the
            referencedId of the dataset)        
        friendly_name : str, optional
            An optional descriptive name for the dataset.
        description : str, optional
            An optional description of the dataset.
        access : list, optional
            Indicating access permissions
        project_id: str, optional
            Unique ``str`` identifying the BigQuery project contains the dataset

        Returns
        -------
        Union[bool, dict]
            ``bool`` indicating if the update was successful or not, or
            response from BigQuery if swallow_results is set for False.
        """
        project_id = self._get_project_id(project_id)

        try:            
            datasets = self.bigquery.datasets()
            body = self.dataset_resource(dataset_id, 
                                         friendly_name=friendly_name,
                                         description=description, 
                                         access=access,
                                         project_id=project_id)

            request = datasets.update(projectId=project_id,
                                      datasetId=dataset_id,
                                      body=body)
            response = request.execute(num_retries=self.num_retries)
            if self.swallow_results:
                return True
            else:
                return response
        except HttpError as e:
            logger.error(
                'Cannot update dataset {0}: {1}'.format(dataset_id, e))
            if self.swallow_results:
                return False
            else:
                return {}
Updates information in an existing dataset. The update method
        replaces the entire dataset resource, whereas the patch method only
        replaces fields that are provided in the submitted dataset resource.

        Parameters
        ----------
        dataset_id : str
            Unique ``str`` identifying the dataset with the project (the
            referencedId of the dataset)        
        friendly_name : str, optional
            An optional descriptive name for the dataset.
        description : str, optional
            An optional description of the dataset.
        access : list, optional
            Indicating access permissions
        project_id: str, optional
            Unique ``str`` identifying the BigQuery project contains the dataset

        Returns
        -------
        Union[bool, dict]
            ``bool`` indicating if the update was successful or not, or
            response from BigQuery if swallow_results is set for False.