cisco.dnac.events_and_notifications_workflow_manager module -- Configure various types of destinations to deliver event notifications from Cisco Catalyst Center Platform.

Note

This module is part of the cisco.dnac collection (version 6.15.0).

To install it, use: ansible-galaxy collection install cisco.dnac. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: cisco.dnac.events_and_notifications_workflow_manager.

New in cisco.dnac 6.14.0

Synopsis

  • Configure various types of destinations to deliver event notifications from Cisco Catalyst Center Platform.

  • Configuring/Updating the Webhook destination details in Cisco Catalyst Center.

  • Configuring/Updating the Email destination details in Cisco Catalyst Center.

  • Configuring/Updating the Syslog destination details in Cisco Catalyst Center.

  • Configuring/Updating the SNMP destination details in Cisco Catalyst Center.

  • Configuring/Updating the ITSM Integration Settings in Cisco Catalyst Center.

  • Deletes the ITSM Integration Settings from Cisco Catalyst Center.

  • Create/Update Notification using the above destination in Cisco Catalyst Center.

Requirements

The below requirements are needed on the host that executes this module.

  • dnacentersdk >= 2.7.1

  • python >= 3.5

Parameters

Parameter

Comments

config

list / elements=dictionary / required

List containing the subscription configuration for events, notification on site through one or more channels.

email_destination

dictionary

Configure settings to send out emails from Cisco Catalyst Center. Also we can create or configure email destination in Cisco Catalyst Center only once then later we can just modify it.

from_email

string / required

Sender's email address used when setting up or modifying an email destination.

primary_smtp_config

dictionary

Add the primary configuration for smtp while creating/updating email destination.

password

string

Password for Authenticating Primary SMTP Server.

port

string

Port number used for configuring Primary SMTP Server. Also there is a mapping of smtype and port if snmp_type is DEFAULT then port is 25 and for smtp_type TLS or SSL we can choose either 465 or 587 as port number.

server_address

string / required

Hostname or IP address of the primary SMTP server. Supports both IPv4 and IPv6.

smtp_type

string / required

The type of connection used for the SMTP server, with options being DEFAULT, TLS, or SSL. By default, it is set to DEFAULT. DEFAULT - Chooses a standard SMTP connection without encryption. If it's selected then port will be 25 only. TLS - Initiates an unencrypted SMTP connection and upgrades to TLS encryption when available. If it's selected then port will be either 465 or 587. SSL - Begins with an encrypted SMTP connection using SSL from the start. If it's selected then port will be either 465 or 587.

username

string

Username for Authenticating Primary SMTP Server.

secondary_smtp_config

dictionary

Include an optional secondary SMTP configuration when creating or updating an email destination.

password

string

Password for Authenticating Secondary SMTP Server.

port

string

Port number used for configuring Secondary SMTP Server. Also there is a mapping of smtype and port if snmp_type is DEFAULT then port is 25 and for smtp_type TLS or SSL we can choose either 465 or 587 as port number.

server_address

string

Hostname or IP address of the secondary SMTP server. Supports both IPv4 and IPv6.

smtp_type

string

The type of connection used for the SMTP server, with options being DEFAULT, TLS, or SSL. By default, it is set to DEFAULT. DEFAULT - Chooses a standard SMTP connection without encryption. If it's selected then port will be 25 only. TLS - Initiates an unencrypted SMTP connection and upgrades to TLS encryption when available. If it's selected then port will be either 465 or 587. SSL - Begins with an encrypted SMTP connection using SSL from the start. If it's selected then port will be either 465 or 587.

username

string

Username for Authenticating Secondary SMTP Server.

subject

string / required

Subject line of the email to be used when sending emails from the specified email destination.

to_email

string / required

Recipient's email address that will receive emails when an email destination is created or updated.

itsm_setting

dictionary

Dictionary containing the configuration details to configure the ServiceNow/BMCRemedy settings to automatically create incidents/problems/RFC's from Cisco Catalyst Center.

connection_settings

dictionary

A dictionary of settings required to establish a connection with the ITSM system.

password

string / required

The password associated with the username for API authentication. It is recommended to handle this data securely.

url

string / required

The URL of the ITSM system API endpoint. This is the base URL used for ITSM service requests.

username

string / required

The username used for authentication with the ITSM system. This is required for accessing the API.

description

string

A brief description of the ITSM settings, outlining its purpose or usage within the organization.

instance_name

string / required

The name of the ITSM configuration. This helps in identifying the integration within the system. Also while deleting the ITSM Intergration setting from Cisco Catalyst Center.

