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

Note

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

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

  • python >= 3.9

Parameters

Parameter

Comments

config

list / elements=dictionary / required

List of details of templates being managed.

configuration_templates

dictionary

Create/Update/Delete template.

author

string

Author of template.

composite

boolean

Is it composite template.

Choices:

  • false

  • true

containing_templates

list / elements=dictionary

Configuration Template Create’s containingTemplates.

composite

boolean

Is it composite template.

Choices:

  • false

  • true

description

string

Description of template.

device_types

list / elements=dictionary

deviceTypes on which templates would be applied.

product_family

string

Device family.

product_series

string

Device series.

product_type

string

Device type.

id

string

UUID of template.

language

string

Template language

Choices:

  • "JINJA"

  • "VELOCITY"

name

string

Name of template.

project_description

string

Description of the project created.

project_name

string

Name of the project under which templates are managed.

rollback_template_params

list / elements=dictionary

Params required for template rollback.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Create’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Create’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

tags

list / elements=dictionary

Configuration Template Create’s tags.

id

string

UUID of tag.

name

string

Name of tag.

template_content

string

Template content.

template_params

list / elements=dictionary

Configuration Template Create’s templateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Create’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Create’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

version

string

Current version of template.

create_time

integer

Create time of template.

custom_params_order

boolean

Custom Params Order.

Choices:

  • false

  • true

device_types

list / elements=dictionary

Configuration Template Create’s deviceTypes. This field is mandatory to create a new template.

product_family

string

Device family.

product_series

string

Device series.

product_type

string

Device type.

failure_policy

string

Define failure policy if template provisioning fails.

id

string

UUID of template.

language

string

Template language

Choices:

  • "JINJA"

  • "VELOCITY"

last_update_time

integer

Update time of template.

latest_version_time

integer

Latest versioned template time.

parent_template_id

string

Parent templateID.

project_description

string

Project Description.

project_id

string

Project UUID.

project_name

string

Project name.

rollback_template_content

string

Rollback template content.

rollback_template_params

list / elements=dictionary

Configuration Template Create’s rollbackTemplateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Create’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Create’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

software_type

string

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

software_variant

string

Applicable device software variant.

software_version

string

Applicable device software version.

template_content

string

Template content.

template_description

string

Description of template.

template_name

string

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

template_params

list / elements=dictionary

Configuration Template Create’s templateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Create’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Create’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

template_tag

list / elements=dictionary

Configuration Template Create’s tags.

id

string

UUID of tag.

name

string

Name of tag.

validation_errors

dictionary

Configuration Template Create’s validationErrors.

rollback_template_errors

list / elements=dictionary

Validation or design conflicts errors of rollback template.

template_errors

list / elements=dictionary

Validation or design conflicts errors.

template_id

string

UUID of template.

template_version

string

Current version of template.

version

string

Current version of template.

version_description

string

Template version comments.

export

dictionary

Export the project/template details.

project

list / elements=string

Export the project.

template

list / elements=dictionary

Export the template.

project_name

string

Name of the project under the template available.

template_name

string

Name of the template which we need to export

import

dictionary

Import the project/template details.

project

dictionary

Import the project details.

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

template

dictionary

Import the template details.

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

Configuration Template Import Template’s payload.

author

string

Author of template.

composite

boolean

Is it composite template.

Choices:

  • false

  • true

containing_templates

list / elements=dictionary

Configuration Template Import Template’s containingTemplates.

composite

boolean

Is it composite template.

Choices:

  • false

  • true

description

string

Description of template.

device_types

list / elements=dictionary

Configuration Template Import Template’s deviceTypes.

product_family

string

Device family.

product_series

string

Device series.

product_type

string

Device type.

id

string

UUID of template.

language

string

Template language (JINJA or VELOCITY).

name

string

Name of template.

project_name

string

Project name.

rollback_template_params

list / elements=dictionary

Configuration Template Import Template’s rollbackTemplateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Import Template’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Import Template’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

tags

list / elements=dictionary

Configuration Template Import Template’s tags.

id

string

UUID of tag.

name

string

Name of tag.

template_content

string

Template content.

template_params

list / elements=dictionary

Configuration Template Import Template’s templateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Import Template’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Import Template’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

version

string

Current version of template.

create_time

integer

Create time of template.

custom_params_order

boolean

Custom Params Order.

Choices:

  • false

  • true

description

string

Description of template.

device_types

list / elements=dictionary

Configuration Template Import Template’s deviceTypes.

product_family

string

Device family.

product_series

string

Device series.

product_type

string

Device type.

failure_policy

string

Define failure policy if template provisioning fails.

