<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def describe_cache_parameters(name=None, conn=None, region=None, key=None, keyid=None,
                              profile=None, **args):
    '''
    Returns the detailed parameter list for a particular cache parameter group.

    name
        The name of a specific cache parameter group to return details for.

    CacheParameterGroupName
        The name of a specific cache parameter group to return details for.  Generally not
        required, as `name` will be used if not provided.

    Source
        Optionally, limit the parameter types to return.
        Valid values:
        - user
        - system
        - engine-default

    Example:

    .. code-block:: bash

        salt myminion boto3_elasticache.describe_cache_parameters name=myParamGroup Source=user
    '''
    ret = {}
    generic = _describe_resource(name=name, name_param='CacheParameterGroupName',
                                  res_type='cache_parameter', info_node='Parameters',
                                  conn=conn, region=region, key=key, keyid=keyid, profile=profile,
                                  **args)
    specific = _describe_resource(name=name, name_param='CacheParameterGroupName',
                                  res_type='cache_parameter',
                                  info_node='CacheNodeTypeSpecificParameters', conn=conn,
                                  region=region, key=key, keyid=keyid, profile=profile, **args)
    ret.update({'Parameters': generic}) if generic else None
    ret.update({'CacheNodeTypeSpecificParameters': specific}) if specific else None
    return ret