'The PurchaseReservedCacheNodesOffering operation allows you to
purchase a reserved cache node offering.
:type reserved_cache_nodes_offering_id: string
:param reserved_cache_nodes_offering_id: The ID of the reserved cache
node offering to purchase.
Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706
:type reserved_cache_node_id: string
:param reserved_cache_node_id: A customer-specified identifier to track
this reservation.
Example: myreservationID
:type cache_node_count: integer
:param cache_node_count: The number of cache node instances to reserve.
Default: `1`'

def purchase_reserved_cache_nodes_offering(self, reserved_cache_nodes_offering_id, reserved_cache_node_id=None, cache_node_count=None):

    params = {'ReservedCacheNodesOfferingId': reserved_cache_nodes_offering_id}
    if (reserved_cache_node_id is not None):
        params['ReservedCacheNodeId'] = reserved_cache_node_id
    if (cache_node_count is not None):
        params['CacheNodeCount'] = cache_node_count
    return self._make_request(action='PurchaseReservedCacheNodesOffering', verb='POST', path='/', params=params)
