Lists services in a given DC

        Parameters:
            dc (str): Specify datacenter that will be used.
                      Defaults to the agent's local datacenter.
            watch (Blocking): Do a blocking query
            consistency (Consistency): Force consistency
        Returns:
            ObjectMeta: where value is a dict

        It returns a JSON body like this::

            {
              "consul": [],
              "redis": [],
              "postgresql": [
                "master",
                "slave"
              ]
            }

        The keys are the service names, and the array values provide all known
        tags for a given service.

async def services(self, *, dc=None, watch=None, consistency=None):
        """Lists services in a given DC

        Parameters:
            dc (str): Specify datacenter that will be used.
                      Defaults to the agent's local datacenter.
            watch (Blocking): Do a blocking query
            consistency (Consistency): Force consistency
        Returns:
            ObjectMeta: where value is a dict

        It returns a JSON body like this::

            {
              "consul": [],
              "redis": [],
              "postgresql": [
                "master",
                "slave"
              ]
            }

        The keys are the service names, and the array values provide all known
        tags for a given service.
        """
        params = {"dc": dc}
        response = await self._api.get("/v1/catalog/services",
                                       params=params,
                                       watch=watch,
                                       consistency=consistency)
        return consul(response)