cisco.dnac.template_workflow_manager module – Resource module for Template functions

Note

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

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

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.template_workflow_manager.

New in cisco.dnac 6.33.0

Synopsis

  • Manages operations for creating, updating, and deleting configuration templates.

  • Creates templates by project and template names.

  • Updates templates by project and template names.

  • Deletes templates by project and template names.

  • Exports projects and templates based on specified parameters.

  • Handles the creation of resources for importing configuration templates and projects.

Requirements

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

  • dnacentersdk >= 2.8.6

  • python >= 3.9

Parameters

Parameter

Comments

config

list / elements=dictionary / required

Details of templates to manage.

configuration_templates

dictionary

Operations for Create/Update/Delete on a template.

author

string

Creator of the template.

commit

boolean

Indicates whether the template should be committed after configuration changes.

If set to ‘false’, the changes are not committed immediately, allowing for additional modifications before an explicit commit.

Choices:

  • false

  • true ← (default)

composite

boolean

Specifies if the template is composite.

Choices:

  • false

  • true

containing_templates

list / elements=dictionary

Set of templates within the main template to define more complex or modular configurations.

This is particularly useful in systems that support hierarchical or nested templates.

Here parent templates may contain child templates to form a complete configuration.

composite

boolean

Specifies if the template is composite.

Choices:

  • false

  • true

device_types

list / elements=dictionary

List of dictionaries details the types of devices that the templates can be applied to.

product_family

string

Denotes the family to which the device belongs.

Choices:

  • "Cisco Cloud Services Platform"

  • "Cisco Interfaces and Modules"

  • "Content Networking"

  • "Network Management"

  • "NFV-ThirdParty Devices"

  • "NFVIS"

  • "Routers"

  • "Security and VPN"

  • "Storage Networking"

  • "Switches and Hubs"

  • "Voice and Telephony"

  • "Wireless Controller"

product_series

string

Specifies the series classification of the device.

product_type

string

Describes the exact type of the device.

id

string

Unique identifier for the template, represented as a UUID.

language

string

Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity.

Choices:

  • "JINJA"

  • "VELOCITY"

name

string

Designation of the template, serving as its unique name.

project_description

string

Narrative that elaborates on the purpose and scope of the project.

project_name

string

Title of the project within which the template is categorized and managed.

tags

list / elements=dictionary

A list of dictionaries representing tags associated with the Configuration Template during creation.

id

string

The unique identifier for each tag, presented as a UUID.

name

string

The descriptive label or name assigned to the tag.

template_content

string

The actual script or code constituting the body of the template.

template_description

string

Provides a description of the template.

template_params

list / elements=dictionary

The customization of the contents within the template.

binding

string

Associates the parameter with its source.

custom_order

integer

Specifies a user-defined ordering for the parameter.

data_type

string

Identifies the data type of the parameter (e.g., string, integer, boolean).

default_value

string

Establishes a default value for the parameter, used if no other value is provided.

description

string

Provides a descriptive explanation of the parameter’s purpose.

display_name

string

The name of the parameter as displayed to users.

group

string

Categorizes the parameter into a named group for organizational purposes.

id

string

A unique identifier for the parameter, formatted as a UUID.

instruction_text

string

Gives guidance or instructions regarding the parameter’s use.

key

string

A unique key that identifies the parameter within the template.

not_param

boolean

Indicates whether the entry is not to be treated as a parameter.

Choices:

  • false

  • true

order

integer

Determines the sequence in which the parameter appears relative to others.

param_array

boolean

Specifies if the parameter should be treated as an array.

Choices:

  • false

  • true

parameter_name

string

The name of the parameter.

provider

string

Denotes the provider associated with the parameter.

range

list / elements=dictionary

Defines the permissible range for the parameter’s value.

id

string

Unique identifier for the range, represented as a UUID.

max_value

integer

Specifies the maximum allowable value for the parameter.

min_value

integer

Specifies the minimum allowable value for the parameter.

required

boolean

Dictates whether the parameter is required for template operations.

Choices:

  • false

  • true

