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

Note

This module is part of the cisco.dnac collection (version 6.27.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.6.0

Synopsis

  • Manage operations create, update and delete of the resource Configuration Template.

  • API to create a template by project name and template name.

  • API to update a template by template name and project name.

  • API to delete a template by template name and project name.

  • API to export the projects for given projectNames.

  • API to export the templates for given templateIds.

  • API to manage operation create of the resource Configuration Template Import Project.

  • API to manage operation create of the resource Configuration Template Import Template.

Requirements

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

  • dnacentersdk >= 2.7.2

  • python >= 3.9

Parameters

Parameter

Comments

config

list / elements=dictionary / required

List of details of templates being managed.

configuration_templates

dictionary

Perform operations such as Create/Update/Delete on a template.

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

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.

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.

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.

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.

config_verify

boolean

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

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

The state of Cisco Catalyst Center after module completion.

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,

  • 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_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: string
        composite: true
        custom_params_order: true
        description: string
        device_types:
        - product_family: string
          product_series: string
          product_type: string
        failure_policy: string
        id: string
        language: string
        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: Export the projects.
  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:
      export:
        project:
          - string
          - string

- name: Export the templates.
  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:
      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_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:
      import:
        project:
          do_version: false
          payload:
          - name: string
          - name: string

- name: Import the Templates.
  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:
      import:
        template:
          do_version: false
          project_name: string
          template_file: string

- 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_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"
        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_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"
        device_details:
          device_ips: ["10.1.2.1", "10.2.3.4"]

- name: Delete the given project or template from the Cisco Catalyst Center
  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: deleted
    config_verify: True
    config:
      configuration_templates:
        project_name: "Sample_Project"
        template_name: "Sample Template"
        language: "velocity"
        software_type: "IOS-XE"
        device_types:
        - product_family: "Switches and Hubs"

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"

Authors

  • Madhan Sankaranarayanan (@madhansansel) Rishita Chowdhary (@rishitachowdhary) Akash Bhaskaran (@akabhask) Muthu Rakesh (@MUTHU-RAKESH-27) Abhishek Maheshwari (@abmahesh)