airflow.providers.slack.operators.slack

Module Contents

class airflow.providers.slack.operators.slack.SlackAPIOperator(*, slack_conn_id: Optional[str] = None, token: Optional[str] = None, method: Optional[str] = None, api_params: Optional[Dict] = None, **kwargs)[source]

Bases: airflow.models.BaseOperator

Base Slack Operator The SlackAPIPostOperator is derived from this operator. In the future additional Slack API Operators will be derived from this class as well Only one of slack_conn_id and token is required.

Parameters
construct_api_call_params(self)[source]

Used by the execute function. Allows templating on the source fields of the api_call_params dict before construction

Override in child classes. Each SlackAPIOperator child class is responsible for having a construct_api_call_params function which sets self.api_call_params with a dict of API call parameters (https://api.slack.com/methods)

execute(self, **kwargs)[source]

SlackAPIOperator calls will not fail even if the call is not unsuccessful. It should not prevent a DAG from completing in success

class airflow.providers.slack.operators.slack.SlackAPIPostOperator(channel: str = '#general', username: str = 'Airflow', text: str = 'No message has been set.\nHere is a cat video instead\nhttps://www.youtube.com/watch?v=J---aiyznGQ', icon_url: str = 'https://raw.githubusercontent.com/apache/airflow/master/airflow/www/static/pin_100.png', attachments: Optional[List] = None, blocks: Optional[List] = None, **kwargs)[source]

Bases: airflow.providers.slack.operators.slack.SlackAPIOperator

Posts messages to a slack channel Examples:

slack = SlackAPIPostOperator(
    task_id="post_hello",
    dag=dag,
    token="XXX",
    text="hello there!",
    channel="#random",
)
Parameters
  • channel (str) -- channel in which to post message on slack name (#general) or ID (C12318391). (templated)

  • username (str) -- Username that airflow will be posting to Slack as. (templated)

  • text (str) -- message to send to slack. (templated)

  • icon_url (str) -- url to icon used for this message

  • attachments (list of hashes) -- extra formatting details. (templated) - see https://api.slack.com/docs/attachments.

  • blocks (list of hashes) -- extra block layouts. (templated) - see https://api.slack.com/reference/block-kit/blocks.

template_fields = ['username', 'text', 'attachments', 'blocks', 'channel'][source]
ui_color = #FFBA40[source]
construct_api_call_params(self)[source]
class airflow.providers.slack.operators.slack.SlackAPIFileOperator(channel: str = '#general', initial_comment: str = 'No message has been set!', filename: str = 'default_name.csv', filetype: str = 'csv', content: str = 'default,content,csv,file', **kwargs)[source]

Bases: airflow.providers.slack.operators.slack.SlackAPIOperator

Send a file to a slack channel Examples:

slack = SlackAPIFileOperator(
    task_id="slack_file_upload",
    dag=dag,
    slack_conn_id="slack",
    channel="#general",
    initial_comment="Hello World!",
    filename="hello_world.csv",
    filetype="csv",
    content="hello,world,csv,file",
)
Parameters
  • channel (str) -- channel in which to sent file on slack name (templated)

  • initial_comment (str) -- message to send to slack. (templated)

  • filename (str) -- name of the file (templated)

  • filetype (str) -- slack filetype. (templated) - see https://api.slack.com/types/file

  • content (str) -- file content. (templated)

template_fields = ['channel', 'initial_comment', 'filename', 'filetype', 'content'][source]
ui_color = #44BEDF[source]
construct_api_call_params(self)[source]

Was this entry helpful?