selection

dictionary

Contains options for parameter selection when a choice is available.

default_selected_values

list / elements=string

Lists the default values that are preselected.

id

string

A unique identifier for the selection entity, represented as a UUID.

selection_type

string

Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’.

selection_values

dictionary

A dictionary of available values for selection.

version

string

The current version of template.

custom_params_order

boolean

Specifies the sequence in which custom parameters or variables should be arranged within the template.

Choices:

  • false

  • true

device_types

list / elements=dictionary

List of dictionaries details the types of devices that the templates can be applied to.

product_family

string

Denotes the family to which the device belongs.

Choices:

  • "Cisco Cloud Services Platform"

  • "Cisco Interfaces and Modules"

  • "Content Networking"

  • "Network Management"

  • "NFV-ThirdParty Devices"

  • "NFVIS"

  • "Routers"

  • "Security and VPN"

  • "Storage Networking"

  • "Switches and Hubs"

  • "Voice and Telephony"

  • "Wireless Controller"

product_series

string

Specifies the series classification of the device.

product_type

string

Describes the exact type of the device.

failure_policy

string

Define failure policy if template provisioning fails.

failure_policy will be enabled only when the composite is set to True.

Choices:

  • "ABORT_TARGET_ON_ERROR"

id

string

A unique identifier, represented as a UUID.

language

string

Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity.

Choices:

  • "JINJA"

  • "VELOCITY"

new_template_name

string

New name of the template.

Use this field to update the name of the existing template.

project_description

string

Narrative that elaborates on the purpose and scope of the project.

project_name

string

Title of the project within which the template is categorized and managed.

software_type

string

Applicable device software type. This field is required to create a new template.

Choices:

  • "IOS"

  • "IOS-XE"

  • "IOS-XR"

  • "NX-OS"

  • "Cisco Controller"

  • "Wide Area Application Services"

  • "Adaptive Security Appliance"

  • "NFV-OS"

  • "Others"

software_version

string

Applicable device software version.

template_content

string

The actual script or code constituting the body of the template.

template_description

string

Provides a overview of the template.

template_name

string

Name of template. This field is required to create a new template.

template_params

list / elements=dictionary

The customization of the contents within the template.

binding

string

Associates the parameter with its source.

custom_order

integer

Specifies a user-defined ordering for the parameter.

data_type

string

Identifies the data type of the parameter (e.g., string, integer, boolean).

default_value

string

Establishes a default value for the parameter, used if no other value is provided.

description

string

Provides a descriptive explanation of the parameter’s purpose.

display_name

string

The name of the parameter as displayed to users.

group

string

Categorizes the parameter into a named group for organizational purposes.

id

string

A unique identifier for the parameter, formatted as a UUID.

instruction_text

string

Gives guidance or instructions regarding the parameter’s use.

key

string

A unique key that identifies the parameter within the template.

not_param

boolean

Indicates whether the entry is not to be treated as a parameter.

Choices:

  • false

  • true

order

integer

Determines the sequence in which the parameter appears relative to others.

param_array

boolean

Specifies if the parameter should be treated as an array.

Choices:

  • false

  • true

parameter_name

string

The name of the parameter.

provider

string

Denotes the provider associated with the parameter.

range

list / elements=dictionary

Defines the permissible range for the parameter’s value.

id

string

Unique identifier for the range, represented as a UUID.

max_value

integer

Specifies the maximum allowable value for the parameter.

min_value

integer

Specifies the minimum allowable value for the parameter.

required

boolean

Dictates whether the parameter is required for template operations.

Choices:

  • false

  • true

selection

dictionary

Contains options for parameter selection when a choice is available.

default_selected_values

list / elements=string

Lists the default values that are preselected.

id

string

A unique identifier for the selection entity, represented as a UUID.

selection_type

string

Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’.

selection_values

dictionary

A dictionary of available values for selection.

template_tag

list / elements=dictionary

Refers to a keyword, label, or metadata assigned to a template.

id

string

A unique identifier for the tag, represented as a UUID.

name

string

The name of the tag.

