def _get_typed_list_value(self,
                              key,
                              target_type,
                              type_convert,
                              is_optional=False,
                              is_secret=False,
                              is_local=False,
                              default=None,
                              options=None):
        """
        Return the value corresponding to the key converted first to list
        than each element to the given type.

        Args:
            key: the dict key.
            target_type: The type we expect the variable or key to be in.
            type_convert: A lambda expression that converts the key to the desired type.
            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.
        """

        value = self._get_typed_value(key=key,
                                      target_type=list,
                                      type_convert=json.loads,
                                      is_optional=is_optional,
                                      is_secret=is_secret,
                                      is_local=is_local,
                                      default=default,
                                      options=options)

        if not value:
            return default

        raise_type = 'dict' if target_type == Mapping else target_type

        if not isinstance(value, list):
            raise RheaError("Cannot convert value `{}` (key: `{}`) "
                            "to `{}`".format(value, key, raise_type))
        # If we are here the value must be a list
        result = []
        for v in value:
            if isinstance(v, six.string_types):
                try:
                    result.append(type_convert(v))
                except ValueError:
                    raise RheaError("Cannot convert value `{}` (found in list key: `{}`) "
                                    "to `{}`".format(v, key, raise_type))
            elif isinstance(v, target_type):
                result.append(v)

            else:
                raise RheaError("Cannot convert value `{}` (found in list key: `{}`) "
                                "to `{}`".format(v, key, raise_type))
        return result
Return the value corresponding to the key converted first to list
        than each element to the given type.

        Args:
            key: the dict key.
            target_type: The type we expect the variable or key to be in.
            type_convert: A lambda expression that converts the key to the desired type.
            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.