snmp_destination

dictionary

Dictionary containing the details for configuring/updating the SNMP Trap Server to receive Audit logs and Events from Cisco Catalyst Center.

auth_password

string

Password used for SNMP authentication.

auth_type

string

Type of SNMP authentication protocol to use, such as MD5 or SHA. SHA - Stands for Secure Hash Algorithm, a suite of cryptographic hash functions developed by the National Security Agency (NSA) offering enhanced security. MD5 - Refers to Message Digest Algorithm 5, a well-established cryptographic hash function generating a 128-bit hash value, employed in SNMPv3 for message authenticity and integrity verification.

community

string

SNMP community string used for authentication, necessary only when the snmp_version is set to V2C.

description

string / required

Description of the SNMP destination.

mode

string

The security mode for SNMP communication (options - AUTH_PRIVACY, AUTH_NO_PRIVACY, NO_AUTH_NO_PRIVACY). Mandatory for snmp_version V3 and must not be set to NONE. AUTH_PRIVACY - The most secure mode, providing both verification of the message source through authentication and protection of message contents with encryption. If this option is selected, must need to provide auth_type, auth_password, privacy_type, privacy_password parameter in the playbook. AUTH_NO_PRIVACY - This mode ensures the authenticity of SNMP messages via a community string for validation but does not encrypt the data, leaving it vulnerable to interception. If this option is selected, must need to provide auth_type, auth_password parameter in the playbook. NO_AUTH_NO_PRIVACY - In this mode, SNMP messages are neither authenticated nor encrypted, making it the least secure as it requires no credentials or data protection. If this option is selected, not need to provide auth_type, auth_password, privacy_type, privacy_password parameter in the playbook.

name

string / required

Name of the SNMP destination.

port

string / required

Port number on which the SNMP server is listening.

privacy_password

string

Password used for encryption in SNMP privacy.

privacy_type

string

Encryption algorithm used for SNMP privacy, such as AES128.

server_address

string / required

IP address of the SNMP server.

snmp_version

string

The SNMP protocol version used for network management and monitoring, selectable between SNMPv2c and SNMPv3. V2C - Utilizes community strings for the authentication between the SNMP manager (like Cisco Catalyst) and managed network devices (routers, switches, access points), without encryption, as strings are sent in plain text. V3 - Offers enhanced security features over V2C, including authentication, integrity, and encryption, using usernames, passwords, and encryption keys for secure communications.

username

string

Username required for SNMP authentication, applicable exclusively when the snmp_version is configured to V3.

syslog_destination

dictionary

Dictionary containing the details for configuring/updating the Syslog Server to collect Audit logs and Events from the Cisco Catalyst Center.

description

string / required

A brief explanation detailing the purpose of the syslog destination.

name

string / required

Name of the syslog destination.

port

integer / required

Port number on which the syslog server is listening. It must be in the range of 1-65535. If not given any port then we will use 514 as default port.

protocol

string / required

Protocol used for sending syslog messages (e.g., UDP, TCP). Transmission Control Protocol (TCP) - It is a connection-oriented protocol used for reliable and ordered communication between devices on a network. It provides error-checking, retransmission of lost packets, and ensures that data is delivered in the correct order. User Datagram Protocol (UDP) - It is a connectionless protocol used for sending datagrams between devices on a network. It provides a lightweight, best-effort delivery mechanism without guaranteeing delivery or ordering of packets. UDP is commonly used for real-time applications such as streaming media, online gaming, and VoIP.

server_address

string / required

Hostname or IP address of the Syslog server.

webhook_destination

dictionary

Dictionary containing the details for configuring/updating the REST Endpoint to receive Audit logs and Events from Cisco Catalyst Center Platform.

description

string

A brief explanation of what the webhook destination is used for.

headers

list / elements=dictionary

A list of HTTP headers to be included in the webhook request. Each header is represented as a dictionary. While giving the headers details we can categorize them into - "Basic, Token and No Auth". Basic Authentication - It is used to ensure that the receiving server can validate the identity of the requesting server by checking the credentials against its store. This method is straightforward but less secure compared to others since credentials are sent encoded but not encrypted. Token Authentication - It involves security tokens which are typically generated by the server. A client must send this token in the HTTP header to access resources. It is more secure than Basic Authentication as it allows the server to issue tokens that can have a limited lifetime, be revoked, and carry specific permissions without exposing user credentials. No Auth - It implies that no authentication method is required to access the webhook destination. This setting can be used in environments where security is either handled by other means (such as network isolation) or where the data being transmitted is not sensitive.

