def application(name, version, properties=None):
    """
    Construct application

    :param name: application type
    :type name: ENUM {'hadoop', 'spark', 'hive', 'pig', 'hbase', 'hue', 'zeppelin', 'kafka', 'mahout'}

    :param version: application version
    :type version: string

    :param properties: application properties
    :type properties: dict
    """
    application = {
        'name': name,
        'version': version
    }
    if properties is not None:
        application['properties'] = properties
    return application