def describe_cache_subnet_groups(CacheSubnetGroupName=None, MaxRecords=None,
    Marker=None):
    """
    Returns a list of cache subnet group descriptions. If a subnet group name is specified, the list contains only the description of that group.
    See also: AWS API Documentation
    
    
    :example: response = client.describe_cache_subnet_groups(
        CacheSubnetGroupName='string',
        MaxRecords=123,
        Marker='string'
    )
    
    
    :type CacheSubnetGroupName: string
    :param CacheSubnetGroupName: The name of the cache subnet group to return details for.

    :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 .

    :rtype: dict
    :return: {
        'Marker': 'string',
        'CacheSubnetGroups': [
            {
                'CacheSubnetGroupName': 'string',
                'CacheSubnetGroupDescription': 'string',
                'VpcId': 'string',
                'Subnets': [
                    {
                        'SubnetIdentifier': 'string',
                        'SubnetAvailabilityZone': {
                            'Name': 'string'
                        }
                    },
                ]
            },
        ]
    }
    
    
    :returns: 
    CreateCacheSubnetGroup
    ModifyCacheSubnetGroup
    
    """
    pass