default_value

string

Default value for the HTTP header that can be used if no specific value is provided.

encrypt

boolean

Indicates whether the value of the header should be encrypted. Useful for sensitive data.

Choices:

name

string

Name of the HTTP header.

value

string

Value assigned to the HTTP header.

is_proxy_route

boolean

A boolean value indicating if the request should use a proxy server. It will set to true for proxy routing, and false for direct connection. By default, it is set to True.

Choices:

method

string

The HTTP method used by the webhook when sending requests (e.g., POST, PUT). POST - It is typically used to create a new webhook destination. When you set up a new webhook in Cisco Catalyst Center, you would use the POST method to send the necessary configuration details (like URL, headers, payload format, etc.) to the server. PUT - It is used to update an existing webhook destination. If a webhook destination is already configured and you need to change any of its settings—such as modifying the URL, adjusting headers, or changing the payload format.

name

string / required

Name of the webhook destination. A unique identifier for the webhook destination within the system.

trust_cert

boolean

A boolean that indicates whether to verify the SSL/TLS certificate of the URL, setting this to true will bypass certificate verification. By default, it is set to false.

Choices:

url

string / required

Fully qualified URL to which the webhook will send requests (e.g., "https://ciscocatalyst.com").

config_verify

boolean

Set to True to verify the Cisco Catalyst Center config after applying the playbook config.

Choices:

dnac_api_task_timeout

integer

Defines the timeout in seconds for API calls to retrieve task details. If the task details are not received within this period, the process will end, and a timeout notification will be logged.

Default: :ansible-option-default:`1200`

dnac_debug

boolean

Indicates whether debugging is enabled in the Cisco Catalyst Center SDK.

Choices:

dnac_host

string / required

The hostname of the Cisco Catalyst Center.

dnac_log

boolean

Flag to enable/disable playbook execution logging.

When true and dnac_log_file_path is provided, - Create the log file at the execution location with the specified name.

When true and dnac_log_file_path is not provided, - Create the log file at the execution location with the name 'dnac.log'.

When false, - Logging is disabled.

If the log file doesn't exist, - It is created in append or write mode based on the "dnac_log_append" flag.

If the log file exists, - It is overwritten or appended based on the "dnac_log_append" flag.

Choices:

dnac_log_append

boolean

Determines the mode of the file. Set to True for 'append' mode. Set to False for 'write' mode.

Choices:

dnac_log_file_path

string

Governs logging. Logs are recorded if dnac_log is True.

If path is not specified, - When 'dnac_log_append' is True, 'dnac.log' is generated in the current Ansible directory; logs are appended. - When 'dnac_log_append' is False, 'dnac.log' is generated; logs are overwritten.

If path is specified, - When 'dnac_log_append' is True, the file opens in append mode. - When 'dnac_log_append' is False, the file opens in write (w) mode. - In shared file scenarios, without append mode, content is overwritten after each module execution. - For a shared log file, set append to False for the 1st module (to overwrite); for subsequent modules, set append to True.

Default: :ansible-option-default:`"dnac.log"`

dnac_log_level

string

Sets the threshold for log level. Messages with a level equal to or higher than this will be logged. Levels are listed in order of severity [CRITICAL, ERROR, WARNING, INFO, DEBUG].

CRITICAL indicates serious errors halting the program. Displays only CRITICAL messages.

ERROR indicates problems preventing a function. Displays ERROR and CRITICAL messages.

WARNING indicates potential future issues. Displays WARNING, ERROR, CRITICAL messages.

INFO tracks normal operation. Displays INFO, WARNING, ERROR, CRITICAL messages.

DEBUG provides detailed diagnostic info. Displays all log messages.

Default: :ansible-option-default:`"WARNING"`

dnac_password

string

The password for authentication at the Cisco Catalyst Center.

dnac_port

string

Specifies the port number associated with the Cisco Catalyst Center.

Default: :ansible-option-default:`"443"`

dnac_task_poll_interval

integer

Specifies the interval in seconds between successive calls to the API to retrieve task details.

Default: :ansible-option-default:`2`

dnac_username

aliases: user

string

The username for authentication at the Cisco Catalyst Center.

Default: :ansible-option-default:`"admin"`

dnac_verify

boolean

Flag to enable or disable SSL certificate verification.

Choices:

dnac_version

string

Specifies the version of the Cisco Catalyst Center that the SDK should use.

Default: :ansible-option-default:`"2.2.3.3"`

state

string

The state of Cisco Catalyst Center after module completion.

