def get_dict(self,
                 key,
                 is_list=False,
                 is_optional=False,
                 is_secret=False,
                 is_local=False,
                 default=None,
                 options=None):
        """
        Get a the value corresponding to the key and converts it to `dict`.

        Args:
            key: the dict key.
            is_list: If this is one element or a list of elements.
            is_optional: To raise an error if key was not found.
            is_secret: If the key is a secret.
            is_local: If the key is a local to this service.
            default: default value if is_optional is True.
            options: list/tuple if provided, the value must be one of these values.

        Returns:
            `str`: value corresponding to the key.
        """

        def convert_to_dict(x):
            x = json.loads(x)
            if not isinstance(x, Mapping):
                raise RheaError("Cannot convert value `{}` (key: `{}`) to `dict`".format(x, key))
            return x

        if is_list:
            return self._get_typed_list_value(key=key,
                                              target_type=Mapping,
                                              type_convert=convert_to_dict,
                                              is_optional=is_optional,
                                              is_secret=is_secret,
                                              is_local=is_local,
                                              default=default,
                                              options=options)
        value = self._get_typed_value(key=key,
                                      target_type=Mapping,
                                      type_convert=convert_to_dict,
                                      is_optional=is_optional,
                                      is_secret=is_secret,
                                      is_local=is_local,
                                      default=default,
                                      options=options)

        if not value:
            return default

        if not isinstance(value, Mapping):
            raise RheaError("Cannot convert value `{}` (key: `{}`) "
                            "to `dict`".format(value, key))
        return value