Return the name of the intent request.

    The method retrieves the intent ``name`` from the input request, only if
    the input request is an
    :py:class:`ask_sdk_model.intent_request.IntentRequest`. If the input
    is not an IntentRequest, a :py:class:`TypeError` is raised.

    :param handler_input: The handler input instance that is generally
        passed in the sdk's request and exception components
    :type handler_input: ask_sdk_core.handler_input.HandlerInput
    :return: Name of the intent request
    :rtype: str
    :raises: TypeError

def get_intent_name(handler_input):
    # type: (HandlerInput) -> AnyStr
    """Return the name of the intent request.

    The method retrieves the intent ``name`` from the input request, only if
    the input request is an
    :py:class:`ask_sdk_model.intent_request.IntentRequest`. If the input
    is not an IntentRequest, a :py:class:`TypeError` is raised.

    :param handler_input: The handler input instance that is generally
        passed in the sdk's request and exception components
    :type handler_input: ask_sdk_core.handler_input.HandlerInput
    :return: Name of the intent request
    :rtype: str
    :raises: TypeError
    """
    request = handler_input.request_envelope.request
    if isinstance(request, IntentRequest):
        return request.intent.name

    raise TypeError("The provided request is not an IntentRequest")