mikewiebe.ndfc.dcnm_interface (2.1.3) — module

DCNM Ansible Module for managing interfaces.

| "added in version" 0.9.0 of mikewiebe.ndfc"

Authors: Mallik Mudigonda(@mmudigon)

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install mikewiebe.ndfc:==2.1.3


Add to requirements.yml

  collections:
    - name: mikewiebe.ndfc
      version: 2.1.3

Description

DCNM Ansible Module for the following interface service operations

Create, Delete, Modify PortChannel, VPC, Loopback and Sub-Interfaces

Modify Ethernet Interfaces

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

# States:
# This module supports the following states:
#
# Merged:
#   Interfaces defined in the playbook will be merged into the target fabric.
#
#   The interfaces listed in the playbook will be created if not already present on the DCNM
#   server. If the interface is already present and the configuration information included
#   in the playbook is either different or not present in DCNM, then the corresponding
#   information is added to the interface on DCNM. If an interface mentioned in playbook
#   is already present on DCNM and there is no difference in configuration, no operation
#   will be performed for such interface.
#
# Replaced:
#   Interfaces defined in the playbook will be replaced in the target fabric.
#
#   The state of the interfaces listed in the playbook will serve as source of truth for the
#   same interfaces present on the DCNM under the fabric mentioned. Additions and updations
#   will be done to bring the DCNM interfaces to the state listed in the playbook.
#   Note: Replace will only work on the interfaces mentioned in the playbook.
#
# Overridden:
#   Interfaces defined in the playbook will be overridden in the target fabric.
#
#   The state of the interfaces listed in the playbook will serve as source of truth for all
#   the interfaces under the fabric mentioned. Additions and deletions will be done to bring
#   the DCNM interfaces to the state listed in the playbook. All interfaces other than the
#   ones mentioned in the playbook will either be deleted or reset to default state.
#   Note: Override will work on the all the interfaces present in the DCNM Fabric.
#
# Deleted:
#   Interfaces defined in the playbook will be deleted in the target fabric.
#
#   Deletes the list of interfaces specified in the playbook.  If the playbook does not include
#   any switches or interface information, then all interfaces from all switches in the
#   fabric will either be deleted or put to default state. If configuuration includes information
#   pertaining to any particular switch, then interfaces belonging to that switch will either be
#   deleted or put to default. If configuration includes both interface and switch information,
#   then the specified interfaces will either be deleted or reset on all the seitches specified
#
# Query:
#   Returns the current DCNM state for the interfaces listed in the playbook.

# LOOPBACK INTERFACE

- name: Create loopback interfaces
  cisco.dcnm.dcnm_interface: &lo_merge
    fabric: mmudigon-fabric
    state: merged                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: lo100                       # should be of the form lo<port-id>
        type: lo                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch where to deploy the config
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: lo                        # choose from [lo]
          int_vrf: ""                     # VRF name
          ipv4_addr: 192.169.10.1         # ipv4 address for the loopback interface
          ipv6_addr: fd01::0201           # ipV6 address for the loopback interface
          route_tag: ""                   # Routing Tag for the interface
          cmds:                           # Freeform config
            - no shutdown
          description: "loopback interface 100 configuration"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Replace loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: replaced                       # only choose from [merged, replaced, deleted, overridden. query]
    config:
      - name: lo100                       # should be of the form lo<port-id>
        type: lo                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch where to deploy the config
        deploy: true                      ## choose from [true, false]
        profile:
          admin_state: false              ## choose from [true, false]
          mode: lo                        # choose from [lo]
          int_vrf: ""                     # VRF name
          ipv4_addr: 192.169.12.1         ## ipv4 address for the loopback interface
          ipv6_addr: fd01:0203            # ipV6 address for the loopback interface
          route_tag: "100"                ## Routing Tag for the interface
          cmds:                           # Freeform config
            - no shutdown
          description: "loopback interface 100 configuration - replaced"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset all interfaces on all switches in the fabric
