def METHOD_NAME(self, notification_type, message, targets, options, **kwargs):
    """
    A typical check can be performed using the notify command:
    `lemur notify`
    While we receive a `targets` parameter here, it is unused, as Slack webhooks do not allow
    dynamic re-targeting of messages. The webhook itself specifies a channel.
    """
    attachments = None
    if notification_type == "expiration":
        attachments = create_expiration_attachments(message)
    elif notification_type == "rotation":
        attachments = create_rotation_attachments(message)
    if not attachments:
        raise Exception("Unable to create message attachments")
    body = {
        "text": f"Lemur {notification_type.capitalize()} Notification",
        "attachments": attachments,
        "channel": self.get_option("recipients", options),
        "username": self.get_option("username", options),
    }
    r = requests.post(self.get_option("webhook", options), json.dumps(body))
    if r.status_code not in [200]:
        raise Exception(f"Failed to send message. Slack response: {r.status_code} {body}")
    current_app.logger.info(
        f"Slack response: {r.status_code} Message Body: {body}"
    )