def describe_cache_engine_versions(Engine=None, EngineVersion=None,
    CacheParameterGroupFamily=None, MaxRecords=None, Marker=None,
    DefaultOnly=None):
    """
    Returns a list of the available cache engines and their versions.
    See also: AWS API Documentation
    
    
    :example: response = client.describe_cache_engine_versions(
        Engine='string',
        EngineVersion='string',
        CacheParameterGroupFamily='string',
        MaxRecords=123,
        Marker='string',
        DefaultOnly=True|False
    )
    
    
    :type Engine: string
    :param Engine: The cache engine to return. Valid values: memcached | redis

    :type EngineVersion: string
    :param EngineVersion: The cache engine version to return.
            Example: 1.4.14
            

    :type CacheParameterGroupFamily: string
    :param CacheParameterGroupFamily: The name of a specific cache parameter group family to return details for.
            Valid values are: memcached1.4 | redis2.6 | redis2.8 | redis3.2
            Constraints:
            Must be 1 to 255 alphanumeric characters
            First character must be a letter
            Cannot end with a hyphen or contain two consecutive hyphens
            

    :type MaxRecords: integer
    :param MaxRecords: The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.
            Default: 100
            Constraints: minimum 20; maximum 100.
            

    :type Marker: string
    :param Marker: An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords .

    :type DefaultOnly: boolean
    :param DefaultOnly: If true , specifies that only the default version of the specified engine or engine and major version combination is to be returned.

    :rtype: dict
    :return: {
        'Marker': 'string',
        'CacheEngineVersions': [
            {
                'Engine': 'string',
                'EngineVersion': 'string',
                'CacheParameterGroupFamily': 'string',
                'CacheEngineDescription': 'string',
                'CacheEngineVersionDescription': 'string'
            },
        ]
    }
    
    
    """
    pass