- name: Delete loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset all interfaces on a specific switch in the fabric
- name: Delete loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - switch:
          - "192.172.1.1"                 # provide the switch where to deploy the config
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset a particular interface on all switches in the fabric
- name: Delete loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: lo100                       # should be of the form lo<port-id>
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset a particular interface on a specific switch in the fabric
- name: Delete loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: lo100                       # should be of the form lo<port-id>
        switch:
          - "192.172.1.1"                 # provide the switch where to deploy the config
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To override with a particular interface configuration
- name: Override loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: overridden                     # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: lo103                       # should be of the form lo<port-id>
        type: lo                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch where to deploy the config
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: lo                        # choose from [lo]
          int_vrf: ""                     # VRF name
          ipv4_addr: 192.169.14.1         # ipv4 address for the loopback interface
          ipv6_addr: fd01::0205           # ipV6 address for the loopback interface
          route_tag: ""                   # Routing Tag for the interface
          cmds:                           # Freeform config
            - no shutdown
          description: "loopback interface 103 configuration - overridden"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To override all interface on all switches in the fabric
- name: Override loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: overridden                     # only choose from [merged, replaced, deleted, overridden, query]
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To override all interfaces on a particular switche in the fabric
- name: Override loopback interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: overridden                     # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - switch:
          - "192.172.1.1"                 # provide the switch where to deploy the config
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# PORTCHANNEL INTERFACE

- name: Create port channel interfaces
  cisco.dcnm.dcnm_interface: &pc_merge
    fabric: mmudigon-fabric
    state: merged                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: po300                       # should be of the form po<port-id>
        type: pc                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: trunk                     # choose from [trunk, access, l3, monitor]
          members:                        # member interfaces
            - e1/10
          pc_mode: 'on'                   # choose from ['on', 'active', 'passive']
          bpdu_guard: true                # choose from [true, false, no]
          port_type_fast: true            # choose from [true, false]
          mtu: jumbo                      # choose from [default, jumbo]
          allowed_vlans: none             # choose from [none, all, vlan range]
          cmds:                           # Freeform config
            - no shutdown
          description: "port channel acting as trunk"

      - name: po301                       # should be of the form po<port-id>
        type: pc                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: false              # choose from [true, false]
          mode: access                    # choose from [trunk, access, l3, monitor]
          members:                        # member interfaces
            - e1/11
          pc_mode: 'on'                   # choose from ['on', 'active', 'passive']
          bpdu_guard: true                # choose from [true, false, no]
          port_type_fast: true            # choose from [true, false]
          mtu: default                    # choose from [default, jumbo]
          access_vlan: 301                #
          cmds:                           # Freeform config
            - no shutdown
          description: "port channel acting as access"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Replace port channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: replaced                       # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: po300                       # should be of the form po<port-id>
        type: pc                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: false              ## choose from [true, false]
          mode: trunk                     # choose from [trunk, access, l3, monitor]
          members:                        # member interfaces
            - e1/10
          pc_mode: 'active'               ## choose from ['on', 'active', 'passive']
          bpdu_guard: false               ## choose from [true, false, no]
          port_type_fast: false           ## choose from [true, false]
          mtu: default                    ## choose from [default, jumbo]
          allowed_vlans: all              ## choose from [none, all, vlan range]
          cmds:                           # Freeform config
            - no shutdown
          description: "port channel acting as trunk - replace"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset a particular interface on a specific switch in the fabric
- name: Delete port channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: po300                       # should be of the form po<port-id>
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset all interfaces on all switches in the fabric
- name: Delete port channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset a particular interface on all switches in the fabric
- name: Delete port-channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: po300                       # should be of the form po<port-id>
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset all interfaces on a specific switch in the fabric
- name: Delete port channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Override port channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: overridden                     # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: po320                       # should be of the form po<port-id>
        type: pc                          # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: trunk                     # choose from [trunk, access, l3, monitor]
          members:                        # member interfaces
            - e1/10
          pc_mode: 'on'                   # choose from ['on', 'active', 'passive']
          bpdu_guard: true                # choose from [true, false, no]
          port_type_fast: true            # choose from [true, false]
          mtu: jumbo                      # choose from [default, jumbo]
          allowed_vlans: none             # choose from [none, all, vlan range]
          cmds:                           # Freeform config
            - no shutdown
          description: "port channel acting as trunk"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# SUB-INTERFACE