Choices:

validate_response_schema

boolean

Flag for Cisco Catalyst Center SDK to enable the validation of request bodies against a JSON schema.

Choices:

Notes

Note

  • Configuring the webhook destination with headers now supports starting from dnacentersdk version 2.9.1 onwards. This enhancement is in alignment with Catalyst Center Release 2.3.7.5.

  • Configuring the SNMP destination now supports starting from dnacentersdk version 2.9.1 onwards. This enhancement is in alignment with Catalyst Center Release 2.3.7.5.

  • SDK Method used are events.Events.get_syslog_destination, events.Events.create_syslog_destination, events.Events.update_syslog_destination, events.Events.get_snmp_destination, events.Events.create_snmp_destination, events.Events.update_snmp_destination, events.Events.get_webhook_destination, events.Events.create_webhook_destination, events.Events.update_webhook_destination, events.Events.get_email_destination, events.Events.create_email_destination, events.Events.get_status_api_for_events, events.Events.get_all_itsm_integration_settings, events.Events.get_itsm_integration_setting_by_id, events.Events.create_itsm_integration_setting, events.Events.update_itsm_integration_setting, events.Events.delete_itsm_integration_setting

  • Does not support check_mode

  • The plugin runs on the control node and does not use any ansible connection plugins instead embedded connection manager from Cisco Catalyst Center SDK

  • The parameters starting with dnac_ are used by the Cisco Catalyst Center Python SDK to establish the connection

Examples

- name: Create Rest Webhook destination with given name.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - webhook_destination:
          name: "webhook test"
          description: "creating webhook for testing"
          url: "https://10.195.227.14/dna"
          method: "POST"
          trust_cert: False

- name: Updating Rest Webhook destination with given name.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - webhook_destination:
          name: "webhook test"
          description: "updating webhook for testing"


- name: Configuring the email destination in the system.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - email_destination:
          from_email: "test@cisco.com"
          to_email: "demo@cisco.com"
          subject: "Ansible testing"
          primary_smtp_config:
            server_address: "outbound.cisco.com"
            port: "25"
            smtp_type: "DEFAULT"

- name: Updating the email destination in the system.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - email_destination:
          from_email: "test@cisco.com"
          to_email: "demo123@cisco.com"
          subject: "Ansible updated email config testing"

- name: Create Syslog destination with given name.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - syslog_destination:
          name: Syslog test
          description: "Adding syslog destination"
          server_address: "10.30.0.90"
          protocol: "TCP"
          port: 6553

- name: Update Syslog destination with given name.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - syslog_destination:
          name: Syslog test
          description: "Updating syslog destination."

- name: Create SNMP destination with given name.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - snmp_destination:
          name: Snmp test
          description: "Adding snmp destination for testing."
          server_address: "10.30.0.90"
          port: "25"
          snmp_version: "V3"
          username: cisco
          mode: AUTH_PRIVACY
          auth_type: SHA
          auth_password: authpass123
          privacy_type: AES128
          privacy_password: privacy123

- name: Update SNMP destination with given name.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - snmp_destination:
          name: Snmp test
          description: "Updating snmp destination with snmp version v2."
          server_address: "10.30.0.90"
          port: "25"
          snmp_version: "V2C"
          community: "public123"

- name: Create ITSM Integration Setting with given name in the system.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - itsm_setting:
          instance_name: "ITSM test"
          description: "ITSM description for testing"
          connection_settings:
            url: "http/catalystcenter.com"
            username: "catalyst"
            password: "catalyst@123"

- name: Updating ITSM Integration Setting with given name in the system.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: merged
    config:
      - itsm_setting:
          instance_name: "ITSM test"
          connection_settings:
            url: "http/catalystcenterupdate.com"
            password: "catalyst@123"

- name: Deleting ITSM Integration Setting with given name from the system.
  cisco.dnac.events_and_notifications_workflow_manager:
    dnac_host: "{{dnac_host}}"
    dnac_username: "{{dnac_username}}"
    dnac_password: "{{dnac_password}}"
    dnac_verify: "{{dnac_verify}}"
    dnac_port: "{{dnac_port}}"
    dnac_version: "{{dnac_version}}"
    dnac_debug: "{{dnac_debug}}"
    dnac_log_level: "{{dnac_log_level}}"
    dnac_log: False
    state: deleted
    config:
      - itsm_setting:
          instance_name: "ITSM test"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

dnac_response

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

Authors

  • Abhishek Maheshwari (@abmahesh) Madhan Sankaranarayanan (@madhansansel)