<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(Name,
             region=None, key=None, keyid=None, profile=None):
    '''
    Given a rule name describe its properties.

    Returns a dictionary of interesting properties.

    CLI Example:

    .. code-block:: bash

        salt myminion boto_cloudwatch_event.describe myrule

    '''

    try:
        conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
        rule = conn.describe_rule(Name=Name)
        if rule:
            keys = ('Name', 'Arn', 'EventPattern',
                    'ScheduleExpression', 'State',
                    'Description',
                    'RoleArn')
            return {'rule': dict([(k, rule.get(k)) for k in keys])}
        else:
            return {'rule': None}
    except ClientError as e:
        err = __utils__['boto3.get_error'](e)
        if e.response.get('Error', {}).get('Code') == 'RuleNotFoundException':
            return {'error': "Rule {0} not found".format(Rule)}
        return {'error': __utils__['boto3.get_error'](e)}