- name: Create sub-interfaces
  cisco.dcnm.dcnm_interface: &sub_merge
    fabric: mmudigon-fabric
    state: merged                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: eth1/1.1                    # should be of the form eth<port-num>.<port-id>
        type: sub_int                     # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: subint                    # choose from [subint]
          vlan: 100                       # vlan ID [min:2, max:3967]
          int_vrf: ""                     # VRF name
          ipv4_addr: 192.168.30.1         # ipv4 address for the sub-interface
          ipv4_mask_len: 24               # choose between [min:8, max:31]
          ipv6_addr: fd01::0401           # ipV6 address for the sub-interface
          ipv6_mask_len: 64               # choose between [min:64, max:127]
          mtu: 9216                       # choose between [min:576, max:9216]
          cmds:                           # Freeform config
            - no shutdown
          description: "sub interface eth1/1.1 configuration"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Replace sub-interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: replaced                       # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: eth1/1.1                    # should be of the form eth<port-num>.<port-id>
        type: sub_int                     # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: false              ## choose from [true, false]
          mode: subint                    # choose from [subint]
          vlan: 200                       ## vlan ID [min:2, max:3967]
          int_vrf: ""                     # VRF name
          ipv4_addr: 192.168.32.1         ## ipv4 address for the sub-interface
          ipv4_mask_len: 20               # choose between [min:8, max:31]
          ipv6_addr: fd01::0403           # ipV6 address for the sub-interface
          ipv6_mask_len: 64               # choose between [min:64, max:127]
          mtu: 1500                       ## choose between [min:576, max:9216]
          cmds:                           # Freeform config
            - no shutdown
          description: "sub interface eth1/1.1 configuration - replace"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset all interfaces on all switches in the fabric
- name: Delete sub-interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset a particular interface on all switches in the fabric
- name: Delete port-channel interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                        # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: eth1/1.1                    # should be of the form eth<port-num>.<port-id>
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Override sub-interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: overridden                     # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: eth1/1.3                    # should be of the form eth<port-num>.<port-id>
        type: sub_int                     # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:
          - "192.172.1.1"                 # provide the switch information where the config is to be deployed
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: subint                    # choose from [subint]
          vlan: 103                       # vlan ID [min:2, max:3967]
          int_vrf: ""                     # VRF name
          ipv4_addr: 192.168.35.1         # ipv4 address for the sub-interface
          ipv4_mask_len: 24               # choose between [min:8, max:31]
          ipv6_addr: fd01::0405           # ipV6 address for the sub-interface
          ipv6_mask_len: 64               # choose between [min:64, max:127]
          mtu: 9216                       # choose between [min:576, max:9216]
          cmds:                           # Freeform config
            - no shutdown
          description: "sub interface eth1/1.3 configuration - override"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# VPC INTERFACE

- name: Create vPC interfaces
  cisco.dcnm.dcnm_interface: &vpc_merge
    fabric: mmudigon-fabric
    state: merged                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: vpc750                      # should be of the form vpc<port-id>
        type: vpc                         # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:                           # provide switches of vPC pair
          - ["192.172.1.1",
             "192.172.1.2"]
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: trunk                     # choose from [trunk, access]
          peer1_pcid: 100                 # choose between [Min:1, Max:4096], if not given, will be VPC port-id
          peer2_pcid: 100                 # choose between [Min:1, Max:4096], if not given, will be VPC port-id
          peer1_members:                  # member interfaces on peer 1
            - e1/24
          peer2_members:                  # member interfaces on peer 2
            - e1/24
          pc_mode: 'active'               # choose from ['on', 'active', 'passive']
          bpdu_guard: true                # choose from [true, false, 'no']
          port_type_fast: true            # choose from [true, false]
          mtu: jumbo                      # choose from [default, jumbo]
          peer1_allowed_vlans: none       # choose from [none, all, vlan range]
          peer2_allowed_vlans: none       # choose from [none, all, vlan range]
          peer1_description: "VPC acting as trunk peer1"
          peer2_description: "VPC acting as trunk peer2"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