version

string

The current version of template.

version_description

string

Template version comments.

deploy_template

dictionary

To deploy the template to the devices based on either list of site provisionig details with further filtering criteria like device family, device role, device tag or by providing the device specific details which includes device_ips, device_hostnames, serial_numbers or mac_addresses.

copy_config

boolean

A boolean flag that specifies whether the device’s running configuration should be copied to the startup configuration after applying the template.

If set to ‘true’, the updated configuration will be saved to the startup configuration. be copied to the start up config from the device before applying the template.

Choices:

  • false

  • true ← (default)

device_details

dictionary

Details specific to devices where the template will be deployed, including lists of device IPs, hostnames, serial numbers, or MAC addresses.

device_hostnames

list / elements=string

A list of hostnames of the devices where the template will be deployed.

device_ips

list / elements=string

A list of IP addresses of the devices where the template will be deployed.

mac_addresses

list / elements=string

A list of MAC addresses of the devices where the template will be deployed.

serial_numbers

list / elements=string

A list of serial numbers of the devices where the template will be deployed.

force_push

boolean

Boolean flag to indicate whether the template should be forcefully pushed to the devices, overriding any existing configuration.

Choices:

  • false

  • true

is_composite

boolean

Boolean flag indicating whether the template is composite, which means the template is built using multiple smaller templates.

Choices:

  • false

  • true

project_name

string

Provide the name of project under which the template is available.

resource_parameters

list / elements=dictionary