id

string

UUID of template.

language

string

Template language (JINJA or VELOCITY).

last_update_time

integer

Update time of template.

latest_version_time

integer

Latest versioned template time.

name

string

Name of template.

parent_template_id

string

Parent templateID.

project_id

string

Project UUID.

project_name

string

Project name.

rollback_template_content

string

Rollback template content.

rollback_template_params

list / elements=dictionary

Configuration Template Import Template’s rollbackTemplateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Import Template’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Import Template’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

software_type

string

Applicable device software type.

software_variant

string

Applicable device software variant.

software_version

string

Applicable device software version.

tags

list / elements=dictionary

Configuration Template Import Template’s tags.

id

string

UUID of tag.

name

string

Name of tag.

template_content

string

Template content.

template_params

list / elements=dictionary

Configuration Template Import Template’s templateParams.

binding

string

Bind to source.

custom_order

integer

CustomOrder of template param.

data_type

string

Datatype of template param.

default_value

string

Default value of template param.

description

string

Description of template param.

display_name

string

Display name of param.

group

string

Group.

id

string

UUID of template param.

instruction_text

string

Instruction text for param.

key

string

Key.

not_param

boolean

Is it not a variable.

Choices:

  • false

  • true

order

integer

Order of template param.

param_array

boolean

Is it an array.

Choices:

  • false

  • true

parameter_name

string

Name of template param.

provider

string

Provider.

range

list / elements=dictionary

Configuration Template Import Template’s range.

id

string

UUID of range.

max_value

integer

Max value of range.

min_value

integer

Min value of range.

required

boolean

Is param required.

Choices:

  • false

  • true

selection

dictionary

Configuration Template Import Template’s selection.

default_selected_values

list / elements=string

Default selection values.

id

string

UUID of selection.

selection_type

string

Type of selection(SINGLE_SELECT or MULTI_SELECT).

selection_values

dictionary

Selection values.

validation_errors

dictionary

Configuration Template Import Template’s validationErrors.

rollback_template_errors

dictionary

Validation or design conflicts errors of rollback template.

template_errors

dictionary

Validation or design conflicts errors.

template_id

string

UUID of template.

template_version

string

Current version of template.

version

string

Current version of template.

project_name

string

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

config_verify

boolean

Set to True to verify the Cisco DNA 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

Flag for Cisco DNA Center SDK to enable debugging.

Choices:

  • false ← (default)

  • true

dnac_host

string / required

The Cisco DNA Center hostname.

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 Cisco DNA Center password to authenticate.

dnac_port

string

The Cisco DNA Center port.

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 Cisco DNA Center username to authenticate.

Default: "admin"

dnac_verify

boolean

Flag to enable or disable SSL certificate verification.

Choices:

  • false

  • true ← (default)

dnac_version

string

Informs the SDK which version of Cisco DNA Center to use.

Default: "2.2.3.3"

state

string

The state of DNAC after module completion.

Choices:

  • "merged" ← (default)

  • "deleted"

validate_response_schema

boolean

Flag for Cisco DNA 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, but instead the embedded connection manager from Cisco DNAC SDK

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

Examples

- name: Create a new template, export and import the project and template.
  cisco.dnac.template_intent:
    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
        create_time: 0
        custom_params_order: true
        description: string
        device_types:
        - product_family: string
          product_series: string
          product_type: string
        failure_policy: string
        id: string
        language: string
        last_update_time: 0
        latest_version_time: 0
        name: string
        parent_template_id: string
        project_id: string
        project_name: string
        project_description: string
        rollback_template_content: string
        software_type: string
        software_variant: string
        software_version: string
        tags:
        - id: string
          name: string
        template_content: string
        validation_errors:
            rollback_template_errors:
            - {}
            template_errors:
            - {}
            template_id: string
            template_version: string
        version: string
      export:
        project:
          - string
        template:
          - project_name : string
            template_name: string
      import:
        project:
          do_version: true
        export:
          do_version: true
          payload:
          - author: string
            composite: true
            containing_templates:
            - composite: true
              description: string
              device_types:
              - product_family: string
                product_series: string
                product_type: string
              id: string
              language: string
              name: string
              project_name: string
              rollback_template_params:
              - binding: string
                custom_order: 0
                data_type: string
                default_value: string
                description: string
                display_name: string
                group: string
                id: string
                instruction_text: string
                key: string
                not_param: true
                order: 0
                param_array: true
                parameter_name: string
                provider: string
                range:
                - id: string
            project_name: string

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 DNAC 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 DNAC 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 DNAC 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 DNAC 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 DNAC 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)