@staticmethod
def get_alexa_slot_value(data, slot=None):
    """Gets values for slots from the interaction model.

        Args:
            data: The request data received from Alexa.
            slot: Name of the slot. If a name is not specified, all slots will be returned as
                a dictionary. If a name is specified but is not found, None will be returned.

        Returns:
            A ``string`` representing the value of the slot from the interaction model, or a ``hash`` of slots.

        Examples:
            >>> beer_type = ADAPI.get_alexa_intent(data, "beer_type")
            >>> all_slots = ADAPI.get_alexa_intent(data)

        """
    if 'request' in data and 'intent' in data['request'] and 'slots' in data[
        'request']['intent']:
        if slot is None:
            return data['request']['intent']['slots']
        elif slot in data['request']['intent']['slots'] and 'value' in data[
            'request']['intent']['slots'][slot]:
            return data['request']['intent']['slots'][slot]['value']
        else:
            return None
    else:
        return None