A list of configuration parameters required for provisioning resources in the system. These parameters define specific settings or details that must be supplied when deploying templates. If the template uses system variables (variables prefixed with __, (e.g., __device), the corresponding resource parameters must be provided to ensure successful deployment.

resource_scope

string

Specifies the scope in which the resource parameter is to be provisioned.

Possible enum values are - - RUNTIME - A parameter with a runtime scope is provided at the time of deployment. These values are dynamic and may change with each deployment, as they are based on the specific context of the deployment. - DESIGN - A parameter with a design scope is defined during the design phase of the template. These values are static after template creation and remain consistent across deployments.

resource_type

string

The type of the resource param that is to be provisioned during template deployment - Specifies the type of the resource parameter to be provisioned during template deployment. - Possible enum values are - - MANAGED_DEVICE_UUID - Used when the parameter value is the UUID of the device. - MANAGED_DEVICE_IP - Used when the parameter value is the device’s IP address. - MANAGED_DEVICE_HOSTNAME - Used when the parameter value is the device’s hostname. - SITE_UUID - Used when the parameter value is the UUID of a site. - MANAGED_AP_LOCATIONS - Used when the parameter value is the locations of managed access points within the network. - SECONDARY_MANAGED_AP_LOCATIONS - Used when the parameter value is the locations of secondary or backup managed access points. - SSID_NAME - Used when the parameter value is the name of a wireless network. - POLICY_PROFILE - Used when the parameter value is a set of policies that can be applied to network devices or users. - From the above enum values, the following resource types support value provisioning at runtime - MANAGED_DEVICE_UUID - MANAGED_DEVICE_IP - MANAGED_DEVICE_HOSTNAME - SITE_UUID - For all other resource types, the values must be provided at design time in the playbook.

resource_value

string

The actual value of the resource param to be provisioned.

site_provisioning_details

list / elements=dictionary

Parameters related to site-based provisioning, allowing the deployment of templates to devices associated with specific sites, with optional filtering by device family, role, or tag.

device_family

string

Family of the devices (e.g., switches, routers) used to filter devices for template deployment.

device_role

string

Role of the devices (e.g., access, core, edge) used to filter devices for template deployment.

device_tag

string

Specific device tag used to filter devices for template deployment.

site_name

list / elements=string

Name of the site where the devices are associated for provisioning.

template_name

string

Name of the template to be deployed.

template_parameters

list / elements=dictionary

A list of parameter name-value pairs used for customizing the template with specific values for each device.

param_name

string

Name of the parameter in the template that needs to be replaced with a specific value.

param_value

string

Value assigned to the parameter for deployment to devices.

version

integer

This is useful for targeting specific template versions, such as rolling back to a tested version.

export

dictionary

Perform export on the projects and templates.

project

list / elements=string

Export the project(s) details.

template

list / elements=dictionary

Export the template(s) details.

project_name

string

Name of the project under the template available.

template_name

string

Name of the template which we need to be exported.

import

dictionary

Perform import on the projects and templates.

project

dictionary

Import the projects.

do_version

boolean

Determines whether to create a new version of the project with the imported contents.

If set to true and the project already exists, a new version will be created.

If false, the operation will fail with a ‘Project already exists’ error if the project already exists.

Choices:

  • false

  • true

payload

list / elements=dictionary

Directly imports configuration data into the system using the provided payload.

Offers an alternative to ‘project_file’ for importing configurations without referencing an external file.

Ignored if ‘project_file’ is also provided.

name

string

Name of the project to be imported.

project_file

string

added in cisco.dnac 6.17.0

Specifies the path to a JSON file that contains the import project configuration.

If both ‘project_file’ and ‘payload’ are provided, the ‘project_file’ will be given priority.

template

dictionary

Import the templates.

do_version

boolean

DoVersion query parameter. If this flag is true, creates a new version of the template with the imported contents, if the templates already exists. ” If false and if template already exists, then operation fails with ‘Template already exists’ error.

Choices:

  • false

  • true

payload

list / elements=dictionary

The payload parameter is used to directly import configuration data into the system.

The payload provides an alternative way to import configurations without the need to reference an external file.

If both ‘template_file’ and ‘payload’ are provided, the ‘template_file’ will be given priority.

author

string

Identifies the creator of the template.

composite

boolean

Specifies if the template is composite.

Choices:

  • false

  • true

containing_templates

list / elements=dictionary

Refer to a set of templates within the main template to define more complex or modular configurations.

This is particularly useful in systems that support hierarchical or nested templates.

Here parent templates may contain child templates to form a complete configuration.

composite

boolean

Specifies if the template is composite.

Choices:

  • false

  • true

description

string

Provides a description of the template.

device_types

list / elements=dictionary

List of dictionaries details the types of devices that the templates can be applied to.

product_family

string

Denotes the family to which the device belongs.

Choices:

  • "Cisco Cloud Services Platform"

  • "Cisco Interfaces and Modules"

  • "Content Networking"

  • "Network Management"

  • "NFV-ThirdParty Devices"

  • "NFVIS"

  • "Routers"

  • "Security and VPN"

  • "Storage Networking"

  • "Switches and Hubs"

  • "Voice and Telephony"

  • "Wireless Controller"

product_series

string

Specifies the series classification of the device.

product_type

string

Describes the exact type of the device.

id

string

Unique identifier for the template, represented as a UUID.

language

string

Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity.

Choices:

  • "JINJA"

  • "VELOCITY"

name

string

Designation of the template, serving as its unique name.

project_name

string

Title of the project within which the template is categorized and managed.

tags

list / elements=dictionary

A list of dictionaries representing tags associated with the Configuration Template during creation.

id

string

The unique identifier for each tag, presented as a UUID.

name

string

The descriptive label or name assigned to the tag.

template_content

string

The actual script or code constituting the body of the template.

template_params

list / elements=dictionary

The customization of the contents within the template.

binding

string

Associates the parameter with its source.

custom_order

integer

Specifies a user-defined ordering for the parameter.

data_type

string

Identifies the data type of the parameter (e.g., string, integer, boolean).

default_value

string

Establishes a default value for the parameter, used if no other value is provided.

description

string

Provides a descriptive explanation of the parameter’s purpose.

display_name

string

The name of the parameter as displayed to users.

group

string

Categorizes the parameter into a named group for organizational purposes.

id

string

A unique identifier for the parameter, formatted as a UUID.

instruction_text

string

Gives guidance or instructions regarding the parameter’s use.

key

string

A unique key that identifies the parameter within the template.

not_param

boolean

Indicates whether the entry is not to be treated as a parameter.

Choices:

  • false

  • true

order

integer

Determines the sequence in which the parameter appears relative to others.

param_array

boolean

Specifies if the parameter should be treated as an array.

Choices:

  • false

  • true

parameter_name

string

The name of the parameter.

provider

string

Denotes the provider associated with the parameter.

range

list / elements=dictionary

Defines the permissible range for the parameter’s value.

id

string

Unique identifier for the range, represented as a UUID.

max_value

integer

Specifies the maximum allowable value for the parameter.

min_value

integer

Specifies the minimum allowable value for the parameter.

required

boolean

Dictates whether the parameter is required for template operations.

Choices:

  • false

  • true

selection

dictionary

Contains options for parameter selection when a choice is available.

default_selected_values

list / elements=string

Lists the default values that are preselected.

id

string

A unique identifier for the selection entity, represented as a UUID.

selection_type

string

Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’.

selection_values

dictionary

A dictionary of available values for selection.

version

string

The current version of template.

custom_params_order

boolean

Specifies the sequence in which custom parameters or variables should be arranged within the template.

Choices:

  • false

  • true

device_types

list / elements=dictionary

List of dictionaries details the types of devices that the templates can be applied to.

product_family

string

Denotes the family to which the device belongs.

Choices:

  • "Cisco Cloud Services Platform"

  • "Cisco Interfaces and Modules"

  • "Content Networking"

  • "Network Management"

  • "NFV-ThirdParty Devices"

  • "NFVIS"

  • "Routers"

  • "Security and VPN"

  • "Storage Networking"

  • "Switches and Hubs"

  • "Voice and Telephony"

  • "Wireless Controller"

product_series

string

Specifies the series classification of the device.

product_type

string

Describes the exact type of the device.

failure_policy

string

Define failure policy if template provisioning fails.

failure_policy will be enabled only when the composite is set to True.

Choices:

  • "ABORT_TARGET_ON_ERROR"

id

string

A unique identifier, represented as a UUID.

language

string

Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity.

Choices:

  • "JINJA"

  • "VELOCITY"

project_description

string

Narrative that elaborates on the purpose and scope of the project.

project_name

string

Title of the project within which the template is categorized and managed.

software_type

string

Applicable device software type. This field is required to create a new template.

Choices:

  • "IOS"

  • "IOS-XE"

  • "IOS-XR"

  • "NX-OS"

  • "Cisco Controller"

  • "Wide Area Application Services"

  • "Adaptive Security Appliance"

  • "NFV-OS"

  • "Others"

software_version

string

Applicable device software version.

template_content

string

The actual script or code constituting the body of the template.

template_description

string

Provides a overview of the template.

template_name

string

Name of template. This field is required to create a new template.

template_params

list / elements=dictionary

The customization of the contents within the template.

binding

string

Associates the parameter with its source.

custom_order

integer

Specifies a user-defined ordering for the parameter.

data_type

string

Identifies the data type of the parameter (e.g., string, integer, boolean).

default_value

string

Establishes a default value for the parameter, used if no other value is provided.

description

string

Provides a descriptive explanation of the parameter’s purpose.

display_name

string

The name of the parameter as displayed to users.

group

string

Categorizes the parameter into a named group for organizational purposes.

id

string

A unique identifier for the parameter, formatted as a UUID.

instruction_text

string

Gives guidance or instructions regarding the parameter’s use.

key

string

A unique key that identifies the parameter within the template.

not_param

boolean

Indicates whether the entry is not to be treated as a parameter.

Choices:

  • false

  • true

order

integer

Determines the sequence in which the parameter appears relative to others.

param_array

boolean

Specifies if the parameter should be treated as an array.

Choices:

  • false

  • true

parameter_name

string

The name of the parameter.

provider

string

Denotes the provider associated with the parameter.

range

list / elements=dictionary

Defines the permissible range for the parameter’s value.

id

string

Unique identifier for the range, represented as a UUID.

max_value

integer

Specifies the maximum allowable value for the parameter.

min_value

integer

Specifies the minimum allowable value for the parameter.

required

boolean

Dictates whether the parameter is required for template operations.

Choices:

  • false

  • true

selection

dictionary

Contains options for parameter selection when a choice is available.

default_selected_values

list / elements=string

Lists the default values that are preselected.

id

string

A unique identifier for the selection entity, represented as a UUID.

selection_type

string

Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’.

selection_values

dictionary

A dictionary of available values for selection.

template_tag

list / elements=dictionary

Refers to a keyword, label, or metadata assigned to a template.

id

string

A unique identifier for the tag, represented as a UUID.

name

string

The name of the tag.

version

string

The current version of template.

project_name

string

ProjectName path parameter. Project name to create template under the project.

template_file

string

Specifies the path to a JSON file that contains an import template.

If both ‘template_file’ and ‘payload’ are provided, the ‘template_file’ will be given priority.

projects

list / elements=dictionary

Create, update, or delete projects with associated details such as name, and description.

description

string

A brief description of the project.

name

string / required

The name of the project. This is used to identify the project for creation, update, or deletion.

new_name

string

Specify a new name for the project when updating an existing project.

config_verify

boolean

If set to True, verifies the Cisco Catalyst Center configuration after applying the playbook.

Choices:

  • false ← (default)

  • true

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: 1200

dnac_debug

boolean

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

Choices:

  • false ← (default)

  • true

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:

  • false ← (default)

  • true

dnac_log_append

boolean

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

Choices:

  • false

  • true ← (default)

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: "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: "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: "443"

dnac_task_poll_interval

integer

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

Default: 2

dnac_username

aliases: user

string

The username for authentication at the Cisco Catalyst Center.

Default: "admin"

dnac_verify

boolean

Flag to enable or disable SSL certificate verification.

Choices:

  • false

  • true ← (default)

dnac_version

string

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

Default: "2.2.3.3"

state

string

Desired state of the Cisco Catalyst Center after module execution.

Choices:

  • "merged" ← (default)

  • "deleted"

validate_response_schema

boolean

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

Choices:

  • false

  • true ← (default)

Notes

Note

  • SDK Method used are configuration_templates.ConfigurationTemplates.create_template, configuration_templates.ConfigurationTemplates.deletes_the_template, configuration_templates.ConfigurationTemplates.update_template, configuration_templates.ConfigurationTemplates.export_projects, configuration_templates.ConfigurationTemplates.export_templates, configuration_templates.ConfigurationTemplates.imports_the_projects_provided, configuration_templates.ConfigurationTemplates.imports_the_templates_provided,

  • Paths used are post /dna/intent/api/v1/template-programmer/project/{projectId}/template, delete /dna/intent/api/v1/template-programmer/template/{templateId}, put /dna/intent/api/v1/template-programmer/template, post /dna/intent/api/v1/template-programmer/project/name/exportprojects, post /dna/intent/api/v1/template-programmer/template/exporttemplates, post /dna/intent/api/v1/template-programmer/project/importprojects, post /dna/intent/api/v1/template-programmer/project/name/{projectName}/template/importtemplates,

  • While deploying the template to devices, the value for the following resource types can be filled in the resource parameters at RUNTIME- MANAGED_DEVICE_UUID, MANAGED_DEVICE_IP, MANAGED_DEVICE_HOSTNAME, and SITE_UUID. For all other resource types, the value must be provided at DESIGN time in the playbook.

  • 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 a new template.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      - configuration_templates:
          author: string
          composite: true
          custom_params_order: true
          template_description: string
          device_types:
            - product_family: string
              product_series: string
              product_type: string
          failure_policy: string
          id: string
          language: string
          template_name: string
          project_name: string
          project_description: string
          software_type: string
          software_version: string
          tags:
            - id: string
              name: string
          template_content: string
          version: string

- name: Update a template.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      - configuration_templates:
          author: string
          composite: true
          custom_params_order: true
          template_description: string
          device_types:
            - product_family: string
              product_series: string
              product_type: string
          failure_policy: string
          id: string
          language: string
          template_name: string
          new_template_name: string
          project_name: string
          project_description: string
          software_type: string
          software_version: string
          tags:
            - id: string
              name: string
          template_content: string

- name: Export the projects.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      export:
        project:
          - string
          - string

- name: Export the templates.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      export:
        template:
          - project_name: string
            template_name: string
          - project_name: string
            template_name: string

- name: Import the Projects.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      import:
        project:
          do_version: false
          payload:
            - name: string
            - name: string

- name: Import the Templates.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      import:
        template:
          do_version: false
          project_name: string
          template_file: string

- name: Creating a JINJA-based template to configure
    access VLAN and interfaces on Catalyst 9300
  cisco.dnac.template_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: true
    dnac_log_level: "{{dnac_log_level}}"
    state: merged
    config_verify: true
    config:
      - configuration_templates:
          author: Test_User
          composite: false
          custom_params_order: true
          template_description: Template to configure access
            VLAN and access interfaces
          device_types:
            - product_family: Switches and Hubs
              product_series: Cisco Catalyst 9300 Series
                Switches
          failure_policy: ABORT_TARGET_ON_ERROR
          language: JINJA
          template_name: PnP-Upstream-SW1
          project_name: access_vlan_template_9300_switches
          project_description: This project contains
            all the templates for Access Switches
          software_type: IOS-XE
          template_content: |
            {% raw %}
            vlan {{ vlan }}
            interface {{ interface }}
            no shutdown
            switchport access vlan {{ vlan }}
            switchport mode access
            description {{ interface_description }}
            {% endraw %}
          version: "1.0"

- name: Creating a VELOCITY-based Fusion Router template
    for Catalyst 3850 switches
  cisco.dnac.template_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: true
    dnac_log_level: "{{dnac_log_level}}"
    state: merged
    config_verify: true
    config:
      - configuration_templates:
          template_name: "Fusion Router Config"
          template_description: "VELOCITY template to configure
            L3 handoff and loopback on Catalyst 3850"
          project_name: "Network Configuration Templates"
          tags: []
          author: admin
          device_types:
            - product_family: "Switches and Hubs"
              product_series: "Cisco Catalyst 3850 Series
                Ethernet Stackable Switch"
          software_type: IOS-XE
          language: VELOCITY
          failure_policy: ABORT_TARGET_ON_ERROR
          template_content: |
            ! L3handoff Vlan
            vlan $VLANID
            hostname  Old$__device.hostname
            interface Loopback0
            ip address $LOOPBACKIP 255.255.255.255
            ipv6 address $LOOPBACKIPV6
            ipv6 enable
            ipv6 nd other-config-flag
            ipv6 dhcp server EMPPool
            ! L3handdoff interface for provider VN
            interface Vlan$VLANID
            description L3handoff $VLANID
            ip address $interfaceIP 255.255.255.252
            ip route-cache same-interface
            ipv6 address $interfaceIPV6
            ipv6 enable
            ipv6 tcp adjust-mss 1400

- name: Deploy the given template to the devices based
    on site specific details and other filtering mode
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      deploy_template:
        project_name: "Sample_Project"
        template_name: "Sample Template"
        force_push: true
        template_parameters:
          - param_name: "vlan_id"
            param_value: "1431"
          - param_name: "vlan_name"
            param_value: "testvlan31"
        site_provisioning_details:
          - site_name: "Global/Bangalore/Building14/Floor1"
            device_family: "Switches and Hubs"

- name: Deploy the given template to the devices based
    on device specific details
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      deploy_template:
        project_name: "Sample_Project"
        template_name: "Sample Template"
        force_push: true
        template_parameters:
          - param_name: "vlan_id"
            param_value: "1431"
          - param_name: "vlan_name"
            param_value: "testvlan31"
        device_details:
          device_ips: ["10.1.2.1", "10.2.3.4"]

- name: Deploy template to the devices using resource
    parameters and copying config
  cisco.dnac.template_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: true
    dnac_log_level: "{{dnac_log_level}}"
    state: merged
    config_verify: true
    config:
      deploy_template:
        project_name: "Sample_Project"
        template_name: "Sample Template"
        force_push: true
        template_parameters:
          - param_name: "vlan_id"
            param_value: "1431"
          - param_name: "vlan_name"
            param_value: "testvlan31"
        resource_parameters:
          - resource_type: "MANAGED_DEVICE_IP"
            resource_scope: "RUNTIME"
        device_details:
          device_ips: ["10.1.2.1", "10.2.3.4"]
        copy_config: true

- name: Delete the given project or template from the
    Cisco Catalyst Center
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: deleted
    config:
      configuration_templates:
        project_name: "Sample_Project"
        template_name: "Sample Template"
        language: "velocity"
        software_type: "IOS-XE"
        device_types:
          - product_family: "Switches and Hubs"

- name: Create a New Project
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      - projects:
          - name: Wireless_Controller
            description: Centralized repository for managing templates and configurations for wireless controllers (WLCs).

- name: Update project name and details.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: merged
    config:
      - projects:
          - name: Wireless_Controller
            new_name: Wireless_Template_Management
            description: Centralized repository for managing templates and configurations for wireless controllers (WLCs).

- name: Delete project based on the name.
  cisco.dnac.template_workflow_manager:
    dnac_host: "{{ dnac_host }}"
    dnac_port: "{{ dnac_port }}"
    dnac_username: "{{ dnac_username }}"
    dnac_password: "{{ dnac_password }}"
    dnac_verify: "{{ dnac_verify }}"
    dnac_version: "{{ dnac_version }}"
    dnac_debug: "{{ dnac_debug }}"
    dnac_log_level: "{{ dnac_log_level }}"
    dnac_log: true
    config_verify: true
    state: deleted
    config:
      - projects:
          - name: Wireless_Template_Management

Return Values

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

Key

Description

response_1

dictionary

A dictionary with versioning details of the template as returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: "{\n  \"response\": {\n                    \"endTime\": 0,\n                    \"version\": 0,\n                    \"data\": String,\n                    \"startTime\": 0,\n                    \"username\": String,\n                    \"progress\": String,\n                    \"serviceType\": String, \"rootId\": String,\n                    \"isError\": bool,\n                    \"instanceTenantId\": String,\n                    \"id\": String\n                    \"version\": 0\n              },\n  \"msg\": String\n}\n"

response_2

list / elements=string

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

Returned: always

Sample: ["{\n  \"response\": []", "\n  \"msg\": String\n}\n"]

response_3

dictionary

A dictionary with the exisiting template deatails as returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: "{\n  \"response\": {},\n  \"msg\": String\n}\n"

response_4

dictionary

Details of the templates in the list as returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: "{\n  \"response\": {},\n  \"msg\": String\n}\n"

response_5

dictionary

Details of the projects in the list as returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: "{\n  \"response\": {},\n  \"msg\": String\n}\n"

response_6

dictionary

Response when a project is created successfully

Returned: always

Sample: {"msg": "project Wireless_Controller created succesfully", "response": "project Wireless_Controller created succesfully", "status": "success"}

response_7

dictionary

Provides details of the response when a project is successfully updated using the Cisco Catalyst Center Python SDK.

Returned: always

Sample: "{\n    \"msg\": \"Project 'Wireless_Template_Management' updated successfully.\",\n    \"response\": Project 'Wireless_Template_Management' updated successfully.\",\n    \"status\": \"success\"\n}\n"

response_8

dictionary

Response when a project is Deleted successfully.

Returned: always

Sample: {"msg": "Project(s) are deleted and verified successfully. ['Wireless_Template_Management']", "response": [{"name": "Wireless_Template_Management"}], "status": "success"}

Authors

  • Madhan Sankaranarayanan (@madhansansel) Rishita Chowdhary (@rishitachowdhary) Akash Bhaskaran (@akabhask) Muthu Rakesh (@MUTHU-RAKESH-27) Abhishek Maheshwari (@abmahesh) Archit Soni (@koderchit) A Mohamed Rafeek (@mabdulk2)