docs: def _get_typed_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 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.
  
          Returns:
              The corresponding value of the key converted.
          """
          try:
              value = self._get(key)
          except KeyError:
              if not is_optional:
                  raise RheaError(
                      'No value was provided for the non optional key `{}`.'.format(key))
              return default
  
          if isinstance(value, six.string_types):
              try:
                  self._add_key(key, is_secret=is_secret, is_local=is_local)
                  self._check_options(key=key, value=value, options=options)
                  return type_convert(value)
              except ValueError:
                  raise RheaError("Cannot convert value `{}` (key: `{}`) "
                                  "to `{}`".format(value, key, target_type))
  
          if isinstance(value, target_type):
              self._add_key(key, is_secret=is_secret, is_local=is_local)
              self._check_options(key=key, value=value, options=options)
              return value
          raise RheaError("Cannot convert value `{}` (key: `{}`) "
                          "to `{}`".format(value, key, target_type))