Unsubscribe a specific SubscriptionArn of a topic.

    CLI Example:

    .. code-block:: bash

        salt myminion boto3_sns.unsubscribe my_subscription_arn region=us-east-1

def unsubscribe(SubscriptionArn, region=None, key=None, keyid=None, profile=None):
    '''
    Unsubscribe a specific SubscriptionArn of a topic.

    CLI Example:

    .. code-block:: bash

        salt myminion boto3_sns.unsubscribe my_subscription_arn region=us-east-1
    '''
    if not SubscriptionArn.startswith('arn:aws:sns:'):
        # Grrr, AWS sent us an ARN that's NOT and ARN....
        # This can happen if, for instance, a subscription is left in PendingAcceptance or similar
        # Note that anything left in PendingConfirmation will be auto-deleted by AWS after 30 days
        # anyway, so this isn't as ugly a hack as it might seem at first...
        log.info('Invalid subscription ARN `%s` passed - likely a PendingConfirmaton or such.  '
                 'Skipping unsubscribe attempt as it would almost certainly fail...',
                 SubscriptionArn)
        return True
    subs = list_subscriptions(region=region, key=key, keyid=keyid, profile=profile)
    sub = [s for s in subs if s.get('SubscriptionArn') == SubscriptionArn]
    if not sub:
        log.error('Subscription ARN %s not found', SubscriptionArn)
        return False
    TopicArn = sub[0]['TopicArn']
    conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
    try:
        conn.unsubscribe(SubscriptionArn=SubscriptionArn)
        log.info('Deleted subscription %s from SNS topic %s',
                 SubscriptionArn, TopicArn)
        return True
    except botocore.exceptions.ClientError as e:
        log.error('Failed to delete subscription %s: %s', SubscriptionArn, e)
        return False