junipernetworks.junos.junos_snmp_server (8.0.0) — module

Manage SNMP server configuration on Junos devices.

| "added in version" 2.9.0 of junipernetworks.junos"

Authors: Rohit Thakur (@rohitthakur2590)

preview | supported by network

Install collection

Install with ansible-galaxy collection install junipernetworks.junos:==8.0.0


Add to requirements.yml

  collections:
    - name: junipernetworks.junos
      version: 8.0.0

Description

This module manages SNMP server configuration on devices running Junos.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Using merged
#
# Before state
# ------------
#
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
- name: Merge provided SNMP configuration into running configuration.
  junipernetworks.junos.junos_snmp_server:
    config:
      arp:
        set: true
        host_name_resolution: true
      client_lists:   # ATTR-----2
        - name: cl1
          addresses:
            - address: "192.16.1.0/24"
            - address: "192.16.2.0/24"
            - address: "11.11.11.11"
              restrict: true
        - name: cl2
          addresses:
            - address: "192.16.4.0/24"
      routing_instance_access:  # ATTR-----3
        set: true
        access_lists:
          - "clv1"
          - "clv2"
    state: merged
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {
#         "arp": {
#             "host_name_resolution": true
#         },
#         "client_lists": [
#             {
#                 "addresses": [
#                     {
#                         "address": "192.16.1.0/24"
#                     },
#                     {
#                         "address": "192.16.2.0/24"
#                     },
#                     {
#                         "address": "11.11.11.11/32",
#                         "restrict": true
#                     }
#                 ],
#                 "name": "cl1"
#             },
#             {
#                 "addresses": [
#                     {
#                         "address": "192.16.4.0/24"
#                     }
#                 ],
#                 "name": "cl2"
#             }
#         ],
#         "routing_instance_access": {
#             "access_lists": [
#                 "clv1",
#                 "clv2"
#             ]
#         }
#     },
#     "before": {},
#     "changed": true,
#     "commands": [
#           "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">"
#           "<nc:arp><nc:host-name-resolution/></nc:arp><nc:client-list><nc:name>cl1</nc:name>"
#           "<nc:client-address-list><nc:name>192.16.1.0/24</nc:name></nc:client-address-list>"
#           "<nc:client-address-list><nc:name>192.16.2.0/24</nc:name></nc:client-address-list><nc:client-address-list>"
#           "<nc:name>11.11.11.11</nc:name><nc:restrict/></nc:client-address-list></nc:client-list><nc:client-list>"
#           "<nc:name>cl2</nc:name><nc:client-address-list><nc:name>192.16.4.0/24</nc:name></nc:client-address-list>"
#           "</nc:client-list><nc:routing-instance-access><nc:access-list><nc:name>clv1</nc:name></nc:access-list>"
#           "<nc:access-list><nc:name>clv2</nc:name></nc:access-list></nc:routing-instance-access></nc:snmp>"
#     ]
# After state
# -----------
#
# vagrant@vsrx# show snmp
# client-list cl1 {
#     192.16.1.0/24;
#     192.16.2.0/24;
#     11.11.11.11/32 {
#         restrict;
#     }
# }
# client-list cl2 {
#     192.16.4.0/24;
# }
# routing-instance-access {
#     access-list {
#         clv1;
#         clv2;
#     }
# }
# arp {
#     host-name-resolution;
# }
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
#
# Using Replaced
# Before state
# ------------
#
# vagrant@vsrx# show snmp
# client-list cl1 {
#     192.16.1.0/24;
#     192.16.2.0/24;
#     11.11.11.11/32 {
#         restrict;
#     }
# }
# client-list cl2 {
#     192.16.4.0/24;
# }
# routing-instance-access {
#     access-list {
#         clv1;
#         clv2;
#     }
# }
# arp {
#     host-name-resolution;
# }
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }

