def create_ticket(session, subject, description, return_type=None, **kwargs):
    """
    Creates a support ticket for the VPSA.  This ticket will be assigned to a
    member of the support staff.

    :type session: zadarapy.session.Session
    :param session: A valid zadarapy.session.Session object.  Required.

    :type subject: str
    :param subject: The subject for the ticket (analogous to an e-mail
        subject).  For example: 'Help With Expanding Pool'.  Required.

    :type description: str
    :param description: The full body of the ticket (analogous to an e-mail
        body).  For example: 'I would like more information on best practices
        for expanding my "pool1" storage pool.'  Required.

    :type return_type: str
    :param return_type: If this is set to the string 'json', this function
        will return a JSON string.  Otherwise, it will return a Python
        dictionary.  Optional (will return a Python dictionary by default).

    :rtype: dict, str
    :returns: A dictionary or JSON data set as a string depending on
        return_type parameter.
    """
    if subject is None or description is None:
        raise ValueError('A ticket subject and description must be provided.')

    body_values = {'subject': subject, 'description': description}

    path = '/api/tickets.json'

    return session.post_api(path=path, body=body_values,
                            return_type=return_type, **kwargs)