'The DescribeReservedCacheNodes operation returns information
about reserved cache nodes for this account, or about a
specified reserved cache node.
:type reserved_cache_node_id: string
:param reserved_cache_node_id: The reserved cache node identifier
filter value. Use this parameter to show only the reservation that
matches the specified reservation ID.
:type reserved_cache_nodes_offering_id: string
:param reserved_cache_nodes_offering_id: The offering identifier filter
value. Use this parameter to show only purchased reservations
matching the specified offering identifier.
:type cache_node_type: string
:param cache_node_type: The cache node type filter value. Use this
parameter to show only those reservations matching the specified
cache node type.
:type duration: string
:param duration: The duration filter value, specified in years or
seconds. Use this parameter to show only reservations for this
duration.
Valid Values: `1 | 3 | 31536000 | 94608000`
:type product_description: string
:param product_description: The product description filter value. Use
this parameter to show only those reservations matching the
specified product description.
:type offering_type: string
:param offering_type: The offering type filter value. Use this
parameter to show only the available offerings matching the
specified offering type.
Valid values: `"Light Utilization" | "Medium Utilization" | "Heavy
Utilization" `
:type max_records: integer
:param max_records: 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 .'

def describe_reserved_cache_nodes(self, reserved_cache_node_id=None, reserved_cache_nodes_offering_id=None, cache_node_type=None, duration=None, product_description=None, offering_type=None, max_records=None, marker=None):

    params = {}
    if (reserved_cache_node_id is not None):
        params['ReservedCacheNodeId'] = reserved_cache_node_id
    if (reserved_cache_nodes_offering_id is not None):
        params['ReservedCacheNodesOfferingId'] = reserved_cache_nodes_offering_id
    if (cache_node_type is not None):
        params['CacheNodeType'] = cache_node_type
    if (duration is not None):
        params['Duration'] = duration
    if (product_description is not None):
        params['ProductDescription'] = product_description
    if (offering_type is not None):
        params['OfferingType'] = offering_type
    if (max_records is not None):
        params['MaxRecords'] = max_records
    if (marker is not None):
        params['Marker'] = marker
    return self._make_request(action='DescribeReservedCacheNodes', verb='POST', path='/', params=params)