- name: Replace vPC interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: replaced                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: vpc750                      # should be of the form vpc<port-id>
        type: vpc                         # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:                           # provide switches of vPC pair
          - ["192.172.1.1",
             "192.172.1.2"]
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: false              ## choose from [true, false]
          mode: trunk                     # choose from [trunk, access]
          peer1_pcid: 100                 # choose between [Min:1, Max:4096], if not given, will be VPC port-id
          peer2_pcid: 100                 # choose between [Min:1, Max:4096], if not given, will be VPC port-id
          peer1_members:                  ## member interfaces on peer 1
            - e1/26
          peer2_members:                  ## member interfaces on peer 2
            - e1/26
          pc_mode: 'active'               ## choose from ['on', 'active', 'passive']
          bpdu_guard: false               ## choose from [true, false, 'no']
          port_type_fast: false           ## choose from [true, false]
          mtu: default                    ## choose from [default, jumbo]
          peer1_allowed_vlans: all        ## choose from [none, all, vlan range]
          peer2_allowed_vlans: all        ## choose from [none, all, vlan range]
          peer1_description: "VPC acting as trunk peer1 - modified"
          peer2_description: "VPC acting as trunk peer2 - modified"
          peer1_cmds:                     # Freeform config
              - no shutdown
          peer2_cmds:                     # Freeform config
              - no shutdown
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# To delete or reset a particular interface on a specific switch in the fabric
- name: Delete vPC interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: deleted                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: vpc750                      # should be of the form vpc<port-id>
        switch:                           # provide switches of vPC pair
          - ["192.172.1.1",
             "192.172.1.2"]
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Override vPC interfaces
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: overridden                         # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - name: vpc752                      # should be of the form vpc<port-id>
        type: vpc                         # choose from this list [pc, vpc, sub_int, lo, eth]
        switch:                           # provide switches of vPC pair
          - ["192.172.1.1",
             "192.172.1.2"]
        deploy: true                      # choose from [true, false]
        profile:
          admin_state: true               # choose from [true, false]
          mode: trunk                     # choose from [trunk, access]
          peer1_pcid: 752                 # choose between [Min:1, Max:4096], if not given, will be VPC port-id
          #peer2_pcid: 1                  # choose between [Min:1, Max:4096], if not given, will be VPC port-id
          peer1_members:                  # member interfaces on peer 1
            - e1/26
          peer2_members:                  # member interfaces on peer 2
            - e1/27
          pc_mode: 'on'                   # choose from ['on', 'active', 'passive']
          bpdu_guard: true                # choose from [true, false, no]
          port_type_fast: true            # choose from [true, false]
          mtu: jumbo                      # choose from [default, jumbo]
          peer1_allowed_vlans: none       # choose from [none, all, vlan range]
          peer2_allowed_vlans: none       # choose from [none, all, vlan range]
          peer1_description: "VPC acting as trunk peer1"
          peer2_description: "VPC acting as trunk peer2"
          peer1_cmds:                     # Freeform config
              - no shutdown
              - no shutdown
          peer2_cmds:                     # Freeform config
              - no shutdown
              - no shutdown
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# QUERY

- name: Query interface details
  cisco.dcnm.dcnm_interface:
    fabric: mmudigon-fabric
    state: query            # only choose from [merged, replaced, deleted, overridden, query]
    config:
      - switch:
          - "192.172.1.1"   # provide the switch information where the config is to be deployed
      - name: po350
        switch:
          - "192.172.1.1"   # provide the switch information where the config is to be deployed
      - name: lo450
        switch:
          - "192.172.1.1"   # provide the switch information where the config is to be deployed
      - name: eth1/1
        switch:
          - "192.172.1.1"   # provide the switch information where the config is to be deployed
      - name: eth1/15.2
        switch:
          - "192.172.1.1"   # provide the switch information where the config is to be deployed
      - name: vpc750
        switch:
          - "192.172.1.1"   # provide the switch information where the config is to be deployed

