'List tag keys in the Dimension Data Cloud
:param id: Filter the list to the id of the tag key
:type  id: ``str``
:param name: Filter the list to the name of the tag key
:type  name: ``str``
:param value_required: Filter the list to if a value is required
for a tag key
:type  value_required: ``bool``
:param display_on_report: Filter the list to if the tag key should
show up on usage reports
:type  display_on_report: ``bool``
:rtype: ``list`` of :class:`DimensionDataTagKey`'

def ex_list_tag_keys(self, id=None, name=None, value_required=None, display_on_report=None):

    params = {}
    if (id is not None):
        params['id'] = id
    if (name is not None):
        params['name'] = name
    if (value_required is not None):
        params['valueRequired'] = str(value_required).lower()
    if (display_on_report is not None):
        params['displayOnReport'] = str(display_on_report).lower()
    paged_result = self.connection.paginated_request_with_orgId_api_2('tag/tagKey', method='GET', params=params)
    tag_keys = []
    for result in paged_result:
        tag_keys.extend(self._to_tag_keys(result))
    return tag_keys