- name: Replaced running SNMP server configuration with provided configuration
  junipernetworks.junos.junos_snmp_server:
    config:
      contact: "ansiblesupport11@redhat.com"
      customization:
        ether_stats_ifd_only: true
      description: "Local SNMP Server"
      engine_id:
        local: "local1"
        use_default_ip_address: true
        use_mac_address: true
      filter_duplicates: true
      filter_interfaces:
        set: true
        all_internal_interfaces: true
        interfaces:
          - "eth1"
          - "eth2"
    state: replaced
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {
#         "contact": "ansiblesupport11@redhat.com",
#         "customization": {
#             "ether_stats_ifd_only": true
#         },
#         "description": "Local SNMP Server",
#         "engine_id": {
#             "use_mac_address": true
#         },
#         "filter_duplicates": true,
#         "filter_interfaces": {
#             "all_internal_interfaces": true,
#             "interfaces": [
#                 "eth1",
#                 "eth2"
#             ]
#         }
#     },
#     "before":
#      {
#         "arp": {
#             "host_name_resolution": true
#         },
#         "client_lists": [
#             {
#                 "addresses": [
#                     {
#                         "address": "192.16.1.0/24"
#                     },
#                     {
#                         "address": "192.16.2.0/24"
#                     },
#                     {
#                         "address": "11.11.11.11/32",
#                         "restrict": true
#                     }
#                 ],
#                 "name": "cl1"
#             },
#             {
#                 "addresses": [
#                     {
#                         "address": "192.16.4.0/24"
#                     }
#                 ],
#                 "name": "cl2"
#             }
#         ],
#         "routing_instance_access": {
#             "access_lists": [
#                 "clv1",
#                 "clv2"
#             ]
#         }
#     },
#     "changed": true,
#     "commands": [
#         "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>",
#         "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" delete="delete"/>",
#         "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">"
#         "<nc:contact>ansiblesupport11@redhat.com</nc:contact><nc:customization>"
#         "<nc:ether-stats-ifd-only/></nc:customization><nc:description>Local SNMP Server</nc:description>"
#         "<nc:engine-id><nc:local>local1</nc:local><nc:use-default-ip-address/><nc:use-mac-address/>"
#         "</nc:engine-id><nc:filter-duplicates/><nc:filter-interfaces><nc:all-internal-interfaces/><nc:interfaces>"
#         "<nc:name>eth1</nc:name></nc:interfaces><nc:interfaces><nc:name>eth2</nc:name></nc:interfaces>"
#         "</nc:filter-interfaces></nc:snmp>"
#     ]
# After state
# -----------
#
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
# vagrant@vsrx# show snmp
# description "Local SNMP Server";
# contact "ansiblesupport11@redhat.com";
# filter-interfaces {
#     interfaces {
#         eth1;
#         eth2;
#     }
#     all-internal-interfaces;
# }
# filter-duplicates;
# engine-id {
#     use-mac-address;
# }
# customization {
#     ether-stats-ifd-only;
# }

# Using overridden
#
# Before state
# ------------
#
# vagrant@vsrx# show snmp
# client-list cl1 {
#     192.16.1.0/24;
#     192.16.2.0/24;
#     11.11.11.11/32 {
#         restrict;
#     }
# }
# client-list cl2 {
#     192.16.4.0/24;
# }
# routing-instance-access {
#     access-list {
#         clv1;
#         clv2;
#     }
# }
# arp {
#     host-name-resolution;
# }
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
- name: Override running SNMP server configuration with provided configuration
  junipernetworks.junos.junos_snmp_server:
    config:
      contact: "ansiblesupport11@redhat.com"
      customization:
        ether_stats_ifd_only: true
      description: "Local SNMP Server"
      engine_id:
        local: "local1"
        use_default_ip_address: true
        use_mac_address: true
      filter_duplicates: true
      filter_interfaces:
        set: true
        all_internal_interfaces: true
        interfaces:
          - "eth1"
          - "eth2"
    state: overridden
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {
#         "contact": "ansiblesupport11@redhat.com",
#         "customization": {
#             "ether_stats_ifd_only": true
#         },
#         "description": "Local SNMP Server",
#         "engine_id": {
#             "use_mac_address": true
#         },
#         "filter_duplicates": true,
#         "filter_interfaces": {
#             "all_internal_interfaces": true,
#             "interfaces": [
#                 "eth1",
#                 "eth2"
#             ]
#         }
#     },
#     "before":
#      {
#         "arp": {
#             "host_name_resolution": true
#         },
#         "client_lists": [
#             {
#                 "addresses": [
#                     {
#                         "address": "192.16.1.0/24"
#                     },
#                     {
#                         "address": "192.16.2.0/24"
#                     },
#                     {
#                         "address": "11.11.11.11/32",
#                         "restrict": true
#                     }
#                 ],
#                 "name": "cl1"
#             },
#             {
#                 "addresses": [
#                     {
#                         "address": "192.16.4.0/24"
#                     }
#                 ],
#                 "name": "cl2"
#             }
#         ],
#         "routing_instance_access": {
#             "access_lists": [
#                 "clv1",
#                 "clv2"
#             ]
#         }
#     },
#     "changed": true,
#     "commands": [
#         "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>",
#         "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" delete="delete"/>",
#         "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">"
#         "<nc:contact>ansiblesupport11@redhat.com</nc:contact><nc:customization>"
#         "<nc:ether-stats-ifd-only/></nc:customization><nc:description>Local SNMP Server</nc:description>"
#         "<nc:engine-id><nc:local>local1</nc:local><nc:use-default-ip-address/><nc:use-mac-address/>"
#         "</nc:engine-id><nc:filter-duplicates/><nc:filter-interfaces><nc:all-internal-interfaces/><nc:interfaces>"
#         "<nc:name>eth1</nc:name></nc:interfaces><nc:interfaces><nc:name>eth2</nc:name></nc:interfaces>"
#         "</nc:filter-interfaces></nc:snmp>"
#     ]
# After state
# -----------
#
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
# vagrant@vsrx# show snmp
# description "Local SNMP Server";
# contact "ansiblesupport11@redhat.com";
# filter-interfaces {
#     interfaces {
#         eth1;
#         eth2;
#     }
#     all-internal-interfaces;
# }
# filter-duplicates;
# engine-id {
#     use-mac-address;
# }
# customization {
#     ether-stats-ifd-only;
# }
#
# Using deleted
#
# Before state
# ------------
#
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
# vagrant@vsrx# show snmp
# description "Local SNMP Server";
# contact "ansiblesupport11@redhat.com";
# filter-interfaces {
#     interfaces {
#         eth1;
#         eth2;
#     }
#     all-internal-interfaces;
# }
# filter-duplicates;
# engine-id {
#     use-mac-address;
# }
# customization {
#     ether-stats-ifd-only;
# }
#
- name: Delete running SNMP server configuration
  junipernetworks.junos.junos_snmp_server:
    config:
    state: deleted
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
#
# -------------------------
# Module Execution Result
# -------------------------
#     "after": {},
#     "before": {
#         "contact": "ansiblesupport11@redhat.com",
#         "customization": {
#             "ether_stats_ifd_only": true
#         },
#         "description": "Local SNMP Server",
#         "engine_id": {
#             "use_mac_address": true
#         },
#         "filter_duplicates": true,
#         "filter_interfaces": {
#             "all_internal_interfaces": true,
#             "interfaces": [
#                 "eth1",
#                 "eth2"
#             ]
#         }
#     },
#     "changed": true,
#     "commands": [
#               "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"/>",
#               "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" delete="delete"/>"
#     ]
# After state
# -----------
#
# vagrant@vsrx# show routing-instances
# clv1 {
#     description clv1;
# }
# clv2 {
#     description clv2;
# }
# vagrant@vsrx# show snmp
# description "Local SNMP Server";
# contact "ansiblesupport11@redhat.com";
# filter-interfaces {
#     interfaces {
#         eth1;
#         eth2;
#     }
#     all-internal-interfaces;
# }
# filter-duplicates;
# engine-id {
#     use-mac-address;
# }
# customization {
#     ether-stats-ifd-only;
# }
#
- name: Gather running SNMP server configuration
  junipernetworks.junos.junos_snmp_server:
    state: gathered
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
#
# -------------------------
# Module Execution Result
# -------------------------
#     "gathered": {
#         "contact": "ansiblesupport11@redhat.com",
#         "customization": {
#             "ether_stats_ifd_only": true
#         },
#         "description": "Local SNMP Server",
#         "engine_id": {
#             "use_mac_address": true
#         },
#         "filter_duplicates": true,
#         "filter_interfaces": {
#             "all_internal_interfaces": true,
#             "interfaces": [
#                 "eth1",
#                 "eth2"
#             ]
#         }
#     },
#     "changed": false,
# Using rendered
#
# Before state
# ------------
#
- name: Render xml for provided facts.
  junipernetworks.junos.junos_snmp_server:
    config:
      arp:
        set: true
        host_name_resolution: true
      routing_instance_access:  # ATTR-----3
        set: true
        access_lists:
          - "clv1"
          - "clv2"
    state: rendered
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
#
# -------------------------
# Module Execution Result
# -------------------------
#     "rendered": [
#           "<nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">"
#           "<nc:arp><nc:host-name-resolution/></nc:arp><nc:routing-instance-access>"
#           "<nc:access-list><nc:name>clv1</nc:name></nc:access-list><nc:access-list><nc:name>clv2</nc:name>"
#           "</nc:access-list></nc:routing-instance-access></nc:snmp>"
#     ]
#
# Using parsed
# parsed.cfg
# ------------
# <?xml version="1.0" encoding="UTF-8"?>
# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f">
#     <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC">
#         <version>18.4R1-S2.4</version>
#         <system xmlns="http://yang.juniper.net/junos-es/conf/system">
#            <snmp>
#         <client-list>
#             <name>cl1</name>
#             <client-address-list>
#                 <name>192.16.1.0/24</name>
#             </client-address-list>
#             <client-address-list>
#                 <name>192.16.2.0/24</name>
#             </client-address-list>
#             <client-address-list>
#                 <name>11.11.11.11/32</name>
#                 <restrict/>
#             </client-address-list>
#         </client-list>
#         <client-list>
#             <name>cl2</name>
#             <client-address-list>
#                 <name>192.16.4.0/24</name>
#             </client-address-list>
#         </client-list>
#         <routing-instance-access>
#             <access-list>
#                 <name>clv1</name>
#             </access-list>
#             <access-list>
#                 <name>clv2</name>
#             </access-list>
#         </routing-instance-access>
#         <arp>
#             <host-name-resolution/>
#         </arp>
#     </snmp>
#     </system>
#     </configuration>
# </rpc-reply>
#
- name: Parse SNMP server running config
  junipernetworks.junos.junos_snmp_server:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed

Inputs

    
state:
    choices:
    - merged
    - replaced
    - deleted
    - overridden
    - parsed
    - gathered
    - rendered
    default: merged
    description:
    - The state the configuration should be left in.
    - Refer to examples for more details.
    type: str

config:
    description: A dictionary of SNMP server configuration.
    suboptions:
      arp:
        description: Specify JVision arp setting.
        suboptions:
          host_name_resolution:
            description: Enable host name resolution.
            type: bool
          set:
            description: Set JVision arp.
            type: bool
        type: dict
      client_lists:
        description: Specify client list.
        elements: dict
        suboptions:
          addresses:
            description: Specify list of addresses/prefixes.
            elements: dict
            suboptions:
              address:
                description: Specify address or prefix.
                type: str
              restrict:
                description: Deny access.
                type: bool
            type: list
          name:
            description: Specify client list name.
            type: str
        type: list
      communities:
        description: Specify list of community string.
        elements: dict
        suboptions:
          authorization:
            choices:
            - read-only
            - read-write
            description: Specify Authorization type.
            type: str
          client_list_name:
            description: Specify the name of client list or prefix list.
            type: str
          clients:
            description: Specify List of source address prefix ranges to accept.
            elements: dict
            suboptions:
              address:
                description: Specify address or prefix.
                type: str
              restrict:
                description: Deny access.
                type: bool
            type: list
          logical_system:
            description: Use logical-system name for v1/v2c clients.
            elements: str
            type: list
          name:
            description: Specify name of the community.
            type: str
          routing_instances:
            description: Use routing-instance name for v1/v2c clients.
            elements: dict
            suboptions:
              client_list_name:
                description: Specify the name of client list or prefix list.
                type: str
              clients:
                description: Specify List of source address prefix ranges to accept.
                elements: dict
                suboptions:
                  address:
                    description: Specify address or prefix.
                    type: str
                  restrict:
                    description: Deny access.
                    type: bool
                type: list
              name:
                description: Specify routing-instances.
                type: str
            type: list
          view:
            description: Specify view name.
            type: str
        type: list
      contact:
        description: Specify contact information for administrator.
        type: str
      customization:
        description: Customize SNMP behaviour based on knob.
        suboptions:
          ether_stats_ifd_only:
            description: To stop exposing IFLs as part of etherStatsTable.
            type: bool
        type: dict
      description:
        description: System description.
        type: str
      engine_id:
        description: Specify SNMPv3 engine ID
        suboptions:
          local:
            description: Local engine ID.
            type: str
          use_default_ip_address:
            description: Use default IP address for the engine ID.
            type: bool
          use_mac_address:
            description: Uses management interface MAC Address for the engine ID.
            type: bool
        type: dict
      filter_duplicates:
        description: Filter requests with duplicate source address/port and request ID.
        type: bool
      filter_interfaces:
        description: List of interfaces that needs to be filtered.
        suboptions:
          all_internal_interfaces:
            description: Filter all internal interfaces.
            type: bool
          interfaces:
            description: Specify filter specified interfaces.
            elements: str
            type: list
          set:
            description: Set filter-interfaces.
            type: bool
        type: dict
      health_monitor:
        description: Specify health monitoring configuration.
        suboptions:
          falling_threshold:
            description: Falling threshold applied to all monitored objects.
            type: int
          idp:
            description: IDP health monitor configuration.
            type: bool
          interval:
            description: Interval between samples.
            type: int
          rising_threshold:
            description: Rising threshold applied to all monitored objects.
            type: int
          set:
            description: Set health-monitor configuration.
            type: bool
        type: dict
      if_count_with_filter_interfaces:
        description: Filter interfaces config for ifNumber and ipv6Interfaces.
        type: bool
      interfaces:
        description: Restrict SNMP requests to interfaces.
        elements: str
        type: list
      location:
        description: Specify physical location of system.
        type: str
      logical_system_trap_filter:
        description: Allow only logical-system specific traps.
        type: bool
      name:
        description: System name override.
        type: str
      nonvolatile:
        description: Configure the handling of nonvolatile SNMP Set requests.
        suboptions:
          commit_delay:
            description: Delay between affirmative SNMP Set reply and start of commit
              (seconds).
            type: int
        type: dict
      proxies:
        description: SNMP proxy configuration.
        elements: dict
        suboptions:
          device_name:
            description: Satellite/Proxied Device name or IP address.
            type: str
          logical_system:
            description: Use logical-system name for v1/v2c clients.
            elements: str
            type: list
          name:
            description: Specify proxy name.
            type: str
          routing_instances:
            description: Use routing-instance name for v1/v2c clients.
            elements: dict
            suboptions:
              client_list_name:
                description: Specify the name of client list or prefix list.
                type: str
              clients:
                description: Specify List of source address prefix ranges to accept.
                elements: dict
                suboptions:
                  address:
                    description: Specify address or prefix.
                    type: str
                  restrict:
                    description: Deny access.
                    type: bool
                type: list
              name:
                description: Specify routing-instances.
                type: str
            type: list
          version_v1:
            description: Specify For v1 proxy configuration define snmp-community.
            suboptions:
              no_default_comm_to_v3_config:
                description: Specify No default snmp-community and v3 configuration.
                type: bool
              snmp_community:
                description: Specify community name.
                type: str
            type: dict
          version_v2c:
            description: For v2c proxy configuration define snmp-community.
            suboptions:
              no_default_comm_to_v3_config:
                description: Specify No default snmp-community and v3 configuration.
                type: bool
              snmp_community:
                description: Specify community name.
                type: str
            type: dict
          version_v3:
            description: For v3 proxy configuration define security-name.
            suboptions:
              context:
                description: pecify context name associated to this security-name.
                type: bool
              security_name:
                description: Specify v3 security-name.
                type: str
            type: dict
        type: list
      rmon:
        description: Specify Remote Monitoring configuration.
        suboptions:
          alarms:
            description: RMON alarm entries.
            elements: dict
            suboptions:
              description:
                description: General description of alarm (stored in alarmOwner).
                type: str
              falling_event_index:
                description: Event triggered after falling threshold is crossed.
                type: int
              falling_threshold:
                description: Specify falling-threshold.
                type: int
              falling_threshold_interval:
                description: Interval between samples during falling-threshold test.
                type: int
              id:
                description: Specify alarm ID.
                type: str
              interval:
                description: Interval between samples.
                type: int
              request_type:
                choices:
                - get-next-request
                - get-request
                - walk-request
                description: Type of SNMP request to issue for alarm.
                type: str
              rising_event_index:
                description: Event triggered after rising threshold is crossed.
                type: int
              rising_threshold:
                description: The rising threshold.
                type: int
              sample_type:
                choices:
                - absolute-value
                - delta-value
                description: Method of sampling the selected variable.
                type: str
              startup_alarm:
                choices:
                - falling-alarm
                - rising-alarm
                - rising-or-falling-alarm
                description: The alarm that may be sent upon entry startup.
                type: str
              syslog_subtag:
                description: Tag to be added to syslog messages.
                type: str
              variable:
                description: OID of MIB variable to be monitored.
                type: str
            type: list
          events:
            description: RMON event entries.
            elements: dict
            suboptions:
              community:
                description: The community (trap group) for outgoing traps.
                type: str
              description:
                description: General description of event.
                type: str
              id:
                description: Specify event ID.
                type: int
              type:
                choices:
                - log
                - log-and-trap
                - none
                - snmptrap
                description: The type of notification for this event.
                type: str
            type: list
          set:
            description: Set Remote monitoring configuration.
            type: bool
        type: dict
      routing_instance_access:
        description: SNMP routing-instance options.
        suboptions:
          access_lists:
            description: Allow/Deny SNMP access to routing-instances.
            elements: str
            type: list
          set:
            description: Set routing_instance_access.
            type: bool
        type: dict
      snmp_v3:
        description: SNMPv3 configuration information.
        suboptions:
          notify:
            description: Used to select management targets for notifications as well as
              the type of notifications.
            elements: dict
            suboptions:
              name:
                description: Specify notify name.
                type: str
              tag:
                description: Notifications will be sent to all targets configured with
                  this tag.
                type: str
              type:
                description: Notification type.
                type: str
            type: list
          notify_filter:
            description: Filters to apply to SNMP notifications.
            elements: dict
            suboptions:
              name:
                description: Specify notify filter name.
                type: str
              oids:
                description: OID to include/exclude from notify filter.
                elements: dict
                suboptions:
                  exclude:
                    description: Exclude this OID from the notify filtered.
                    type: bool
                  include:
                    description: Include this OID in the notify filter.
                    type: bool
                  oid:
                    description: Specify OID.
                    type: str
                type: list
            type: list
          snmp_community:
            description: SNMP community and view-based access control model configuration.
            elements: dict
            suboptions:
              community_index:
                description: Unique index value in this community table entry.
                type: str
              community_name:
                description: SNMPv1/v2c community name (default is same as community-index).
                type: str
              context:
                description: Context used when performing access control.
                type: str
              security_name:
                description: Security name used when performing access control.
                type: str
              tag:
                description: Tag identifier for set of targets allowed to use this community
                  string.
                type: str
            type: list
          target_addresses:
            description: Identifies notification targets as well as allowed management
              stations.
            elements: dict
            suboptions:
              address:
                description: SNMP target address.
                type: str
              address_mask:
                description: Mask range of addresses for community string access control.
                type: str
              logical_system:
                description: Logical-system name for trap destination.
                type: str
              name:
                description: SNMP target address name.
                type: str
              port:
                description: SNMP target port number.
                type: int
              retry_count:
                description: Maximum retry count for confirmed SNMP notifications.
                type: int
              routing_instance:
                description: Routing instance for trap destination.
                type: str
              tag_list:
                description: SNMP tag list used to select target addresses.
                type: str
              target_parameters:
                description: SNMPv3 target parameter name in the target parameters table.
                type: str
              timeout:
                description: Acknowledgment timeout for confirmed SNMP notifications (seconds).
                type: int
            type: list
          target_parameters:
            description: SNMPv3 target parameter name in the target parameters table.
            elements: dict
            suboptions:
              name:
                description: SNMPv3 target parameters name.
                type: str
              notify_filter:
                description: Notify filter with filter name to apply to notifications.
                type: str
              parameters:
                description: Parameters used when sending notifications.
                suboptions:
                  message_processing_model:
                    choices:
                    - v1
                    - v2c
                    - v3
                    description: The message processing model to be used when generating
                      SNMP notifications.
                    type: str
                  security_level:
                    choices:
                    - authentication
                    - none
                    - privacy
                    description: Security-level used when generating SNMP notifications.
                    type: str
                  security_model:
                    choices:
                    - usm
                    - v1
                    - v2c
                    description: Security-model used when generating SNMP notifications.
                    type: str
                  security_name:
                    description: Security name used when generating SNMP notifications.
                    type: str
                type: dict
            type: list
          usm:
            description: User-based security model (USM) information.
            suboptions:
              local_engine:
                description: Local engine user configuration.
                suboptions:
                  users:
                    description: SNMPv3 USM user information.
                    elements: dict
                    suboptions:
                      authentication_md5:
                        description: Configure MD5 authentication.
                        suboptions:
                          key:
                            description: Encrypted key used for user authentication.
                            type: str
                          password:
                            description: User's authentication password
                            type: str
                        type: dict
                      authentication_none:
                        description: Set no authentication for the user.
                        type: bool
                      authentication_sha:
                        description: Configure SHA authentication.
                        suboptions:
                          key:
                            description: Encrypted key used for user authentication.
                            type: str
                          password:
                            description: User's authentication password
                            type: str
                        type: dict
                      name:
                        description: User name.
                        type: str
                      privacy_3des:
                        description: Configure Triple DES privacy.
                        suboptions:
                          key:
                            description: Encrypted key used for user privacy.
                            type: str
                          password:
                            description: User's privacy password
                            type: str
                        type: dict
                      privacy_aes128:
                        description: Configure AES128 privacy.
                        suboptions:
                          key:
                            description: Encrypted key used for user privacy.
                            type: str
                          password:
                            description: User's privacy password
                            type: str
                        type: dict
                      privacy_des:
                        description: Configure DES privacy.
                        suboptions:
                          key:
                            description: Encrypted key used for user privacy.
                            type: str
                          password:
                            description: User's privacy password
                            type: str
                        type: dict
                      privacy_none:
                        description: Set no privacy for the user.
                        type: bool
                    type: list
                type: dict
              remote_engine:
                description: Remote engine user configuration.
                elements: dict
                suboptions:
                  id:
                    description: Remote engine id.
                    type: str
                  users:
                    description: SNMPv3 USM user information.
                    elements: dict
                    suboptions:
                      authentication_md5:
                        description: Configure MD5 authentication.
                        suboptions:
                          key:
                            description: Encrypted key used for user authentication.
                            type: str
                          password:
                            description: User's authentication password
                            type: str
                        type: dict
                      authentication_none:
                        description: Set no authentication for the user.
                        type: bool
                      authentication_sha:
                        description: Configure SHA authentication.
                        suboptions:
                          key:
                            description: Encrypted key used for user authentication.
                            type: str
                          password:
                            description: User's authentication password
                            type: str
                        type: dict
                      name:
                        description: User name.
                        type: str
                      privacy_3des:
                        description: Configure Triple DES privacy.
                        suboptions:
                          key:
                            description: Encrypted key used for user privacy.
                            type: str
                          password:
                            description: User's privacy password
                            type: str
                        type: dict
                      privacy_aes128:
                        description: Configure AES128 privacy.
                        suboptions:
                          key:
                            description: Encrypted key used for user privacy.
                            type: str
                          password:
                            description: User's privacy password
                            type: str
                        type: dict
                      privacy_des:
                        description: Configure DES privacy.
                        suboptions:
                          key:
                            description: Encrypted key used for user privacy.
                            type: str
                          password:
                            description: User's privacy password
                            type: str
                        type: dict
                      privacy_none:
                        description: Set no privacy for the user.
                        type: bool
                    type: list
                type: list
            type: dict
        type: dict
      subagent:
        description: SNMP subagent configuration.
        suboptions:
          tcp:
            description: Allow SNMP subagent tcp connection.
            suboptions:
              routing_instances_default:
                description: Specify routing-instance name for tcp connection.
                type: bool
              set:
                description: Set SNMP subagent TCP.
                type: bool
            type: dict
        type: dict
      traceoptions:
        description: Configure trace options for SNMP.
        suboptions:
          file:
            description: Specify trace file options.
            suboptions:
              files:
                description: Specify maximum number of trace files.
                type: int
              match:
                description: Regular expression for lines to be logged.
                type: str
              no_world_readable:
                description: Don't allow any user to read the log file.
                type: bool
              size:
                description: Specify maximum trace file size.
                type: int
              world_readable:
                description: Allow any user to read the log file.
                type: bool
            type: dict
          flag:
            description: Specify flag traceoptions.
            suboptions:
              all:
                description: Trace everything.
                type: bool
              general:
                description: Trace general events.
                type: bool
              interface_stats:
                description: Trace interface statistics (logical and physical).
                type: bool
              nonvolatile_sets:
                description: Nonvolatile SNMP set request handling.
                type: bool
              pdu:
                description: Dump SNMP request/response packets.
                type: bool
              protocol_timeouts:
                description: Trace SNMP request timeouts.
                type: bool
              routing_socket:
                description: Trace routing socket calls.
                type: bool
              subagent:
                description: Trace master-agent interations with sub-agents.
                type: bool
              timer:
                description: Trace internal timer events.
                type: bool
              varbind_error:
                description: Trace varbind errors.
                type: bool
            type: dict
          memory_trace:
            description: Memory tracing information.
            suboptions:
              set:
                description: set memory traceoptions.
                type: bool
              size:
                description: Specify Memory size reserved for tracing.
                type: int
            type: dict
          no_remote_trace:
            description: Disable remote tracing.
            type: bool
        type: dict
      trap_groups:
        description: Specify SNMP trap options.
        elements: dict
        suboptions:
          categories:
            description: Specify Trap categories.
            suboptions:
              authentication:
                description: Specify Authentication failures.
                type: bool
              chassis:
                description: Specify Chassis or environment notifications.
                type: bool
              chassis_cluster:
                description: Specify Clustering notifications.
                type: bool
              configuration:
                description: Configuration notifications.
                type: bool
              dot3oam_events:
                description: Specify 802.3ah notifications.
                type: bool
              link:
                description: Link up-down transitions.
                type: bool
              otn_alarms:
                description: OTN alarm trap subcategories.
                suboptions:
                  oc_lof:
                    description: Loss of frame alarm notifications.
                    type: bool
                  oc_lom:
                    description: Loss of multiframe alarm notification.
                    type: bool
                  oc_los:
                    description: Loss of signal alarm notification.
                    type: bool
                  odu_ais:
                    description: ODU Alarm indication signal alarm notification.
                    type: bool
                  odu_bbe_threshold:
                    description: ODU Background block error threshold alarm notification.
                    type: bool
                  odu_bdi:
                    description: ODU Backward defect indication alarm notification.
                    type: bool
                  odu_bdodu_es_threshold:
                    description: ODU Errored Second threshold alarm notification.
                    type: bool
                  odu_lck:
                    description: ODU Locked alarm notification.
                    type: bool
                  odu_oci:
                    description: ODU Open connection indicator alarm notifications.
                    type: bool
                  odu_rx_aps_change:
                    description: ODU Receive APS change notifications.
                    type: bool
                  odu_sd:
                    description: ODU Signal degrade alarm notifications.
                    type: bool
                  odu_ses_threshold:
                    description: ODU Severely Errored Second threshold alarm notification.
                    type: bool
                  odu_sf:
                    description: ODU Signal fail alarm notification.
                    type: bool
                  odu_ttim:
                    description: ODU Trace identification mismatch alarm notification.
                    type: bool
                  odu_uas_threshold:
                    description: ODU Unavailable Second threshold alarm notification.
                    type: bool
                  opu_ptm:
                    description: ODU Payload Type Mismatch alarm notification.
                    type: bool
                  otu_ais:
                    description: OTU Alarm indication signal alarm notification.
                    type: bool
                  otu_bbe_threshold:
                    description: OTU Background block error threshold alarm notification.
                    type: bool
                  otu_bdi:
                    description: OTU Backward defect indication alarm notification.
                    type: bool
                  otu_es_threshold:
                    description: OTU Errored Second threshold alarm notification.
                    type: bool
                  otu_fec_deg:
                    description: OTU Fec degraded errors alarm notification.
                    type: bool
                  otu_fec_exe:
                    description: OTU Fec excessive errors alarm notification.
                    type: bool
                  otu_iae:
                    description: OTU Incoming alignment error alarm notification.
                    type: bool
                  otu_sd:
                    description: OTU Signal degrade alarm notification.
                    type: bool
                  otu_ses_threshold:
                    description: OTU Severely Errored Second threshold alarm notification.
                    type: bool
                  otu_sf:
                    description: OTU Signal fail alarm notification.
                    type: bool
                  otu_ttim:
                    description: OTU Trace identification mismatch alarm notification.
                    type: bool
                  otu_uas_threshold:
                    description: OTU Unavailable Second threshold alarm notification.
                    type: bool
                  set:
                    description: Set otn_alarms.
                    type: bool
                  wavelength_lock:
                    description: Wavelength lock alarm notification.
                    type: bool
                type: dict
              remote_operations:
                description: Remote operations.
                type: bool
              rmon_alarm:
                description: RMON rising and falling alarms.
                type: bool
              routing:
                description: Routing protocol notifications.
                type: bool
              services:
                description: Services notifications.
                type: bool
              startup:
                description: System warm and cold starts.
                type: bool
              vrrp_events:
                description: VRRP notifications.
                type: bool
            type: dict
          destination_port:
            description: SNMP trap receiver port number
            type: int
          logical_system:
            description: Use logical-system name for v1/v2c clients.
            elements: str
            type: list
          name:
            description: Specify trap group name.
            type: str
          routing_instance:
            description: Routing instance for trap destination.
            type: str
          targets:
            description: Targets for trap messages
            elements: str
            type: list
          version:
            choices:
            - all
            - v1
            - v2
            description: SNMP version.
            type: str
        type: list
      trap_options:
        description: SNMP trap options.
        suboptions:
          agent_address:
            description: Agent address for v1 trap PDUs.
            suboptions:
              outgoing_interface:
                description: Use address on outgoing interfaces.
                type: bool
            type: dict
          context_oid:
            description: Add context oid in varbind of all traps at the end.
            type: bool
          enterprise_oid:
            description: Add snmpTrapEnterprise oid in varbind of all traps.
            type: bool
          logical_system:
            description: Use logical-system name for v1/v2c clients.
            elements: str
            type: list
          routing_instance:
            description: Specify routing-instance.
            type: str
          set:
            description: Set trap options.
            type: bool
          source_address:
            description: IPv4/IPv6 source address for trap PDUs.
            suboptions:
              address:
                description: Use specified address.
                type: str
              lowest_loopback:
                description: Use lowest address on loopback interfaces.
                type: bool
            type: dict
        type: dict
      views:
        description: Define MIB views.
        elements: dict
        suboptions:
          name:
            description: MIB view name.
            type: str
          oids:
            description: OID include/exclude list
            elements: dict
            suboptions:
              exclude:
                description: Exclude this OID from the view.
                type: bool
              include:
                description: Include this OID from the view.
                type: bool
              oid:
                description: OID to include or exclude from view.
                type: str
            type: list
        type: list
    type: dict

running_config:
    description:
    - This option is used only with state I(parsed).
    - The value of this option should be the output received from the Junos device by
      executing the command B(show system snmp).
    - The state I(parsed) reads the configuration from C(running_config) option and transforms
      it into Ansible structured data as per the resource module's argspec and the value
      is then returned in the I(parsed) key within the result.
    type: str

Outputs

after:
  description: The resulting configuration model invocation.
  returned: when changed
  sample: "The configuration returned will always be in the same format\n of the parameters\
    \ above.\n"
  type: dict
before:
  description: The configuration prior to the model invocation.
  returned: always
  sample: "The configuration returned will always be in the same format\n of the parameters\
    \ above.\n"
  type: dict
commands:
  description: The set of commands pushed to the remote device.
  returned: always
  sample:
  - <nc:arp><nc:host-name-resolution/></nc:arp><nc:routing-instance-access>"
  - <nc:snmp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
  type: list