Inputs

    
state:
    choices:
    - merged
    - replaced
    - overridden
    - deleted
    - query
    default: merged
    description:
    - The required state of the configuration after module completion.
    type: str

config:
    description:
    - A dictionary of interface operations
    elements: dict
    suboptions:
      deploy:
        default: true
        description:
        - Flag indicating if the configuration must be pushed to the switch. If not included
          it is considered true by default
        type: bool
      name:
        description:
        - Name of the interface. Example, po55, eth2/1, lo100, vpc25, eth1/1.1.
        required: true
        type: str
      profile_eth:
        description:
        - Though the key shown here is 'profile_eth' the actual key to be used in playbook
          is 'profile'. The key 'profile_eth' is used here to logically segregate the
          interface objects applicable for this profile
        - Object profile which must be included for ethernet interface configurations.
        suboptions:
          access_vlan:
            default: ''
            description:
            - Vlan for the interface. This option is applicable only for interfaces whose
              'mode' is 'access'
            type: str
          admin_state:
            default: true
            description:
            - Administrative state of the interface
            type: bool
          allowed_vlans:
            choices:
            - none
            - all
            - vlan-range(e.g., 1-2, 3-40)
            default: none
            description:
            - Vlans that are allowed on this interface. This option is applicable only
              for interfaces whose 'mode' is 'trunk'
            type: str
          bpdu_guard:
            choices:
            - 'true'
            - 'false'
            - 'no'
            default: true
            description:
            - Spanning-tree bpduguard
            type: str
          cmds:
            default: []
            description:
            - Commands to be included in the configuration under this interface
            type: list
          description:
            default: ''
            description:
            - Description of the interface
            type: str
          int_vrf:
            default: default
            description:
            - Interface VRF name. This object is applicable only if the 'mode' is 'routed'
            type: str
          ipv4_addr:
            default: ''
            description:
            - IPV4 address of the interface. This object is applicable only if the 'mode'
              is 'routed' or 'epl_routed'
            type: str
          ipv4_mask_len:
            choices:
            - Min 1
            - Max 31
            default: 8
            description:
            - IPV4 address mask length. This object is applicable only if the 'mode' is
              'routed' or 'epl_routed'
            type: int
          ipv6_addr:
            default: ''
            description:
            - IPV6 address of the interface. This object is applicable only if the 'mode'
              is 'epl_routed'
            type: str
          ipv6_mask_len:
            choices:
            - Min 1
            - Max 31
            default: 8
            description:
            - IPV6 address mask length. This object is applicable only if the 'mode' is
              'epl_routed'
            type: int
          mode:
            choices:
            - trunk
            - access
            - routed
            - monitor
            - epl_routed
            description:
            - Interface mode
            required: true
            type: str
          mtu:
            description:
            - Interface MTU.
            - Can be specified either "default" or "jumbo" for access and trunk interface
              types. If not specified, it defaults to "jumbo"
            - Can be specified with any value within 576 and 9216 for routed interface
              types. If not specified, it defaults to 9216
            type: str
          port_type_fast:
            choices:
            - true
            - false
            default: true
            description:
            - Spanning-tree edge port behavior
            type: bool
          route_tag:
            default: ''
            description:
            - Route tag associated with the interface IP. This object is applicable only
              if the 'mode' is 'routed' or 'epl_routed'
            type: str
          speed:
            choices:
            - Auto
            - 100Mb
            - 1Gb
            - 10Gb
            - 25Gb
            - 40Gb
            - 100Gb
            default: Auto
            description:
            - Speed of the interface.
            type: str
      profile_lo:
        description:
        - Though the key shown here is 'profile_lo' the actual key to be used in playbook
          is 'profile'. The key 'profile_lo' is used here to logically segregate the interface
          objects applicable for this profile
        - Object profile which must be included for loopback interface configurations.
        suboptions:
          admin_state:
            default: true
            description:
            - Administrative state of the interface
            type: bool
          cmds:
            default: []
            description:
            - Commands to be included in the configuration under this interface
            type: list
          description:
            default: ''
            description:
            - Description of the interface
            type: str
          int_vrf:
            default: default
            description:
            - Interface VRF name.
            type: str
          ipv4_addr:
            default: ''
            description:
            - IPV4 address of the interface.
            type: str
          ipv6_addr:
            default: ''
            description:
            - IPV6 address of the interface.
            type: str
          mode:
            choices:
            - lo
            description:
            - Interface mode
            required: true
            type: str
          route_tag:
            default: ''
            description:
            - Route tag associated with the interface IP.
            type: str
      profile_pc:
        description:
        - Though the key shown here is 'profile_pc' the actual key to be used in playbook
          is 'profile'. The key 'profile_pc' is used here to logically segregate the interface
          objects applicable for this profile
        - Object profile which must be included for port channel interface configurations.
        suboptions:
          access_vlan:
            default: ''
            description:
            - Vlan for the interface. This option is applicable only for interfaces whose
              'mode' is 'access'
            type: str
          admin_state:
            default: true
            description:
            - Administrative state of the interface
            type: bool
          cmds:
            default: []
            description:
            - Commands to be included in the configuration under this interface
            type: list
          description:
            default: ''
            description:
            - Description of the interface
            type: str
          int_vrf:
            default: default
            description:
            - Interface VRF name. This object is applicable only if the 'mode' is 'l3'
            type: str
          ipv4_addr:
            default: ''
            description:
            - IPV4 address of the interface. This object is applicable only if the 'mode'
              is 'l3'
            type: str
          ipv4_mask_len:
            choices:
            - Min 1
            - Max 31
            default: 8
            description:
            - IPV4 address mask length. This object is applicable only if the 'mode' is
              'l3'
            type: int
          members:
            description:
            - Member interfaces that are part of this port channel
            elements: str
            required: true
            type: list
          mode:
            choices:
            - trunk
            - access
            - l3
            - monitor
            description:
            - Interface mode
            required: true
            type: str
          route_tag:
            default: ''
            description:
            - Route tag associated with the interface IP. This object is applicable only
              if the 'mode' is 'l3'
            type: str
      profile_subint:
        description:
        - Though the key shown here is 'profile_subint' the actual key to be used in playbook
          is 'profile'. The key 'profile_subint' is used here to logically segregate the
          interface objects applicable for this profile
        - Object profile which must be included for sub-interface configurations.
        suboptions:
          admin_state:
            default: true
            description:
            - Administrative state of the interface
            type: bool
          cmds:
            default: []
            description:
            - Commands to be included in the configuration under this interface
            type: list
          description:
            default: ''
            description:
            - Description of the interface
            type: str
          int_vrf:
            default: default
            description:
            - Interface VRF name.
            type: str
          ipv4_addr:
            default: ''
            description:
            - IPV4 address of the interface.
            type: str
          ipv4_mask_len:
            choices:
            - Min 8
            - Max 31
            default: 8
            description:
            - IPV4 address mask length.
            type: int
          ipv6_addr:
            default: ''
            description:
            - IPV6 address of the interface.
            type: str
          ipv6_mask_len:
            choices:
            - Min 1
            - Max 31
            default: 8
            description:
            - IPV6 address mask length.
            type: int
          mode:
            choices:
            - subint
            description:
            - Interface mode
            required: true
            type: str
          mtu:
            choices:
            - Min 576
            - Max 9216
            default: 9216
            description:
            - Interface MTU
            type: int
          vlan:
            choices:
            - Min 2
            - Max 3967
            default: 0
            description:
            - DOT1Q vlan id for this interface
            type: int
      profile_vpc:
        description:
        - Though the key shown here is 'profile_vpc' the actual key to be used in playbook
          is 'profile'. The key 'profile_vpc' is used here to logically segregate the
          interface objects applicable for this profile
        - Object profile which must be included for virtual port channel inetrface configurations.
        suboptions:
          admin_state:
            default: true
            description:
            - Administrative state of the interface
            type: bool
          bpdu_guard:
            choices:
            - 'true'
            - 'false'
            - 'no'
            default: true
            description:
            - Spanning-tree bpduguard
            type: str
          mode:
            choices:
            - trunk
            - access
            description:
            - Interface mode
            required: true
            type: str
          mtu:
            choices:
            - default
            - jumbo
            default: jumbo
            description:
            - Interface MTU
            type: str
          pc_mode:
            choices:
            - active
            - passive
            - 'on'
            default: active
            description:
            - Port channel mode
            type: str
          peer1_access_vlan:
            default: ''
            description:
            - Vlan for the interface of first peer. This option is applicable only for
              interfaces whose 'mode' is 'access'
            type: str
          peer1_allowed_vlans:
            choices:
            - none
            - all
            - vlan-range(e.g., 1-2, 3-40)
            default: none
            description:
            - Vlans that are allowed on this interface of first peer. This option is applicable
              only for interfaces whose 'mode' is 'trunk'
            type: str
          peer1_cmds:
            default: []
            description:
            - Commands to be included in the configuration under this interface of first
              peer
            type: list
          peer1_description:
            default: ''
            description:
            - Description of the interface of first peer
            type: str
          peer1_members:
            description:
            - Member interfaces that are part of this port channel on first peer
            elements: str
            required: true
            type: list
          peer1_pcid:
            choices:
            - Min 1
            - Max 4096
            default: Default value is the vPC port identifier
            description:
            - Port channel identifier of first peer. If this object is not included, then
              the value defaults to the vPC identifier. This value cannot be changed once
              vPC is created
            type: int
          peer2_access_vlan:
            default: ''
            description:
            - Vlan for the interface of second peer. This option is applicable only for
              interfaces whose 'mode' is 'access'
            type: str
          peer2_allowed_vlans:
            choices:
            - none
            - all
            - vlan-range(e.g., 1-2, 3-40)
            default: none
            description:
            - Vlans that are allowed on this interface of second peer. This option is
              applicable only for interfaces whose 'mode' is 'trunk'
            type: str
          peer2_cmds:
            default: []
            description:
            - Commands to be included in the configuration under this interface of second
              peer
            type: list
          peer2_description:
            default: ''
            description:
            - Description of the interface of second peer
            type: str
          peer2_members:
            description:
            - Member interfaces that are part of this port channel on second peer
            elements: str
            required: true
            type: list
          peer2_pcid:
            choices:
            - Min 1
            - Max 4096
            default: Default value is the vPC port identifier
            description:
            - Port channel identifier of second peer. If this object is not included,
              then the value defaults to the vPC identifier. This value cannot be changed
              once vPC is created
            type: int
          port_type_fast:
            choices:
            - true
            - false
            default: true
            description:
            - Spanning-tree edge port behavior
            type: bool
      switch:
        description:
        - IP address or DNS name of the management interface. All switches mentioned in
          this list will be deployed with the included configuration. For vPC interfaces
          this list object will contain elements each of which is a list of pair of switches
        required: true
        type: list
      type:
        choices:
        - pc
        - vpc
        - sub_int
        - lo
        - eth
        description:
        - Interface type. Example, pc, vpc, sub_int, lo, eth
        required: true
        type: str
    type: list

fabric:
    description:
    - Name of the target fabric for interface operations
    required: true
    type: str

check_deploy:
    default: false
    description:
    - Deploy operations may take considerable time in certain cases based on the configuration
      included in the playbook. A success response from DCNM server does not guarantee
      the completion of deploy operation. This flag if set indicates that the module should
      verify if the configured state is in sync with what is requested in playbook. If
      not set the module will return without verifying the state.
    required: false
    type: bool