summaryrefslogtreecommitdiffstats
path: root/ansible_collections/cisco/meraki/plugins/modules
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-18 05:52:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-18 05:52:22 +0000
commit38b7c80217c4e72b1d8988eb1e60bb6e77334114 (patch)
tree356e9fd3762877d07cde52d21e77070aeff7e789 /ansible_collections/cisco/meraki/plugins/modules
parentAdding upstream version 7.7.0+dfsg. (diff)
downloadansible-38b7c80217c4e72b1d8988eb1e60bb6e77334114.tar.xz
ansible-38b7c80217c4e72b1d8988eb1e60bb6e77334114.zip
Adding upstream version 9.4.0+dfsg.upstream/9.4.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/cisco/meraki/plugins/modules')
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/administered_identities_me_info.py88
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices.py114
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_appliance_performance_info.py77
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings.py383
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings_info.py148
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_appliance_vmx_authentication_token.py73
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_blink_leds.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_analytics_live_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics.py93
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_generate_snapshot.py81
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention.py109
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense.py94
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_link_info.py82
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles.py90
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan.py114
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims.py128
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_info.py251
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping.py88
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_lldp_cdp_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_management_interface.py172
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_management_interface_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships.py97
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships_info.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports.py255
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_cycle.py83
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_info.py120
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_statuses_info.py150
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces.py274
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp.py174
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_info.py136
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes.py165
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes_info.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare.py81
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings.py90
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings_info.py79
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_connection_stats_info.py123
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_latency_stats_info.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings.py116
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/devices_wireless_status_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_action_batch.py7
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_admin.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_alert.py7
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_config_template.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_device.py19
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_firewalled_services.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_management_interface.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l3_firewall.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l7_firewall.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mr_radio.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mr_rf_profile.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mr_settings.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mr_ssid.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_list.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_policies.py7
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_l3_interface.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_link_aggregation.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_ospf.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack_l3_interface.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_storm_control.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_ms_switchport.py28
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_content_filtering.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_intrusion_prevention.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l2_interface.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l3_firewall.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l7_firewall.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_malware.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_nat.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_network_vlan_settings.py7
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_firewall.py37
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_vpn.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_static_route.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_third_party_vpn_peers.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_uplink_bandwidth.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_mx_vlan.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_network.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_network_settings.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_organization.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_snmp.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_syslog.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_webhook.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/meraki_webhook_payload_template.py6
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks.py199
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_alerts_history_info.py124
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings.py145
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations.py94
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering.py96
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_categories_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services.py89
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules.py102
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_application_categories_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules.py131
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules.py128
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules.py112
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings.py85
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports.py113
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports_info.py120
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics.py167
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics_info.py124
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion.py112
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware.py109
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings.py100
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings_info.py83
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan.py154
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan_info.py97
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids.py159
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids_info.py127
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes.py189
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes_info.py123
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_custom_performance_classes.py86
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules.py154
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth_info.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection.py369
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection_info.py142
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans.py364
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_info.py166
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings.py76
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp.py160
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn_info.py89
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_swap.py70
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_bind.py82
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_bluetooth_clients_info.py92
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles.py359
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles.py184
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations.py95
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp.py95
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp_info.py81
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool.py81
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink.py86
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_client_info.py118
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_info.py199
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_overview_info.py100
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy.py88
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy_info.py82
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_provision.py306
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status.py194
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status_info.py83
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim_vmx.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_devices_remove.py74
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_events_event_types_info.py82
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_events_info.py201
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades.py539
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_info.py359
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_rollbacks.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events.py189
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_defer.py103
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_rollbacks.py143
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups.py194
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups_info.py131
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages.py94
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages_info.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans.py225
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_group_policies.py701
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_group_policies_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_health_alerts_info.py117
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_info.py180
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_insight_applications_health_by_time_info.py121
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users.py209
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users_info.py130
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_mqtt_brokers.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_netflow.py94
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_netflow_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_pii_pii_keys_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_delete.py74
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_devices_for_key_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_owners_for_key_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_policies_by_client_info.py130
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_current_overview_by_metric_info.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_overview_by_metric_info.py118
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles.py437
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles_info.py175
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers_info.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sensor_relationships_info.py94
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_settings.py137
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_settings_info.py97
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts.py78
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_cellular_usage_history_info.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_certs_info.py92
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_checkin.py104
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_connectivity_info.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_desktop_logs_info.py126
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_command_logs_info.py116
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_profiles_info.py92
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_fields.py103
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_info.py158
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_lock.py109
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_modify_tags.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_move.py109
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_network_adapters_info.py92
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_performance_history_info.py123
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_refresh_details.py74
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_security_centers_info.py112
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_unenroll.py74
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wipe.py89
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wlan_lists_info.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_profiles_info.py86
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups.py154
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups_info.py123
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_trusted_access_configs_info.py113
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_delete.py74
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_info.py120
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_device_profiles_info.py92
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_info.py127
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_softwares_info.py107
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_snmp.py93
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_snmp_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_split.py89
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists.py130
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists_info.py88
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies.py362
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies_info.py154
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface.py116
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy.py118
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers.py167
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info.py111
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_info.py77
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_v4_servers_seen_info.py208
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings.py93
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations.py201
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations_info.py86
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu.py102
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu_info.py88
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules.py334
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules_info.py118
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order.py178
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast.py123
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points.py148
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points_info.py117
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf.py163
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings.py103
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings_info.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks.py117
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_add.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_info.py118
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_remove.py78
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces.py239
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp.py179
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp_info.py85
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_info.py121
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes.py171
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes_info.py121
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control_info.py79
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp.py107
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py102
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers_info.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_topology_link_layer_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_application_categories_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_dscp_tagging_options_info.py78
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_unbind.py89
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers.py181
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers_info.py121
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates.py195
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates_info.py128
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_webhook_tests_info.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface.py124
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings.py106
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings_info.py83
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_channel_utilization_history_info.py142
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_client_count_history_info.py141
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_connection_stats_info.py119
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_latency_stats_info.py127
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_connection_stats_info.py120
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_data_rate_history_info.py141
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_devices_connection_stats_info.py126
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_failed_connections_info.py135
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_history_info.py144
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_stats_info.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_mesh_statuses_info.py99
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles.py989
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles_info.py123
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings.py106
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings_info.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_signal_quality_history_info.py140
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids.py513
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding.py101
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies.py102
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override.py120
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override_info.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules.py109
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules.py106
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20.py196
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks.py168
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks_info.py126
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings.py322
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings_info.py129
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules.py162
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn.py149
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/networks_wireless_usage_history_info.py143
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations.py192
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches.py193
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches_info.py141
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls.py199
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls_info.py127
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups.py177
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_overview_info.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies.py203
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_admins.py219
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_admins_info.py100
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_alerts_profiles.py216
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_info.py175
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_info.py153
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_response_codes_by_interval_info.py142
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion.py90
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers.py236
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers_info.py117
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules.py133
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies.py357
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_info.py147
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities.py82
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities_info.py80
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts.py112
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_cellular_gateway_uplink_statuses_info.py150
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_claim.py103
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_clients_bandwidth_usage_history_info.py103
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_clients_overview_info.py105
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_clients_search_info.py104
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_clone.py97
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates.py150
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_info.py84
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports.py250
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports_info.py162
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_availabilities_info.py157
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_info.py221
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_power_modules_statuses_by_device_info.py164
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_provisioning_statuses_info.py162
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_info.py172
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_overview_info.py96
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_addresses_by_device_info.py170
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_loss_and_latency_info.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_info.py89
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins.py150
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_by_device_info.py163
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_info.py113
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_info.py129
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_insight_applications_info.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers.py154
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers_info.py120
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_claim.py104
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_devices_info.py212
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_export_events.py88
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports.py95
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports_info.py91
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_networks_info.py122
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_prepare.py224
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_release.py76
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses.py105
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_assign_seats.py111
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_info.py104
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move.py86
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move_seats.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_overview_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_renew_seats.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_info.py134
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_move.py158
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_login_security.py183
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_login_security_info.py98
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_networks_combine.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_openapi_spec_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects.py172
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups.py155
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups_info.py139
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_info.py139
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_saml.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps.py156
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps_info.py117
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_saml_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles.py201
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_history_info.py184
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_latest_info.py168
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_sm_apns_cert_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_sm_vpp_accounts_info.py115
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_snmp.py101
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_snmp_info.py75
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_appliances_by_utilization_info.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_by_usage_info.py110
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_manufacturers_by_usage_info.py108
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_by_usage_info.py117
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_models_by_usage_info.py105
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_ssids_by_usage_info.py109
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_switches_by_energy_usage_info.py107
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_switch_devices_clone.py87
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_switch_ports_by_switch_info.py190
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_uplinks_statuses_info.py152
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_users.py74
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_webhooks_logs_info.py134
-rw-r--r--ansible_collections/cisco/meraki/plugins/modules/organizations_wireless_devices_ethernet_statuses_info.py141
472 files changed, 54651 insertions, 64 deletions
diff --git a/ansible_collections/cisco/meraki/plugins/modules/administered_identities_me_info.py b/ansible_collections/cisco/meraki/plugins/modules/administered_identities_me_info.py
new file mode 100644
index 000000000..05a8f14d8
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/administered_identities_me_info.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: administered_identities_me_info
+short_description: Information module for administered _identities _me
+description:
+- Get all administered _identities _me.
+- Returns the identity of the current user.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for administered getAdministeredIdentitiesMe
+ description: Complete reference of the getAdministeredIdentitiesMe API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-administered-identities-me
+notes:
+ - SDK Method used are
+ administered.Administered.get_administered_identities_me,
+
+ - Paths used are
+ get /administered/identities/me,
+"""
+
+EXAMPLES = r"""
+- name: Get all administered _identities _me
+ cisco.meraki.administered_identities_me_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "email": "string",
+ "lastUsedDashboardAt": "string",
+ "authentication": {
+ "mode": "string",
+ "api": {
+ "key": {
+ "created": true
+ }
+ },
+ "twoFactor": {
+ "enabled": true
+ },
+ "saml": {
+ "enabled": true
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices.py b/ansible_collections/cisco/meraki/plugins/modules/devices.py
new file mode 100644
index 000000000..095ec27d8
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices.py
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices
+short_description: Resource module for devices
+description:
+- Manage operation update of the resource devices.
+- Update the attributes of a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ address:
+ description: The address of a device.
+ type: str
+ floorPlanId:
+ description: The floor plan to associate to this device. Null disassociates the
+ device from the floorplan.
+ type: str
+ lat:
+ description: The latitude of a device.
+ type: float
+ lng:
+ description: The longitude of a device.
+ type: float
+ mac:
+ description: Mac.
+ type: str
+ moveMapMarker:
+ description: Whether or not to set the latitude and longitude of a device based
+ on the new address. Only applies when lat and lng are not specified.
+ type: bool
+ name:
+ description: The name of a device.
+ type: str
+ notes:
+ description: The notes for the device. String. Limited to 255 characters.
+ type: str
+ serial:
+ description: Devices's serial.
+ type: str
+ switchProfileId:
+ description: The ID of a switch profile to bind to the device (for available switch
+ profiles, see the 'Switch Profiles' endpoint). Use null to unbind the switch device
+ from the current profile. For a device to be bindable to a switch profile, it
+ must (1) be a switch, and (2) belong to a network that is bound to a configuration
+ template.
+ type: str
+ tags:
+ description: The list of tags of a device.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDevice
+ description: Complete reference of the updateDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device
+notes:
+ - SDK Method used are
+ devices.Devices.update_device,
+
+ - Paths used are
+ put /devices/{serial},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.devices:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ lat: 37.4180951010362
+ lng: -122.098531723022
+ mac: 00:11:22:33:44:55
+ name: My AP
+ serial: Q234-ABCD-5678
+ tags:
+ - recently-added
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_performance_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_performance_info.py
new file mode 100644
index 000000000..5bdc0d6b0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_performance_info.py
@@ -0,0 +1,77 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_appliance_performance_info
+short_description: Information module for devices _appliance _performance
+description:
+- Get all devices _appliance _performance.
+- >
+ Return the performance score for a single MX. Only primary MX devices supported. If no data is available, a 204
+ error code is returned.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getDeviceAppliancePerformance
+ description: Complete reference of the getDeviceAppliancePerformance API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-appliance-performance
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_device_appliance_performance,
+
+ - Paths used are
+ get /devices/{serial}/appliance/performance,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _appliance _performance
+ cisco.meraki.devices_appliance_performance_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings.py b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings.py
new file mode 100644
index 000000000..0b325882b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings.py
@@ -0,0 +1,383 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_appliance_uplinks_settings
+short_description: Resource module for devices _appliance _uplinks _settings
+description:
+- Manage operation update of the resource devices _appliance _uplinks _settings.
+- Update the uplink settings for an MX appliance.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ interfaces:
+ description: Interface settings.
+ suboptions:
+ wan1:
+ description: WAN 1 settings.
+ suboptions:
+ enabled:
+ description: Enable or disable the interface.
+ type: bool
+ pppoe:
+ description: Configuration options for PPPoE.
+ suboptions:
+ authentication:
+ description: Settings for PPPoE Authentication.
+ suboptions:
+ enabled:
+ description: Whether PPPoE authentication is enabled.
+ type: bool
+ password:
+ description: Password for PPPoE authentication. This parameter is
+ not returned.
+ type: str
+ username:
+ description: Username for PPPoE authentication.
+ type: str
+ type: dict
+ enabled:
+ description: Whether PPPoE is enabled.
+ type: bool
+ type: dict
+ svis:
+ description: SVI settings by protocol.
+ suboptions:
+ ipv4:
+ description: IPv4 settings for static/dynamic mode.
+ suboptions:
+ address:
+ description: IP address and subnet mask when in static mode.
+ type: str
+ assignmentMode:
+ description: The assignment mode for this SVI. Applies only when
+ PPPoE is disabled.
+ type: str
+ gateway:
+ description: Gateway IP address when in static mode.
+ type: str
+ nameservers:
+ description: The nameserver settings for this SVI.
+ suboptions:
+ addresses:
+ description: Up to 2 nameserver addresses to use, ordered in
+ priority from highest to lowest priority.
+ elements: str
+ type: list
+ type: dict
+ type: dict
+ ipv6:
+ description: IPv6 settings for static/dynamic mode.
+ suboptions:
+ address:
+ description: Static address that will override the one(s) received
+ by SLAAC.
+ type: str
+ assignmentMode:
+ description: The assignment mode for this SVI. Applies only when
+ PPPoE is disabled.
+ type: str
+ gateway:
+ description: Static gateway that will override the one received
+ by autoconf.
+ type: str
+ nameservers:
+ description: The nameserver settings for this SVI.
+ suboptions:
+ addresses:
+ description: Up to 2 nameserver addresses to use, ordered in
+ priority from highest to lowest priority.
+ elements: str
+ type: list
+ type: dict
+ type: dict
+ type: dict
+ vlanTagging:
+ description: VLAN tagging settings.
+ suboptions:
+ enabled:
+ description: Whether VLAN tagging is enabled.
+ type: bool
+ vlanId:
+ description: The ID of the VLAN to use for VLAN tagging.
+ type: int
+ type: dict
+ type: dict
+ wan2:
+ description: WAN 2 settings.
+ suboptions:
+ enabled:
+ description: Enable or disable the interface.
+ type: bool
+ pppoe:
+ description: Configuration options for PPPoE.
+ suboptions:
+ authentication:
+ description: Settings for PPPoE Authentication.
+ suboptions:
+ enabled:
+ description: Whether PPPoE authentication is enabled.
+ type: bool
+ password:
+ description: Password for PPPoE authentication. This parameter is
+ not returned.
+ type: str
+ username:
+ description: Username for PPPoE authentication.
+ type: str
+ type: dict
+ enabled:
+ description: Whether PPPoE is enabled.
+ type: bool
+ type: dict
+ svis:
+ description: SVI settings by protocol.
+ suboptions:
+ ipv4:
+ description: IPv4 settings for static/dynamic mode.
+ suboptions:
+ address:
+ description: IP address and subnet mask when in static mode.
+ type: str
+ assignmentMode:
+ description: The assignment mode for this SVI. Applies only when
+ PPPoE is disabled.
+ type: str
+ gateway:
+ description: Gateway IP address when in static mode.
+ type: str
+ nameservers:
+ description: The nameserver settings for this SVI.
+ suboptions:
+ addresses:
+ description: Up to 2 nameserver addresses to use, ordered in
+ priority from highest to lowest priority.
+ elements: str
+ type: list
+ type: dict
+ type: dict
+ ipv6:
+ description: IPv6 settings for static/dynamic mode.
+ suboptions:
+ address:
+ description: Static address that will override the one(s) received
+ by SLAAC.
+ type: str
+ assignmentMode:
+ description: The assignment mode for this SVI. Applies only when
+ PPPoE is disabled.
+ type: str
+ gateway:
+ description: Static gateway that will override the one received
+ by autoconf.
+ type: str
+ nameservers:
+ description: The nameserver settings for this SVI.
+ suboptions:
+ addresses:
+ description: Up to 2 nameserver addresses to use, ordered in
+ priority from highest to lowest priority.
+ elements: str
+ type: list
+ type: dict
+ type: dict
+ type: dict
+ vlanTagging:
+ description: VLAN tagging settings.
+ suboptions:
+ enabled:
+ description: Whether VLAN tagging is enabled.
+ type: bool
+ vlanId:
+ description: The ID of the VLAN to use for VLAN tagging.
+ type: int
+ type: dict
+ type: dict
+ type: dict
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateDeviceApplianceUplinksSettings
+ description: Complete reference of the updateDeviceApplianceUplinksSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-appliance-uplinks-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_device_appliance_uplinks_settings,
+
+ - Paths used are
+ put /devices/{serial}/appliance/uplinks/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_appliance_uplinks_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ interfaces:
+ wan1:
+ enabled: true
+ pppoe:
+ authentication:
+ enabled: true
+ password: password
+ username: username
+ enabled: true
+ svis:
+ ipv4:
+ address: 9.10.11.10/16
+ assignmentMode: static
+ gateway: 13.14.15.16
+ nameservers:
+ addresses:
+ - 1.2.3.4
+ ipv6:
+ address: 1:2:3::4
+ assignmentMode: static
+ gateway: 1:2:3::5
+ nameservers:
+ addresses:
+ - 1001:4860:4860::8888
+ - 1001:4860:4860::8844
+ vlanTagging:
+ enabled: true
+ vlanId: 1
+ wan2:
+ enabled: true
+ pppoe:
+ authentication:
+ enabled: true
+ password: password
+ username: username
+ enabled: true
+ svis:
+ ipv4:
+ address: 9.10.11.10/16
+ assignmentMode: static
+ gateway: 13.14.15.16
+ nameservers:
+ addresses:
+ - 1.2.3.4
+ ipv6:
+ address: 1:2:3::4
+ assignmentMode: static
+ gateway: 1:2:3::5
+ nameservers:
+ addresses:
+ - 1001:4860:4860::8888
+ - 1001:4860:4860::8844
+ vlanTagging:
+ enabled: true
+ vlanId: 1
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "wan1": {
+ "enabled": true,
+ "vlanTagging": {
+ "enabled": true,
+ "vlanId": 0
+ },
+ "svis": {
+ "ipv4": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ },
+ "ipv6": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ }
+ },
+ "pppoe": {
+ "enabled": true,
+ "authentication": {
+ "enabled": true,
+ "username": "string"
+ }
+ }
+ },
+ "wan2": {
+ "enabled": true,
+ "vlanTagging": {
+ "enabled": true,
+ "vlanId": 0
+ },
+ "svis": {
+ "ipv4": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ },
+ "ipv6": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ }
+ },
+ "pppoe": {
+ "enabled": true,
+ "authentication": {
+ "enabled": true,
+ "username": "string"
+ }
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings_info.py
new file mode 100644
index 000000000..57b2d8c2a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_uplinks_settings_info.py
@@ -0,0 +1,148 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_appliance_uplinks_settings_info
+short_description: Information module for devices _appliance _uplinks _settings
+description:
+- Get all devices _appliance _uplinks _settings.
+- Return the uplink settings for an MX appliance.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getDeviceApplianceUplinksSettings
+ description: Complete reference of the getDeviceApplianceUplinksSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-appliance-uplinks-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_device_appliance_uplinks_settings,
+
+ - Paths used are
+ get /devices/{serial}/appliance/uplinks/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _appliance _uplinks _settings
+ cisco.meraki.devices_appliance_uplinks_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "wan1": {
+ "enabled": true,
+ "vlanTagging": {
+ "enabled": true,
+ "vlanId": 0
+ },
+ "svis": {
+ "ipv4": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ },
+ "ipv6": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ }
+ },
+ "pppoe": {
+ "enabled": true,
+ "authentication": {
+ "enabled": true,
+ "username": "string"
+ }
+ }
+ },
+ "wan2": {
+ "enabled": true,
+ "vlanTagging": {
+ "enabled": true,
+ "vlanId": 0
+ },
+ "svis": {
+ "ipv4": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ },
+ "ipv6": {
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "nameservers": {
+ "addresses": [
+ "string"
+ ]
+ }
+ }
+ },
+ "pppoe": {
+ "enabled": true,
+ "authentication": {
+ "enabled": true,
+ "username": "string"
+ }
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_vmx_authentication_token.py b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_vmx_authentication_token.py
new file mode 100644
index 000000000..6b5f400af
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_appliance_vmx_authentication_token.py
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_appliance_vmx_authentication_token
+short_description: Resource module for devices _appliance _vmx _authenticationtoken
+description:
+- Manage operation create of the resource devices _appliance _vmx _authenticationtoken.
+- Generate a new vMX authentication token.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance createDeviceApplianceVmxAuthenticationToken
+ description: Complete reference of the createDeviceApplianceVmxAuthenticationToken API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-device-appliance-vmx-authentication-token
+notes:
+ - SDK Method used are
+ appliance.Appliance.create_device_appliance_vmx_authentication_token,
+
+ - Paths used are
+ post /devices/{serial}/appliance/vmx/authenticationToken,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_appliance_vmx_authentication_token:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "token": "string",
+ "expiresAt": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_blink_leds.py b/ansible_collections/cisco/meraki/plugins/modules/devices_blink_leds.py
new file mode 100644
index 000000000..e79e87a8e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_blink_leds.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_blink_leds
+short_description: Resource module for devices _blinkleds
+description:
+- Manage operation create of the resource devices _blinkleds.
+- Blink the LEDs on a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ duration:
+ description: The duration in seconds. Must be between 5 and 120. Default is 20 seconds.
+ type: int
+ duty:
+ description: The duty cycle as the percent active. Must be between 10 and 90. Default
+ is 50.
+ type: int
+ period:
+ description: The period in milliseconds. Must be between 100 and 1000. Default is
+ 160 milliseconds.
+ type: int
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices blinkDeviceLeds
+ description: Complete reference of the blinkDeviceLeds API.
+ link: https://developer.cisco.com/meraki/api-v1/#!blink-device-leds
+notes:
+ - SDK Method used are
+ devices.Devices.blink_device_leds,
+
+ - Paths used are
+ post /devices/{serial}/blinkLeds,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_blink_leds:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ duration: 20
+ duty: 50
+ period: 160
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_analytics_live_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_analytics_live_info.py
new file mode 100644
index 000000000..33f83d4bd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_analytics_live_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_analytics_live_info
+short_description: Information module for devices _camera _analytics _live
+description:
+- Get all devices _camera _analytics _live.
+- Returns live state from camera of analytics zones.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera getDeviceCameraAnalyticsLive
+ description: Complete reference of the getDeviceCameraAnalyticsLive API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-analytics-live
+notes:
+ - SDK Method used are
+ camera.Camera.get_device_camera_analytics_live,
+
+ - Paths used are
+ get /devices/{serial}/camera/analytics/live,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _analytics _live
+ cisco.meraki.devices_camera_analytics_live_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics.py
new file mode 100644
index 000000000..e68f3ee98
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_custom_analytics
+short_description: Resource module for devices _camera _customanalytics
+description:
+- Manage operation update of the resource devices _camera _customanalytics.
+- Update custom analytics settings for a camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ artifactId:
+ description: The ID of the custom analytics artifact.
+ type: str
+ enabled:
+ description: Enable custom analytics.
+ type: bool
+ parameters:
+ description: Parameters for the custom analytics workload.
+ elements: dict
+ suboptions:
+ name:
+ description: Name of the parameter.
+ type: str
+ value:
+ description: Value of the parameter.
+ type: str
+ type: list
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCameraCustomAnalytics
+ description: Complete reference of the updateDeviceCameraCustomAnalytics API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-camera-custom-analytics
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_camera_custom_analytics,
+
+ - Paths used are
+ put /devices/{serial}/camera/customAnalytics,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_camera_custom_analytics:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ artifactId: '1'
+ enabled: true
+ parameters:
+ - name: detection_threshold
+ value: '0.5'
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics_info.py
new file mode 100644
index 000000000..8a08930bc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_custom_analytics_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_custom_analytics_info
+short_description: Information module for devices _camera _customanalytics
+description:
+- Get all devices _camera _customanalytics.
+- Return custom analytics settings for a camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCameraCustomAnalytics
+ description: Complete reference of the getDeviceCameraCustomAnalytics API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-custom-analytics
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_camera_custom_analytics,
+
+ - Paths used are
+ get /devices/{serial}/camera/customAnalytics,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _customanalytics
+ cisco.meraki.devices_camera_custom_analytics_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_generate_snapshot.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_generate_snapshot.py
new file mode 100644
index 000000000..026e44fa8
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_generate_snapshot.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_generate_snapshot
+short_description: Resource module for devices _camera _generatesnapshot
+description:
+- Manage operation create of the resource devices _camera _generatesnapshot.
+- Generate a snapshot of what the camera sees at the specified time and return a link to that image.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ fullframe:
+ description: Optional If set to "true" the snapshot will be taken at full sensor
+ resolution. This will error if used with timestamp.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+ timestamp:
+ description: Optional The snapshot will be taken from this time on the camera. The
+ timestamp is expected to be in ISO 8601 format. If no timestamp is specified,
+ we will assume current time.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices generateDeviceCameraSnapshot
+ description: Complete reference of the generateDeviceCameraSnapshot API.
+ link: https://developer.cisco.com/meraki/api-v1/#!generate-device-camera-snapshot
+notes:
+ - SDK Method used are
+ devices.Devices.generate_device_camera_snapshot,
+
+ - Paths used are
+ post /devices/{serial}/camera/generateSnapshot,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_camera_generate_snapshot:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ fullframe: false
+ serial: string
+ timestamp: '2021-04-30T15:18:08Z'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention.py
new file mode 100644
index 000000000..ab0e474ec
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_quality_and_retention
+short_description: Resource module for devices _camera _qualityandretention
+description:
+- Manage operation update of the resource devices _camera _qualityandretention.
+- Update quality and retention settings for the given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ audioRecordingEnabled:
+ description: Boolean indicating if audio recording is enabled(true) or disabled(false)
+ on the camera.
+ type: bool
+ motionBasedRetentionEnabled:
+ description: Boolean indicating if motion-based retention is enabled(true) or disabled(false)
+ on the camera.
+ type: bool
+ motionDetectorVersion:
+ description: The version of the motion detector that will be used by the camera.
+ Only applies to Gen 2 cameras. Defaults to v2.
+ type: int
+ profileId:
+ description: The ID of a quality and retention profile to assign to the camera.
+ The profile's settings will override all of the per-camera quality and retention
+ settings. If the value of this parameter is null, any existing profile will be
+ unassigned from the camera.
+ type: str
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'High' or 'Enhanced'.
+ Not all qualities are supported by every camera model.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1280x720', '1920x1080', '1080x1080',
+ '2058x2058', '2112x2112', '2880x2880', '2688x1512' or '3840x2160'.Not all resolutions
+ are supported by every camera model.
+ type: str
+ restrictedBandwidthModeEnabled:
+ description: Boolean indicating if restricted bandwidth is enabled(true) or disabled(false)
+ on the camera. This setting does not apply to MV2 cameras.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCameraQualityAndRetention
+ description: Complete reference of the updateDeviceCameraQualityAndRetention API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-camera-quality-and-retention
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_camera_quality_and_retention,
+
+ - Paths used are
+ put /devices/{serial}/camera/qualityAndRetention,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_camera_quality_and_retention:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ audioRecordingEnabled: false
+ motionBasedRetentionEnabled: false
+ motionDetectorVersion: 2
+ profileId: '1234'
+ quality: Standard
+ resolution: 1280x720
+ restrictedBandwidthModeEnabled: false
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention_info.py
new file mode 100644
index 000000000..4c24df969
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_quality_and_retention_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_quality_and_retention_info
+short_description: Information module for devices _camera _qualityandretention
+description:
+- Get all devices _camera _qualityandretention.
+- Returns quality and retention settings for the given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCameraQualityAndRetention
+ description: Complete reference of the getDeviceCameraQualityAndRetention API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-quality-and-retention
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_camera_quality_and_retention,
+
+ - Paths used are
+ get /devices/{serial}/camera/qualityAndRetention,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _qualityandretention
+ cisco.meraki.devices_camera_quality_and_retention_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense.py
new file mode 100644
index 000000000..fba029c46
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense.py
@@ -0,0 +1,94 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_sense
+short_description: Resource module for devices _camera _sense
+description:
+- Manage operation update of the resource devices _camera _sense.
+- Update sense settings for the given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ audioDetection:
+ description: The details of the audio detection config.
+ suboptions:
+ enabled:
+ description: Boolean indicating if audio detection is enabled(true) or disabled(false)
+ on the camera.
+ type: bool
+ type: dict
+ detectionModelId:
+ description: The ID of the object detection model.
+ type: str
+ mqttBrokerId:
+ description: The ID of the MQTT broker to be enabled on the camera. A value of null
+ will disable MQTT on the camera.
+ type: str
+ senseEnabled:
+ description: Boolean indicating if sense(license) is enabled(true) or disabled(false)
+ on the camera.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCameraSense
+ description: Complete reference of the updateDeviceCameraSense API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-camera-sense
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_camera_sense,
+
+ - Paths used are
+ put /devices/{serial}/camera/sense,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_camera_sense:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ audioDetection:
+ enabled: false
+ mqttBrokerId: '1234'
+ senseEnabled: true
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense_info.py
new file mode 100644
index 000000000..2dee743aa
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_sense_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_sense_info
+short_description: Information module for devices _camera _sense
+description:
+- Get all devices _camera _sense.
+- Returns sense settings for a given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCameraSense
+ description: Complete reference of the getDeviceCameraSense API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-sense
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_camera_sense,
+
+ - Paths used are
+ get /devices/{serial}/camera/sense,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _sense
+ cisco.meraki.devices_camera_sense_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_link_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_link_info.py
new file mode 100644
index 000000000..a872336bc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_link_info.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_video_link_info
+short_description: Information module for devices _camera _videolink
+description:
+- Get all devices _camera _videolink.
+- Returns video link to the specified camera. If a timestamp is supplied, it links to that timestamp.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ timestamp:
+ description:
+ - >
+ Timestamp query parameter. Optional The video link will start at this time. The timestamp should be a string
+ in ISO8601 format. If no timestamp is specified, we will assume current time.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera getDeviceCameraVideoLink
+ description: Complete reference of the getDeviceCameraVideoLink API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-video-link
+notes:
+ - SDK Method used are
+ camera.Camera.get_device_camera_video_link,
+
+ - Paths used are
+ get /devices/{serial}/camera/videoLink,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _videolink
+ cisco.meraki.devices_camera_video_link_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ timestamp: string
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings.py
new file mode 100644
index 000000000..27803c8dd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_video_settings
+short_description: Resource module for devices _camera _video _settings
+description:
+- Manage operation update of the resource devices _camera _video _settings.
+- Update video settings for the given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ externalRtspEnabled:
+ description: Boolean indicating if external rtsp stream is exposed.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCameraVideoSettings
+ description: Complete reference of the updateDeviceCameraVideoSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-camera-video-settings
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_camera_video_settings,
+
+ - Paths used are
+ put /devices/{serial}/camera/video/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_camera_video_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ externalRtspEnabled: true
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings_info.py
new file mode 100644
index 000000000..1a6deb42e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_video_settings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_video_settings_info
+short_description: Information module for devices _camera _video _settings
+description:
+- Get all devices _camera _video _settings.
+- Returns video settings for the given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCameraVideoSettings
+ description: Complete reference of the getDeviceCameraVideoSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-video-settings
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_camera_video_settings,
+
+ - Paths used are
+ get /devices/{serial}/camera/video/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _video _settings
+ cisco.meraki.devices_camera_video_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles.py
new file mode 100644
index 000000000..2453b6679
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles.py
@@ -0,0 +1,90 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_wireless_profiles
+short_description: Resource module for devices _camera _wirelessprofiles
+description:
+- Manage operation update of the resource devices _camera _wirelessprofiles.
+- >
+ Assign wireless profiles to the given camera. Incremental updates are not supported, all profile assignment need
+ to be supplied at once.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ids:
+ description: The ids of the wireless profile to assign to the given camera.
+ suboptions:
+ backup:
+ description: The id of the backup wireless profile.
+ type: str
+ primary:
+ description: The id of the primary wireless profile.
+ type: str
+ secondary:
+ description: The id of the secondary wireless profile.
+ type: str
+ type: dict
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCameraWirelessProfiles
+ description: Complete reference of the updateDeviceCameraWirelessProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-camera-wireless-profiles
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_camera_wireless_profiles,
+
+ - Paths used are
+ put /devices/{serial}/camera/wirelessProfiles,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_camera_wireless_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ ids:
+ backup: '1'
+ primary: '3'
+ secondary: '2'
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles_info.py
new file mode 100644
index 000000000..f9939d5a4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_camera_wireless_profiles_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_camera_wireless_profiles_info
+short_description: Information module for devices _camera _wirelessprofiles
+description:
+- Get all devices _camera _wirelessprofiles.
+- Returns wireless profile assigned to the given camera.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCameraWirelessProfiles
+ description: Complete reference of the getDeviceCameraWirelessProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-wireless-profiles
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_camera_wireless_profiles,
+
+ - Paths used are
+ get /devices/{serial}/camera/wirelessProfiles,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _camera _wirelessprofiles
+ cisco.meraki.devices_camera_wireless_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan.py b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan.py
new file mode 100644
index 000000000..8c930e9e7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan.py
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_cellular_gateway_lan
+short_description: Resource module for devices _cellulargateway _lan
+description:
+- Manage operation update of the resource devices _cellulargateway _lan.
+- Update the LAN Settings for a single MG.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ fixedIpAssignments:
+ description: List of all fixed IP assignments for a single MG.
+ elements: dict
+ suboptions:
+ ip:
+ description: The IP address you want to assign to a specific server or device.
+ type: str
+ mac:
+ description: The MAC address of the server or device that hosts the internal
+ resource that you wish to receive the specified IP address.
+ type: str
+ name:
+ description: A descriptive name of the assignment.
+ type: str
+ type: list
+ reservedIpRanges:
+ description: List of all reserved IP ranges for a single MG.
+ elements: dict
+ suboptions:
+ comment:
+ description: Comment explaining the reserved IP range.
+ type: str
+ end:
+ description: Ending IP included in the reserved range of IPs.
+ type: str
+ start:
+ description: Starting IP included in the reserved range of IPs.
+ type: str
+ type: list
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCellularGatewayLan
+ description: Complete reference of the updateDeviceCellularGatewayLan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-cellular-gateway-lan
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_cellular_gateway_lan,
+
+ - Paths used are
+ put /devices/{serial}/cellularGateway/lan,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_cellular_gateway_lan:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ deviceLanIp: 192.168.0.33
+ deviceName: name of the MG
+ deviceSubnet: 192.168.0.32/27
+ fixedIpAssignments:
+ - ip: 192.168.0.10
+ mac: 0b:00:00:00:00:ac
+ name: server 1
+ - ip: 192.168.0.20
+ mac: 0b:00:00:00:00:ab
+ name: server 2
+ reservedIpRanges:
+ - comment: A reserved IP range
+ end: 192.168.1.1
+ start: 192.168.1.0
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan_info.py
new file mode 100644
index 000000000..b16d76670
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_lan_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_cellular_gateway_lan_info
+short_description: Information module for devices _cellulargateway _lan
+description:
+- Get all devices _cellulargateway _lan.
+- Show the LAN Settings of a MG.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCellularGatewayLan
+ description: Complete reference of the getDeviceCellularGatewayLan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-cellular-gateway-lan
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_cellular_gateway_lan,
+
+ - Paths used are
+ get /devices/{serial}/cellularGateway/lan,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _cellulargateway _lan
+ cisco.meraki.devices_cellular_gateway_lan_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules.py b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules.py
new file mode 100644
index 000000000..16078d076
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_cellular_gateway_port_forwarding_rules
+short_description: Resource module for devices _cellulargateway _portforwardingrules
+description:
+- Manage operation update of the resource devices _cellulargateway _portforwardingrules.
+- Updates the port forwarding rules for a single MG.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ rules:
+ description: An array of port forwarding params.
+ elements: dict
+ suboptions:
+ access:
+ description: '`any` or `restricted`. Specify the right to make inbound connections
+ on the specified ports or port ranges. If `restricted`, a list of allowed
+ IPs is mandatory.'
+ type: str
+ allowedIps:
+ description: An array of ranges of WAN IP addresses that are allowed to make
+ inbound connections on the specified ports or port ranges.
+ elements: str
+ type: list
+ lanIp:
+ description: The IP address of the server or device that hosts the internal
+ resource that you wish to make available on the WAN.
+ type: str
+ localPort:
+ description: A port or port ranges that will receive the forwarded traffic from
+ the WAN.
+ type: str
+ name:
+ description: A descriptive name for the rule.
+ type: str
+ protocol:
+ description: TCP or UDP.
+ type: str
+ publicPort:
+ description: A port or port ranges that will be forwarded to the host on the
+ LAN.
+ type: str
+ type: list
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCellularGatewayPortForwardingRules
+ description: Complete reference of the updateDeviceCellularGatewayPortForwardingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-cellular-gateway-port-forwarding-rules
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_cellular_gateway_port_forwarding_rules,
+
+ - Paths used are
+ put /devices/{serial}/cellularGateway/portForwardingRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_cellular_gateway_port_forwarding_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ rules:
+ - access: any
+ lanIp: 172.31.128.5
+ localPort: '4'
+ name: test
+ protocol: tcp
+ publicPort: 11-12
+ uplink: both
+ - access: restricted
+ allowedIps:
+ - 10.10.10.10
+ - 10.10.10.11
+ lanIp: 172.31.128.5
+ localPort: '5'
+ name: test 2
+ protocol: tcp
+ publicPort: '99'
+ uplink: both
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules_info.py
new file mode 100644
index 000000000..6e8e713d2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_gateway_port_forwarding_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_cellular_gateway_port_forwarding_rules_info
+short_description: Information module for devices _cellulargateway _portforwardingrules
+description:
+- Get all devices _cellulargateway _portforwardingrules.
+- Returns the port forwarding rules for a single MG.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCellularGatewayPortForwardingRules
+ description: Complete reference of the getDeviceCellularGatewayPortForwardingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-cellular-gateway-port-forwarding-rules
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_cellular_gateway_port_forwarding_rules,
+
+ - Paths used are
+ get /devices/{serial}/cellularGateway/portForwardingRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _cellulargateway _portforwardingrules
+ cisco.meraki.devices_cellular_gateway_port_forwarding_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims.py b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims.py
new file mode 100644
index 000000000..a0c66c0d2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims.py
@@ -0,0 +1,128 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_cellular_sims
+short_description: Resource module for devices _cellular _sims
+description:
+- Manage operation update of the resource devices _cellular _sims.
+- Updates the SIM and APN configurations for a cellular device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ serial:
+ description: Serial path parameter.
+ type: str
+ simFailover:
+ description: SIM Failover settings.
+ suboptions:
+ enabled:
+ description: Failover to secondary SIM (optional).
+ type: bool
+ type: dict
+ sims:
+ description: List of SIMs. If a SIM was previously configured and not specified
+ in this request, it will remain unchanged.
+ elements: dict
+ suboptions:
+ apns:
+ description: APN configurations. If empty, the default APN will be used.
+ elements: dict
+ suboptions:
+ allowedIpTypes:
+ description: IP versions to support (permitted values include 'ipv4', 'ipv6').
+ elements: str
+ type: list
+ authentication:
+ description: APN authentication configurations.
+ suboptions:
+ password:
+ description: APN password, if type is set (if APN password is not supplied,
+ the password is left unchanged).
+ type: str
+ type:
+ description: APN auth type.
+ type: str
+ username:
+ description: APN username, if type is set.
+ type: str
+ type: dict
+ name:
+ description: APN name.
+ type: str
+ type: list
+ isPrimary:
+ description: If true, this SIM is used for boot. Must be true on single-sim
+ devices.
+ type: bool
+ slot:
+ description: SIM slot being configured. Must be 'sim1' on single-sim devices.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceCellularSims
+ description: Complete reference of the updateDeviceCellularSims API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-cellular-sims
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_cellular_sims,
+
+ - Paths used are
+ put /devices/{serial}/cellular/sims,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_cellular_sims:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ apns:
+ - allowedIpTypes:
+ - ipv4
+ - ipv6
+ authentication:
+ password: secret
+ type: pap
+ username: milesmeraki
+ name: internet
+ isPrimary: true
+ serial: string
+ slot: sim1
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims_info.py
new file mode 100644
index 000000000..5ae2eab96
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_cellular_sims_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_cellular_sims_info
+short_description: Information module for devices _cellular _sims
+description:
+- Get all devices _cellular _sims.
+- Return the SIM and APN configurations for a cellular device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceCellularSims
+ description: Complete reference of the getDeviceCellularSims API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-cellular-sims
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_cellular_sims,
+
+ - Paths used are
+ get /devices/{serial}/cellular/sims,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _cellular _sims
+ cisco.meraki.devices_cellular_sims_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_info.py
new file mode 100644
index 000000000..f230e826f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_info.py
@@ -0,0 +1,251 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_info
+short_description: Information module for devices
+description:
+- Get all devices.
+- Get devices by id.
+- List the devices in an organization.
+- Return a single device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ configurationUpdatedAfter:
+ description:
+ - >
+ ConfigurationUpdatedAfter query parameter. Filter results by whether or not the device's configuration has
+ been updated after the given timestamp.
+ type: str
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter devices by network.
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Optional parameter to filter devices by product type. Valid types are
+ wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor.
+ elements: str
+ type: list
+ tags:
+ description:
+ - Tags query parameter. Optional parameter to filter devices by tags.
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. Optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return networks which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+ name:
+ description:
+ - >
+ Name query parameter. Optional parameter to filter devices by name. All returned devices will have a name
+ that contains the search term or is an exact match.
+ type: str
+ mac:
+ description:
+ - >
+ Mac query parameter. Optional parameter to filter devices by MAC address. All returned devices will have a
+ MAC address that contains the search term or is an exact match.
+ type: str
+ model:
+ description:
+ - >
+ Model query parameter. Optional parameter to filter devices by model. All returned devices will have a model
+ that contains the search term or is an exact match.
+ type: str
+ macs:
+ description:
+ - >
+ Macs query parameter. Optional parameter to filter devices by one or more MAC addresses. All returned
+ devices will have a MAC address that is an exact match.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter devices by one or more serial numbers. All returned
+ devices will have a serial number that is an exact match.
+ elements: str
+ type: list
+ sensorMetrics:
+ description:
+ - >
+ SensorMetrics query parameter. Optional parameter to filter devices by the metrics that they provide. Only
+ applies to sensor devices.
+ elements: str
+ type: list
+ sensorAlertProfileIds:
+ description:
+ - >
+ SensorAlertProfileIds query parameter. Optional parameter to filter devices by the alert profiles that are
+ bound to them. Only applies to sensor devices.
+ elements: str
+ type: list
+ models:
+ description:
+ - >
+ Models query parameter. Optional parameter to filter devices by one or more models. All returned devices
+ will have a model that is an exact match.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDevice
+ description: Complete reference of the getDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device
+- name: Cisco Meraki documentation for devices getOrganizationDevices
+ description: Complete reference of the getOrganizationDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices
+notes:
+ - SDK Method used are
+ devices.Devices.get_device,
+ devices.Devices.get_organization_devices,
+
+ - Paths used are
+ get /devices/{serial},
+ get /organizations/{organizationId}/devices,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices
+ cisco.meraki.devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ configurationUpdatedAfter: string
+ networkIds: []
+ productTypes: []
+ tags: []
+ tagsFilterType: string
+ name: string
+ mac: string
+ serial: string
+ model: string
+ macs: []
+ serials: []
+ sensorMetrics: []
+ sensorAlertProfileIds: []
+ models: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+- name: Get devices by id
+ cisco.meraki.devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "lat": 0,
+ "lng": 0,
+ "address": "string",
+ "notes": "string",
+ "tags": [
+ "string"
+ ],
+ "networkId": "string",
+ "serial": "string",
+ "model": "string",
+ "mac": "string",
+ "lanIp": "string",
+ "firmware": "string",
+ "productType": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping.py b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping.py
new file mode 100644
index 000000000..791847c69
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_live_tools_ping
+short_description: Resource module for devices _livetools _ping
+description:
+- Manage operation create of the resource devices _livetools _ping.
+- Enqueue a job to ping a target host from the device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ count:
+ description: Count parameter to pass to ping. 1..5, default 5.
+ type: int
+ serial:
+ description: Serial path parameter.
+ type: str
+ target:
+ description: FQDN, IPv4 or IPv6 address.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices createDeviceLiveToolsPing
+ description: Complete reference of the createDeviceLiveToolsPing API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-device-live-tools-ping
+notes:
+ - SDK Method used are
+ devices.Devices.create_device_live_tools_ping,
+
+ - Paths used are
+ post /devices/{serial}/liveTools/ping,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_live_tools_ping:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ count: 2
+ serial: string
+ target: 75.75.75.75
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "pingId": "string",
+ "url": "string",
+ "request": {
+ "serial": "string",
+ "target": "string",
+ "count": 0
+ },
+ "status": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device.py b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device.py
new file mode 100644
index 000000000..ee6a137cf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_live_tools_ping_device
+short_description: Resource module for devices _livetools _pingdevice
+description:
+- Manage operation create of the resource devices _livetools _pingdevice.
+- Enqueue a job to check connectivity status to the device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ count:
+ description: Count parameter to pass to ping. 1..5, default 5.
+ type: int
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices createDeviceLiveToolsPingDevice
+ description: Complete reference of the createDeviceLiveToolsPingDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-device-live-tools-ping-device
+notes:
+ - SDK Method used are
+ devices.Devices.create_device_live_tools_ping_device,
+
+ - Paths used are
+ post /devices/{serial}/liveTools/pingDevice,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_live_tools_ping_device:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ count: 3
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "pingId": "string",
+ "url": "string",
+ "request": {
+ "serial": "string",
+ "target": "string",
+ "count": 0
+ },
+ "status": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device_info.py
new file mode 100644
index 000000000..3a5507001
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_device_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_live_tools_ping_device_info
+short_description: Information module for devices _livetools _pingdevice
+description:
+- Get devices _livetools _pingdevice by id.
+- Return a ping device job. Latency unit in response is in milliseconds. Size is in bytes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ id:
+ description:
+ - Id path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceLiveToolsPingDevice
+ description: Complete reference of the getDeviceLiveToolsPingDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-live-tools-ping-device
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_live_tools_ping_device,
+
+ - Paths used are
+ get /devices/{serial}/liveTools/pingDevice/{id},
+"""
+
+EXAMPLES = r"""
+- name: Get devices _livetools _pingdevice by id
+ cisco.meraki.devices_live_tools_ping_device_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ id: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "pingId": "string",
+ "url": "string",
+ "request": {
+ "serial": "string",
+ "target": "string",
+ "count": 0
+ },
+ "status": "string",
+ "results": {
+ "sent": 0,
+ "received": 0,
+ "loss": {
+ "percentage": 0
+ },
+ "latencies": {
+ "minimum": 0,
+ "average": 0,
+ "maximum": 0
+ },
+ "replies": [
+ {
+ "sequenceId": 0,
+ "size": 0,
+ "latency": 0
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_info.py
new file mode 100644
index 000000000..65a11d488
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_live_tools_ping_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_live_tools_ping_info
+short_description: Information module for devices _livetools _ping
+description:
+- Get devices _livetools _ping by id.
+- Return a ping job. Latency unit in response is in milliseconds. Size is in bytes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ id:
+ description:
+ - Id path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceLiveToolsPing
+ description: Complete reference of the getDeviceLiveToolsPing API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-live-tools-ping
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_live_tools_ping,
+
+ - Paths used are
+ get /devices/{serial}/liveTools/ping/{id},
+"""
+
+EXAMPLES = r"""
+- name: Get devices _livetools _ping by id
+ cisco.meraki.devices_live_tools_ping_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ id: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "pingId": "string",
+ "url": "string",
+ "request": {
+ "serial": "string",
+ "target": "string",
+ "count": 0
+ },
+ "status": "string",
+ "results": {
+ "sent": 0,
+ "received": 0,
+ "loss": {
+ "percentage": 0
+ },
+ "latencies": {
+ "minimum": 0,
+ "average": 0,
+ "maximum": 0
+ },
+ "replies": [
+ {
+ "sequenceId": 0,
+ "size": 0,
+ "latency": 0
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_lldp_cdp_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_lldp_cdp_info.py
new file mode 100644
index 000000000..6b164fafb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_lldp_cdp_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_lldp_cdp_info
+short_description: Information module for devices _lldpcdp
+description:
+- Get all devices _lldpcdp.
+- List LLDP and CDP information for a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceLldpCdp
+ description: Complete reference of the getDeviceLldpCdp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-lldp-cdp
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_lldp_cdp,
+
+ - Paths used are
+ get /devices/{serial}/lldpCdp,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _lldpcdp
+ cisco.meraki.devices_lldp_cdp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_management_interface.py b/ansible_collections/cisco/meraki/plugins/modules/devices_management_interface.py
new file mode 100644
index 000000000..7935d66b8
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_management_interface.py
@@ -0,0 +1,172 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_management_interface
+short_description: Resource module for devices _managementinterface
+description:
+- Manage operations create and update of the resource devices _managementinterface.
+- Reboot a device.
+- Update the management interface settings for a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ serial:
+ description: Serial path parameter.
+ type: str
+ wan1:
+ description: WAN 1 settings.
+ suboptions:
+ staticDns:
+ description: Up to two DNS IPs.
+ elements: str
+ type: list
+ staticGatewayIp:
+ description: The IP of the gateway on the WAN.
+ type: str
+ staticIp:
+ description: The IP the device should use on the WAN.
+ type: str
+ staticSubnetMask:
+ description: The subnet mask for the WAN.
+ type: str
+ usingStaticIp:
+ description: Configure the interface to have static IP settings or use DHCP.
+ type: bool
+ vlan:
+ description: The VLAN that management traffic should be tagged with. Applies
+ whether usingStaticIp is true or false.
+ type: int
+ wanEnabled:
+ description: Enable or disable the interface (only for MX devices). Valid values
+ are 'enabled', 'disabled', and 'not configured'.
+ type: str
+ type: dict
+ wan2:
+ description: WAN 2 settings (only for MX devices).
+ suboptions:
+ staticDns:
+ description: Up to two DNS IPs.
+ elements: str
+ type: list
+ staticGatewayIp:
+ description: The IP of the gateway on the WAN.
+ type: str
+ staticIp:
+ description: The IP the device should use on the WAN.
+ type: str
+ staticSubnetMask:
+ description: The subnet mask for the WAN.
+ type: str
+ usingStaticIp:
+ description: Configure the interface to have static IP settings or use DHCP.
+ type: bool
+ vlan:
+ description: The VLAN that management traffic should be tagged with. Applies
+ whether usingStaticIp is true or false.
+ type: int
+ wanEnabled:
+ description: Enable or disable the interface (only for MX devices). Valid values
+ are 'enabled', 'disabled', and 'not configured'.
+ type: str
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices rebootDevice
+ description: Complete reference of the rebootDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!reboot-device
+- name: Cisco Meraki documentation for devices updateDeviceManagementInterface
+ description: Complete reference of the updateDeviceManagementInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-management-interface
+notes:
+ - SDK Method used are
+ devices.Devices.reboot_device,
+ devices.Devices.update_device_management_interface,
+
+ - Paths used are
+ post /devices/{serial}/reboot,
+ put /devices/{serial}/managementInterface,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_management_interface:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ serial: string
+ wan1:
+ staticDns:
+ - 1.2.3.2
+ - 1.2.3.3
+ staticGatewayIp: 1.2.3.1
+ staticIp: 1.2.3.4
+ staticSubnetMask: 255.255.255.0
+ usingStaticIp: true
+ vlan: 7
+ wanEnabled: not configured
+ wan2:
+ usingStaticIp: false
+ vlan: 2
+ wanEnabled: enabled
+
+- name: Create
+ cisco.meraki.devices_management_interface:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_management_interface_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_management_interface_info.py
new file mode 100644
index 000000000..d6c7b9f5a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_management_interface_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_management_interface_info
+short_description: Information module for devices _managementinterface
+description:
+- Get all devices _managementinterface.
+- Return the management interface settings for a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceManagementInterface
+ description: Complete reference of the getDeviceManagementInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-management-interface
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_management_interface,
+
+ - Paths used are
+ get /devices/{serial}/managementInterface,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _managementinterface
+ cisco.meraki.devices_management_interface_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships.py b/ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships.py
new file mode 100644
index 000000000..6807e39b3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_sensor_relationships
+short_description: Resource module for devices _sensor _relationships
+description:
+- Manage operation update of the resource devices _sensor _relationships.
+- Assign one or more sensor roles to a given sensor or camera device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ livestream:
+ description: A role defined between an MT sensor and an MV camera that adds the
+ camera's livestream to the sensor's details page. Snapshots from the camera will
+ also appear in alert notifications that the sensor triggers.
+ suboptions:
+ relatedDevices:
+ description: An array of the related devices for the role.
+ elements: dict
+ suboptions:
+ serial:
+ description: The serial of the related device.
+ type: str
+ type: list
+ type: dict
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceSensorRelationships
+ description: Complete reference of the updateDeviceSensorRelationships API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-sensor-relationships
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_sensor_relationships,
+
+ - Paths used are
+ put /devices/{serial}/sensor/relationships,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_sensor_relationships:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ livestream:
+ relatedDevices:
+ - serial: string
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "livestream": {
+ "relatedDevices": [
+ {
+ "serial": "string",
+ "productType": "string"
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships_info.py
new file mode 100644
index 000000000..10dfce37d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_sensor_relationships_info.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_sensor_relationships_info
+short_description: Information module for devices _sensor _relationships
+description:
+- Get all devices _sensor _relationships.
+- List the sensor roles for a given sensor or camera device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSensorRelationships
+ description: Complete reference of the getDeviceSensorRelationships API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-sensor-relationships
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_sensor_relationships,
+
+ - Paths used are
+ get /devices/{serial}/sensor/relationships,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _sensor _relationships
+ cisco.meraki.devices_sensor_relationships_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "livestream": {
+ "relatedDevices": [
+ {
+ "serial": "string",
+ "productType": "string"
+ }
+ ]
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports.py
new file mode 100644
index 000000000..370a7c560
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports.py
@@ -0,0 +1,255 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_ports
+short_description: Resource module for devices _switch _ports
+description:
+- Manage operation update of the resource devices _switch _ports.
+- Update a switch port.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accessPolicyNumber:
+ description: The number of a custom access policy to configure on the switch port.
+ Only applicable when 'accessPolicyType' is 'Custom access policy'.
+ type: int
+ accessPolicyType:
+ description: The type of the access policy of the switch port. Only applicable to
+ access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or
+ 'Sticky MAC allow list'.
+ type: str
+ adaptivePolicyGroupId:
+ description: The adaptive policy group ID that will be used to tag traffic through
+ this switch port. This ID must pre-exist during the configuration, else needs
+ to be created using adaptivePolicy/groups API. Cannot be applied to a port on
+ a switch bound to profile.
+ type: str
+ allowedVlans:
+ description: The VLANs allowed on the switch port. Only applicable to trunk ports.
+ type: str
+ daiTrusted:
+ description: If true, ARP packets for this port will be considered trusted, and
+ Dynamic ARP Inspection will allow the traffic.
+ type: bool
+ enabled:
+ description: The status of the switch port.
+ type: bool
+ flexibleStackingEnabled:
+ description: For supported switches (e.g. MS420/MS425), whether or not the port
+ has flexible stacking enabled.
+ type: bool
+ isolationEnabled:
+ description: The isolation status of the switch port.
+ type: bool
+ linkNegotiation:
+ description: The link speed for the switch port.
+ type: str
+ macAllowList:
+ description: Only devices with MAC addresses specified in this list will have access
+ to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType'
+ is 'MAC allow list'.
+ elements: str
+ type: list
+ name:
+ description: The name of the switch port.
+ type: str
+ peerSgtCapable:
+ description: If true, Peer SGT is enabled for traffic through this switch port.
+ Applicable to trunk port only, not access port. Cannot be applied to a port on
+ a switch bound to profile.
+ type: bool
+ poeEnabled:
+ description: The PoE status of the switch port.
+ type: bool
+ portId:
+ description: PortId path parameter. Port ID.
+ type: str
+ portScheduleId:
+ description: The ID of the port schedule. A value of null will clear the port schedule.
+ type: str
+ profile:
+ description: Profile attributes.
+ suboptions:
+ enabled:
+ description: When enabled, override this port's configuration with a port profile.
+ type: bool
+ id:
+ description: When enabled, the ID of the port profile used to override the port's
+ configuration.
+ type: str
+ iname:
+ description: When enabled, the IName of the profile.
+ type: str
+ type: dict
+ rstpEnabled:
+ description: The rapid spanning tree protocol status.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+ stickyMacAllowList:
+ description: The initial list of MAC addresses for sticky Mac allow list. Only applicable
+ when 'accessPolicyType' is 'Sticky MAC allow list'.
+ elements: str
+ type: list
+ stickyMacAllowListLimit:
+ description: The maximum number of MAC addresses for sticky MAC allow list. Only
+ applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
+ type: int
+ stormControlEnabled:
+ description: The storm control status of the switch port.
+ type: bool
+ stpGuard:
+ description: The state of the STP guard ('disabled', 'root guard', 'bpdu guard'
+ or 'loop guard').
+ type: str
+ tags:
+ description: The list of tags of the switch port.
+ elements: str
+ type: list
+ type:
+ description: The type of the switch port ('trunk' or 'access').
+ type: str
+ udld:
+ description: The action to take when Unidirectional Link is detected (Alert only,
+ Enforce). Default configuration is Alert only.
+ type: str
+ vlan:
+ description: The VLAN of the switch port. A null value will clear the value set
+ for trunk ports.
+ type: int
+ voiceVlan:
+ description: The voice VLAN of the switch port. Only applicable to access ports.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceSwitchPort
+ description: Complete reference of the updateDeviceSwitchPort API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-switch-port
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_switch_port,
+
+ - Paths used are
+ put /devices/{serial}/switch/ports/{portId},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.devices_switch_ports:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accessPolicyNumber: 2
+ accessPolicyType: Sticky MAC allow list
+ adaptivePolicyGroupId: '123'
+ allowedVlans: 1,3,5-10
+ daiTrusted: false
+ enabled: true
+ flexibleStackingEnabled: true
+ isolationEnabled: false
+ linkNegotiation: Auto negotiate
+ macAllowList:
+ - 34:56:fe:ce:8e:b0
+ - 34:56:fe:ce:8e:b1
+ name: My switch port
+ peerSgtCapable: false
+ poeEnabled: true
+ portId: string
+ portScheduleId: '1234'
+ profile:
+ enabled: false
+ id: '1284392014819'
+ iname: iname
+ rstpEnabled: true
+ serial: string
+ stickyMacAllowList:
+ - 34:56:fe:ce:8e:b0
+ - 34:56:fe:ce:8e:b1
+ stickyMacAllowListLimit: 5
+ stormControlEnabled: true
+ stpGuard: disabled
+ tags:
+ - tag1
+ - tag2
+ type: access
+ udld: Alert only
+ vlan: 10
+ voiceVlan: 20
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "portId": "string",
+ "name": "string",
+ "tags": [
+ "string"
+ ],
+ "enabled": true,
+ "poeEnabled": true,
+ "type": "string",
+ "vlan": 0,
+ "voiceVlan": 0,
+ "allowedVlans": "string",
+ "isolationEnabled": true,
+ "rstpEnabled": true,
+ "stpGuard": "string",
+ "linkNegotiation": "string",
+ "linkNegotiationCapabilities": [
+ "string"
+ ],
+ "portScheduleId": "string",
+ "udld": "string",
+ "accessPolicyType": "string",
+ "accessPolicyNumber": 0,
+ "macAllowList": [
+ "string"
+ ],
+ "stickyMacAllowList": [
+ "string"
+ ],
+ "stickyMacAllowListLimit": 0,
+ "stormControlEnabled": true,
+ "adaptivePolicyGroupId": "string",
+ "peerSgtCapable": true,
+ "flexibleStackingEnabled": true,
+ "daiTrusted": true,
+ "profile": {
+ "enabled": true,
+ "id": "string",
+ "iname": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_cycle.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_cycle.py
new file mode 100644
index 000000000..a408ad69f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_cycle.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_ports_cycle
+short_description: Resource module for devices _switch _ports _cycle
+description:
+- Manage operation create of the resource devices _switch _ports _cycle.
+- Cycle a set of switch ports.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ports:
+ description: List of switch ports.
+ elements: str
+ type: list
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices cycleDeviceSwitchPorts
+ description: Complete reference of the cycleDeviceSwitchPorts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!cycle-device-switch-ports
+notes:
+ - SDK Method used are
+ devices.Devices.cycle_device_switch_ports,
+
+ - Paths used are
+ post /devices/{serial}/switch/ports/cycle,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_switch_ports_cycle:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ ports:
+ - '1'
+ - 2-5
+ - 1_MA-MOD-8X10G_1
+ - 1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "ports": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_info.py
new file mode 100644
index 000000000..668e18e12
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_info.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_ports_info
+short_description: Information module for devices _switch _ports
+description:
+- Get devices _switch _ports by id.
+- Return a switch port.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ portId:
+ description:
+ - PortId path parameter. Port ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSwitchPort
+ description: Complete reference of the getDeviceSwitchPort API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-port
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_switch_port,
+
+ - Paths used are
+ get /devices/{serial}/switch/ports/{portId},
+"""
+
+EXAMPLES = r"""
+- name: Get devices _switch _ports by id
+ cisco.meraki.devices_switch_ports_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ portId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "portId": "string",
+ "name": "string",
+ "tags": [
+ "string"
+ ],
+ "enabled": true,
+ "poeEnabled": true,
+ "type": "string",
+ "vlan": 0,
+ "voiceVlan": 0,
+ "allowedVlans": "string",
+ "isolationEnabled": true,
+ "rstpEnabled": true,
+ "stpGuard": "string",
+ "linkNegotiation": "string",
+ "linkNegotiationCapabilities": [
+ "string"
+ ],
+ "portScheduleId": "string",
+ "udld": "string",
+ "accessPolicyType": "string",
+ "accessPolicyNumber": 0,
+ "macAllowList": [
+ "string"
+ ],
+ "stickyMacAllowList": [
+ "string"
+ ],
+ "stickyMacAllowListLimit": 0,
+ "stormControlEnabled": true,
+ "adaptivePolicyGroupId": "string",
+ "peerSgtCapable": true,
+ "flexibleStackingEnabled": true,
+ "daiTrusted": true,
+ "profile": {
+ "enabled": true,
+ "id": "string",
+ "iname": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_statuses_info.py
new file mode 100644
index 000000000..3d3c7964b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_ports_statuses_info.py
@@ -0,0 +1,150 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_ports_statuses_info
+short_description: Information module for devices _switch _ports _statuses
+description:
+- Get all devices _switch _ports _statuses.
+- Return the status for all the ports of a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is
+ 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSwitchPortsStatuses
+ description: Complete reference of the getDeviceSwitchPortsStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-ports-statuses
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_switch_ports_statuses,
+
+ - Paths used are
+ get /devices/{serial}/switch/ports/statuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _switch _ports _statuses
+ cisco.meraki.devices_switch_ports_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ timespan: 0
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "portId": "string",
+ "enabled": true,
+ "status": "string",
+ "isUplink": true,
+ "errors": [
+ "string"
+ ],
+ "warnings": [
+ "string"
+ ],
+ "speed": "string",
+ "duplex": "string",
+ "usageInKb": {
+ "total": 0,
+ "sent": 0,
+ "recv": 0
+ },
+ "cdp": {
+ "systemName": "string",
+ "platform": "string",
+ "deviceId": "string",
+ "portId": "string",
+ "nativeVlan": 0,
+ "address": "string",
+ "managementAddress": "string",
+ "version": "string",
+ "vtpManagementDomain": "string",
+ "capabilities": "string"
+ },
+ "lldp": {
+ "systemName": "string",
+ "systemDescription": "string",
+ "chassisId": "string",
+ "portId": "string",
+ "managementVlan": 0,
+ "portVlan": 0,
+ "managementAddress": "string",
+ "portDescription": "string",
+ "systemCapabilities": "string"
+ },
+ "clientCount": 0,
+ "powerUsageInWh": 0,
+ "trafficInKbps": {
+ "total": 0,
+ "sent": 0,
+ "recv": 0
+ },
+ "securePort": {
+ "enabled": true,
+ "active": true,
+ "authenticationStatus": "string",
+ "configOverrides": {
+ "type": "string",
+ "vlan": 0,
+ "voiceVlan": 0,
+ "allowedVlans": "string"
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces.py
new file mode 100644
index 000000000..1a9d2d174
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces.py
@@ -0,0 +1,274 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_routing_interfaces
+short_description: Resource module for devices _switch _routing _interfaces
+description:
+- Manage operations create, update and delete of the resource devices _switch _routing _interfaces.
+- Create a layer 3 interface for a switch.
+- Delete a layer 3 interface from the switch.
+- Update a layer 3 interface for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ defaultGateway:
+ description: The next hop for any traffic that isn't going to a directly connected
+ subnet or over a static route. This IP address must exist in a subnet with a routed
+ interface. Required if this is the first IPv4 interface.
+ type: str
+ interfaceId:
+ description: InterfaceId path parameter. Interface ID.
+ type: str
+ interfaceIp:
+ description: The IP address this switch will use for layer 3 routing on this VLAN
+ or subnet. This cannot be the same as the switch's management IP.
+ type: str
+ ipv6:
+ description: The IPv6 settings of the interface.
+ suboptions:
+ address:
+ description: The IPv6 address of the interface. Required if assignmentMode is
+ 'static'. Must not be included if assignmentMode is 'eui-64'.
+ type: str
+ assignmentMode:
+ description: The IPv6 assignment mode for the interface. Can be either 'eui-64'
+ or 'static'.
+ type: str
+ gateway:
+ description: The IPv6 default gateway of the interface. Required if prefix is
+ defined and this is the first interface with IPv6 configured for the switch.
+ type: str
+ prefix:
+ description: The IPv6 prefix of the interface. Required if IPv6 object is included.
+ type: str
+ type: dict
+ multicastRouting:
+ description: Enable multicast support if, multicast routing between VLANs is required.
+ Options are 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'.
+ type: str
+ name:
+ description: A friendly name or description for the interface or VLAN.
+ type: str
+ ospfSettings:
+ description: The OSPF routing settings of the interface.
+ suboptions:
+ area:
+ description: The OSPF area to which this interface should belong. Can be either
+ 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'.
+ type: str
+ cost:
+ description: The path cost for this interface. Defaults to 1, but can be increased
+ up to 65535 to give lower priority.
+ type: int
+ isPassiveEnabled:
+ description: When enabled, OSPF will not run on the interface, but the subnet
+ will still be advertised.
+ type: bool
+ type: dict
+ ospfV3:
+ description: The OSPFv3 routing settings of the interface.
+ suboptions:
+ area:
+ description: The OSPFv3 area to which this interface should belong. Can be either
+ 'disabled' or the identifier of an existing OSPFv3 area. Defaults to 'disabled'.
+ type: str
+ cost:
+ description: The path cost for this interface. Defaults to 1, but can be increased
+ up to 65535 to give lower priority.
+ type: int
+ isPassiveEnabled:
+ description: When enabled, OSPFv3 will not run on the interface, but the subnet
+ will still be advertised.
+ type: bool
+ type: dict
+ serial:
+ description: Serial path parameter.
+ type: str
+ subnet:
+ description: The network that this routed interface is on, in CIDR notation (ex.
+ 10.1.1.0/24).
+ type: str
+ vlanId:
+ description: The VLAN this routed interface is on. VLAN must be between 1 and 4094.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices createDeviceSwitchRoutingInterface
+ description: Complete reference of the createDeviceSwitchRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-device-switch-routing-interface
+- name: Cisco Meraki documentation for devices deleteDeviceSwitchRoutingInterface
+ description: Complete reference of the deleteDeviceSwitchRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-device-switch-routing-interface
+- name: Cisco Meraki documentation for devices updateDeviceSwitchRoutingInterface
+ description: Complete reference of the updateDeviceSwitchRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-switch-routing-interface
+notes:
+ - SDK Method used are
+ devices.Devices.create_device_switch_routing_interface,
+ devices.Devices.delete_device_switch_routing_interface,
+ devices.Devices.update_device_switch_routing_interface,
+
+ - Paths used are
+ post /devices/{serial}/switch/routing/interfaces,
+ delete /devices/{serial}/switch/routing/interfaces/{interfaceId},
+ put /devices/{serial}/switch/routing/interfaces/{interfaceId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_switch_routing_interfaces:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultGateway: 192.168.1.1
+ interfaceIp: 192.168.1.2
+ ipv6:
+ address: 1:2:3:4::1
+ assignmentMode: static
+ gateway: 1:2:3:4::2
+ prefix: 1:2:3:4::/48
+ multicastRouting: disabled
+ name: L3 interface
+ ospfSettings:
+ area: '0'
+ cost: 1
+ isPassiveEnabled: true
+ ospfV3:
+ area: '1'
+ cost: 2
+ isPassiveEnabled: true
+ serial: string
+ subnet: 192.168.1.0/24
+ vlanId: 100
+
+- name: Update by id
+ cisco.meraki.devices_switch_routing_interfaces:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultGateway: 192.168.1.1
+ interfaceId: string
+ interfaceIp: 192.168.1.2
+ ipv6:
+ address: 1:2:3:4::1
+ assignmentMode: static
+ gateway: 1:2:3:4::2
+ prefix: 1:2:3:4::/48
+ multicastRouting: disabled
+ name: L3 interface
+ ospfSettings:
+ area: '0'
+ cost: 1
+ isPassiveEnabled: true
+ ospfV3:
+ area: '1'
+ cost: 2
+ isPassiveEnabled: true
+ serial: string
+ subnet: 192.168.1.0/24
+ vlanId: 100
+
+- name: Delete by id
+ cisco.meraki.devices_switch_routing_interfaces:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ interfaceId: string
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "interfaceId": "string",
+ "name": "string",
+ "subnet": "string",
+ "interfaceIp": "string",
+ "multicastRouting": "string",
+ "vlanId": 0,
+ "defaultGateway": "string",
+ "ospfSettings": {
+ "area": "string",
+ "cost": 0,
+ "isPassiveEnabled": true
+ },
+ "ospfV3": {
+ "area": "string",
+ "cost": 0,
+ "isPassiveEnabled": true
+ },
+ "ipv6": {
+ "assignmentMode": "string",
+ "address": "string",
+ "prefix": "string",
+ "gateway": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp.py
new file mode 100644
index 000000000..84500631d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp.py
@@ -0,0 +1,174 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_routing_interfaces_dhcp
+short_description: Resource module for devices _switch _routing _interfaces _dhcp
+description:
+- Manage operation update of the resource devices _switch _routing _interfaces _dhcp.
+- Update a layer 3 interface DHCP configuration for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ bootFileName:
+ description: The PXE boot server filename for the DHCP server running on the switch
+ interface.
+ type: str
+ bootNextServer:
+ description: The PXE boot server IP for the DHCP server running on the switch interface.
+ type: str
+ bootOptionsEnabled:
+ description: Enable DHCP boot options to provide PXE boot options configs for the
+ dhcp server running on the switch interface.
+ type: bool
+ dhcpLeaseTime:
+ description: The DHCP lease time config for the dhcp server running on switch interface
+ ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week').
+ type: str
+ dhcpMode:
+ description: The DHCP mode options for the switch interface ('dhcpDisabled', 'dhcpRelay'
+ or 'dhcpServer').
+ type: str
+ dhcpOptions:
+ description: Array of DHCP options consisting of code, type and value for the DHCP
+ server running on the switch interface.
+ elements: dict
+ suboptions:
+ code:
+ description: The code for DHCP option which should be from 2 to 254.
+ type: str
+ type:
+ description: The type of the DHCP option which should be one of ('text', 'ip',
+ 'integer' or 'hex').
+ type: str
+ value:
+ description: The value of the DHCP option.
+ type: str
+ type: list
+ dhcpRelayServerIps:
+ description: The DHCP relay server IPs to which DHCP packets would get relayed for
+ the switch interface.
+ elements: str
+ type: list
+ dnsCustomNameservers:
+ description: The DHCP name server IPs when DHCP name server option is 'custom'.
+ elements: str
+ type: list
+ dnsNameserversOption:
+ description: The DHCP name server option for the dhcp server running on the switch
+ interface ('googlePublicDns', 'openDns' or 'custom').
+ type: str
+ fixedIpAssignments:
+ description: Array of DHCP fixed IP assignments for the DHCP server running on the
+ switch interface.
+ elements: dict
+ suboptions:
+ ip:
+ description: The IP address of the client which has fixed IP address assigned
+ to it.
+ type: str
+ mac:
+ description: The MAC address of the client which has fixed IP address.
+ type: str
+ name:
+ description: The name of the client which has fixed IP address.
+ type: str
+ type: list
+ interfaceId:
+ description: InterfaceId path parameter. Interface ID.
+ type: str
+ reservedIpRanges:
+ description: Array of DHCP reserved IP assignments for the DHCP server running on
+ the switch interface.
+ elements: dict
+ suboptions:
+ comment:
+ description: The comment for the reserved IP range.
+ type: str
+ end:
+ description: The ending IP address of the reserved IP range.
+ type: str
+ start:
+ description: The starting IP address of the reserved IP range.
+ type: str
+ type: list
+ serial:
+ description: Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceSwitchRoutingInterfaceDhcp
+ description: Complete reference of the updateDeviceSwitchRoutingInterfaceDhcp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-switch-routing-interface-dhcp
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_switch_routing_interface_dhcp,
+
+ - Paths used are
+ put /devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_switch_routing_interfaces_dhcp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bootFileName: home_boot_file
+ bootNextServer: 1.2.3.4
+ bootOptionsEnabled: true
+ dhcpLeaseTime: 1 day
+ dhcpMode: dhcpServer
+ dhcpOptions:
+ - code: '5'
+ type: text
+ value: five
+ dnsCustomNameservers:
+ - 8.8.8.8, 8.8.4.4
+ dnsNameserversOption: custom
+ fixedIpAssignments:
+ - ip: 192.168.1.12
+ mac: 22:33:44:55:66:77
+ name: Cisco Meraki valued client
+ interfaceId: string
+ reservedIpRanges:
+ - comment: A reserved IP range
+ end: 192.168.1.10
+ start: 192.168.1.1
+ serial: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp_info.py
new file mode 100644
index 000000000..12f0758e5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_dhcp_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_routing_interfaces_dhcp_info
+short_description: Information module for devices _switch _routing _interfaces _dhcp
+description:
+- Get all devices _switch _routing _interfaces _dhcp.
+- Return a layer 3 interface DHCP configuration for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ interfaceId:
+ description:
+ - InterfaceId path parameter. Interface ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSwitchRoutingInterfaceDhcp
+ description: Complete reference of the getDeviceSwitchRoutingInterfaceDhcp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-routing-interface-dhcp
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_switch_routing_interface_dhcp,
+
+ - Paths used are
+ get /devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _switch _routing _interfaces _dhcp
+ cisco.meraki.devices_switch_routing_interfaces_dhcp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ interfaceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_info.py
new file mode 100644
index 000000000..3797bc13c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_interfaces_info.py
@@ -0,0 +1,136 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_routing_interfaces_info
+short_description: Information module for devices _switch _routing _interfaces
+description:
+- Get all devices _switch _routing _interfaces.
+- Get devices _switch _routing _interfaces by id.
+- List layer 3 interfaces for a switch. Those for a stack may be found under switch stack routing.
+- Return a layer 3 interface for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ interfaceId:
+ description:
+ - InterfaceId path parameter. Interface ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSwitchRoutingInterface
+ description: Complete reference of the getDeviceSwitchRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-routing-interface
+- name: Cisco Meraki documentation for devices getDeviceSwitchRoutingInterfaces
+ description: Complete reference of the getDeviceSwitchRoutingInterfaces API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-routing-interfaces
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_switch_routing_interface,
+ devices.Devices.get_device_switch_routing_interfaces,
+
+ - Paths used are
+ get /devices/{serial}/switch/routing/interfaces,
+ get /devices/{serial}/switch/routing/interfaces/{interfaceId},
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _switch _routing _interfaces
+ cisco.meraki.devices_switch_routing_interfaces_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+- name: Get devices _switch _routing _interfaces by id
+ cisco.meraki.devices_switch_routing_interfaces_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ interfaceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "interfaceId": "string",
+ "name": "string",
+ "subnet": "string",
+ "interfaceIp": "string",
+ "multicastRouting": "string",
+ "vlanId": 0,
+ "defaultGateway": "string",
+ "ospfSettings": {
+ "area": "string",
+ "cost": 0,
+ "isPassiveEnabled": true
+ },
+ "ospfV3": {
+ "area": "string",
+ "cost": 0,
+ "isPassiveEnabled": true
+ },
+ "ipv6": {
+ "assignmentMode": "string",
+ "address": "string",
+ "prefix": "string",
+ "gateway": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes.py
new file mode 100644
index 000000000..88642d475
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes.py
@@ -0,0 +1,165 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_routing_static_routes
+short_description: Resource module for devices _switch _routing _staticroutes
+description:
+- Manage operations create, update and delete of the resource devices _switch _routing _staticroutes.
+- Create a layer 3 static route for a switch.
+- Delete a layer 3 static route for a switch.
+- Update a layer 3 static route for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ advertiseViaOspfEnabled:
+ description: Option to advertise static route via OSPF.
+ type: bool
+ name:
+ description: Name or description for layer 3 static route.
+ type: str
+ nextHopIp:
+ description: IP address of the next hop device to which the device sends its traffic
+ for the subnet.
+ type: str
+ preferOverOspfRoutesEnabled:
+ description: Option to prefer static route over OSPF routes.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+ staticRouteId:
+ description: StaticRouteId path parameter. Static route ID.
+ type: str
+ subnet:
+ description: The subnet which is routed via this static route and should be specified
+ in CIDR notation (ex. 1.2.3.0/24).
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices createDeviceSwitchRoutingStaticRoute
+ description: Complete reference of the createDeviceSwitchRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-device-switch-routing-static-route
+- name: Cisco Meraki documentation for devices deleteDeviceSwitchRoutingStaticRoute
+ description: Complete reference of the deleteDeviceSwitchRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-device-switch-routing-static-route
+- name: Cisco Meraki documentation for devices updateDeviceSwitchRoutingStaticRoute
+ description: Complete reference of the updateDeviceSwitchRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-switch-routing-static-route
+notes:
+ - SDK Method used are
+ devices.Devices.create_device_switch_routing_static_route,
+ devices.Devices.delete_device_switch_routing_static_route,
+ devices.Devices.update_device_switch_routing_static_route,
+
+ - Paths used are
+ post /devices/{serial}/switch/routing/staticRoutes,
+ delete /devices/{serial}/switch/routing/staticRoutes/{staticRouteId},
+ put /devices/{serial}/switch/routing/staticRoutes/{staticRouteId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.devices_switch_routing_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ advertiseViaOspfEnabled: false
+ name: My route
+ nextHopIp: 1.2.3.4
+ preferOverOspfRoutesEnabled: false
+ serial: string
+ subnet: 192.168.1.0/24
+
+- name: Update by id
+ cisco.meraki.devices_switch_routing_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ advertiseViaOspfEnabled: false
+ name: My route
+ nextHopIp: 1.2.3.4
+ preferOverOspfRoutesEnabled: false
+ serial: string
+ staticRouteId: string
+ subnet: 192.168.1.0/24
+
+- name: Delete by id
+ cisco.meraki.devices_switch_routing_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ serial: string
+ staticRouteId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes_info.py
new file mode 100644
index 000000000..2473a8989
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_routing_static_routes_info.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_routing_static_routes_info
+short_description: Information module for devices _switch _routing _staticroutes
+description:
+- Get all devices _switch _routing _staticroutes.
+- Get devices _switch _routing _staticroutes by id.
+- List layer 3 static routes for a switch.
+- Return a layer 3 static route for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ staticRouteId:
+ description:
+ - StaticRouteId path parameter. Static route ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSwitchRoutingStaticRoute
+ description: Complete reference of the getDeviceSwitchRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-routing-static-route
+- name: Cisco Meraki documentation for devices getDeviceSwitchRoutingStaticRoutes
+ description: Complete reference of the getDeviceSwitchRoutingStaticRoutes API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-routing-static-routes
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_switch_routing_static_route,
+ devices.Devices.get_device_switch_routing_static_routes,
+
+ - Paths used are
+ get /devices/{serial}/switch/routing/staticRoutes,
+ get /devices/{serial}/switch/routing/staticRoutes/{staticRouteId},
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _switch _routing _staticroutes
+ cisco.meraki.devices_switch_routing_static_routes_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+- name: Get devices _switch _routing _staticroutes by id
+ cisco.meraki.devices_switch_routing_static_routes_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ staticRouteId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "staticRouteId": "string",
+ "name": "string",
+ "subnet": "string",
+ "nextHopIp": "string",
+ "advertiseViaOspfEnabled": true,
+ "preferOverOspfRoutesEnabled": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare.py
new file mode 100644
index 000000000..6fd5890f5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_warm_spare
+short_description: Resource module for devices _switch _warmspare
+description:
+- Manage operation update of the resource devices _switch _warmspare.
+- >
+ Update warm spare configuration for a switch. The spare will use the same L3 configuration as the primary. Note
+ that this will irreversibly destroy any existing L3 configuration on the spare.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: Enable or disable warm spare for a switch.
+ type: bool
+ serial:
+ description: Serial path parameter.
+ type: str
+ spareSerial:
+ description: Serial number of the warm spare switch.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceSwitchWarmSpare
+ description: Complete reference of the updateDeviceSwitchWarmSpare API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-switch-warm-spare
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_switch_warm_spare,
+
+ - Paths used are
+ put /devices/{serial}/switch/warmSpare,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_switch_warm_spare:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ serial: string
+ spareSerial: Q234-ABCD-0002
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare_info.py
new file mode 100644
index 000000000..b3f525c38
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_switch_warm_spare_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_switch_warm_spare_info
+short_description: Information module for devices _switch _warmspare
+description:
+- Get all devices _switch _warmspare.
+- Return warm spare configuration for a switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceSwitchWarmSpare
+ description: Complete reference of the getDeviceSwitchWarmSpare API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-warm-spare
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_switch_warm_spare,
+
+ - Paths used are
+ get /devices/{serial}/switch/warmSpare,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _switch _warmspare
+ cisco.meraki.devices_switch_warm_spare_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings.py
new file mode 100644
index 000000000..c30f4f45a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings.py
@@ -0,0 +1,90 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_bluetooth_settings
+short_description: Resource module for devices _wireless _bluetooth _settings
+description:
+- Manage operation update of the resource devices _wireless _bluetooth _settings.
+- Update the bluetooth settings for a wireless device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ major:
+ description: Desired major value of the beacon. If the value is set to null it will
+ reset to Dashboard's automatically generated value.
+ type: int
+ minor:
+ description: Desired minor value of the beacon. If the value is set to null it will
+ reset to Dashboard's automatically generated value.
+ type: int
+ serial:
+ description: Serial path parameter.
+ type: str
+ uuid:
+ description: Desired UUID of the beacon. If the value is set to null it will reset
+ to Dashboard's automatically generated value.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceWirelessBluetoothSettings
+ description: Complete reference of the updateDeviceWirelessBluetoothSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-wireless-bluetooth-settings
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_wireless_bluetooth_settings,
+
+ - Paths used are
+ put /devices/{serial}/wireless/bluetooth/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_wireless_bluetooth_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ major: 13
+ minor: 125
+ serial: string
+ uuid: 00000000-0000-0000-000-000000000000
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "uuid": "string",
+ "major": 0,
+ "minor": 0
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings_info.py
new file mode 100644
index 000000000..ee2d74bbb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_bluetooth_settings_info.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_bluetooth_settings_info
+short_description: Information module for devices _wireless _bluetooth _settings
+description:
+- Get all devices _wireless _bluetooth _settings.
+- Return the bluetooth settings for a wireless device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceWirelessBluetoothSettings
+ description: Complete reference of the getDeviceWirelessBluetoothSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-wireless-bluetooth-settings
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_wireless_bluetooth_settings,
+
+ - Paths used are
+ get /devices/{serial}/wireless/bluetooth/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _wireless _bluetooth _settings
+ cisco.meraki.devices_wireless_bluetooth_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "uuid": "string",
+ "major": 0,
+ "minor": 0
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_connection_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_connection_stats_info.py
new file mode 100644
index 000000000..a580e3ed8
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_connection_stats_info.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_connection_stats_info
+short_description: Information module for devices _wireless _connectionstats
+description:
+- Get all devices _wireless _connectionstats.
+- Aggregated connectivity info for a given AP on this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getDeviceWirelessConnectionStats
+ description: Complete reference of the getDeviceWirelessConnectionStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-wireless-connection-stats
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_device_wireless_connection_stats,
+
+ - Paths used are
+ get /devices/{serial}/wireless/connectionStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _wireless _connectionstats
+ cisco.meraki.devices_wireless_connection_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "serial": "string",
+ "connectionStats": {
+ "assoc": 0,
+ "auth": 0,
+ "dhcp": 0,
+ "dns": 0,
+ "success": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_latency_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_latency_stats_info.py
new file mode 100644
index 000000000..6689b3cc5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_latency_stats_info.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_latency_stats_info
+short_description: Information module for devices _wireless _latencystats
+description:
+- Get all devices _wireless _latencystats.
+- Aggregated latency info for a given AP on this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+ fields:
+ description:
+ - >
+ Fields query parameter. Partial selection If present, this call will return only the selected fields of
+ "rawDistribution", "avg". All fields will be returned by default. Selected fields must be entered as a comma
+ separated string.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceWirelessLatencyStats
+ description: Complete reference of the getDeviceWirelessLatencyStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-wireless-latency-stats
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_wireless_latency_stats,
+
+ - Paths used are
+ get /devices/{serial}/wireless/latencyStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _wireless _latencystats
+ cisco.meraki.devices_wireless_latency_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ fields: string
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings.py
new file mode 100644
index 000000000..fd4e1ce3b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings.py
@@ -0,0 +1,116 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_radio_settings
+short_description: Resource module for devices _wireless _radio _settings
+description:
+- Manage operation update of the resource devices _wireless _radio _settings.
+- Update the radio settings of a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ fiveGhzSettings:
+ description: Manual radio settings for 5 GHz.
+ suboptions:
+ channel:
+ description: Sets a manual channel for 5 GHz. Can be '36', '40', '44', '48',
+ '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128',
+ '132', '136', '140', '144', '149', '153', '157', '161', '165', '169', '173'
+ or '177' or null for using auto channel.
+ type: int
+ channelWidth:
+ description: Sets a manual channel for 5 GHz. Can be '0', '20', '40', '80' or
+ '160' or null for using auto channel width.
+ type: int
+ targetPower:
+ description: Set a manual target power for 5 GHz. Can be between '8' or '30'
+ or null for using auto power range.
+ type: int
+ type: dict
+ rfProfileId:
+ description: The ID of an RF profile to assign to the device. If the value of this
+ parameter is null, the appropriate basic RF profile (indoor or outdoor) will be
+ assigned to the device. Assigning an RF profile will clear ALL manually configured
+ overrides on the device (channel width, channel, power).
+ type: str
+ serial:
+ description: Serial path parameter.
+ type: str
+ twoFourGhzSettings:
+ description: Manual radio settings for 2.4 GHz.
+ suboptions:
+ channel:
+ description: Sets a manual channel for 2.4 GHz. Can be '1', '2', '3', '4', '5',
+ '6', '7', '8', '9', '10', '11', '12', '13' or '14' or null for using auto
+ channel.
+ type: int
+ targetPower:
+ description: Set a manual target power for 2.4 GHz. Can be between '5' or '30'
+ or null for using auto power range.
+ type: int
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices updateDeviceWirelessRadioSettings
+ description: Complete reference of the updateDeviceWirelessRadioSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-device-wireless-radio-settings
+notes:
+ - SDK Method used are
+ devices.Devices.update_device_wireless_radio_settings,
+
+ - Paths used are
+ put /devices/{serial}/wireless/radio/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.devices_wireless_radio_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ fiveGhzSettings:
+ channel: 149
+ channelWidth: 20
+ targetPower: 15
+ rfProfileId: '1234'
+ serial: string
+ twoFourGhzSettings:
+ channel: 11
+ targetPower: 21
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings_info.py
new file mode 100644
index 000000000..b672510c2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_radio_settings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_radio_settings_info
+short_description: Information module for devices _wireless _radio _settings
+description:
+- Get all devices _wireless _radio _settings.
+- Return the radio settings of a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceWirelessRadioSettings
+ description: Complete reference of the getDeviceWirelessRadioSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-wireless-radio-settings
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_wireless_radio_settings,
+
+ - Paths used are
+ get /devices/{serial}/wireless/radio/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _wireless _radio _settings
+ cisco.meraki.devices_wireless_radio_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_status_info.py b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_status_info.py
new file mode 100644
index 000000000..196815d81
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/devices_wireless_status_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: devices_wireless_status_info
+short_description: Information module for devices _wireless _status
+description:
+- Get all devices _wireless _status.
+- Return the SSID statuses of an access point.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for devices getDeviceWirelessStatus
+ description: Complete reference of the getDeviceWirelessStatus API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-device-wireless-status
+notes:
+ - SDK Method used are
+ devices.Devices.get_device_wireless_status,
+
+ - Paths used are
+ get /devices/{serial}/wireless/status,
+"""
+
+EXAMPLES = r"""
+- name: Get all devices _wireless _status
+ cisco.meraki.devices_wireless_status_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_action_batch.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_action_batch.py
index 3e0bed937..8c7b47a14 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_action_batch.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_action_batch.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -22,6 +22,10 @@ description:
- Allows for management of Action Batch jobs for Meraki.
notes:
- This module is in active development and the interface may change.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations_action_batches
options:
state:
description:
@@ -210,7 +214,6 @@ data:
"""
from ansible.module_utils.basic import AnsibleModule, json
-from ansible.module_utils.common.dict_transformations import snake_dict_to_camel_dict
from ansible_collections.cisco.meraki.plugins.module_utils.network.meraki.meraki import (
MerakiModule,
meraki_argument_spec,
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_admin.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_admin.py
index e554bb009..80199b7e4 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_admin.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_admin.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Manage administrators in the Meraki cloud
version_added: '1.0.0'
description:
- Allows for creation, management, and visibility into administrators within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations_admins
options:
name:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_alert.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_alert.py
index e9dfe0f12..8b9031b2d 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_alert.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_alert.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -21,6 +21,10 @@ version_added: "2.1.0"
short_description: Manage alerts in the Meraki cloud
description:
- Allows for creation, management, and visibility into alert settings within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_alerts_settings
options:
state:
description:
@@ -223,7 +227,6 @@ data:
returned: success
"""
-import copy
from ansible.module_utils.basic import AnsibleModule, json
from ansible_collections.cisco.meraki.plugins.module_utils.network.meraki.meraki import (
MerakiModule,
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_config_template.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_config_template.py
index 8438d41b2..bb6ae2289 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_config_template.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_config_template.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -24,6 +24,10 @@ notes:
- Module is not idempotent as the Meraki API is limited in what information it provides about configuration templates.
- Meraki's API does not support creating new configuration templates.
- To use the configuration template, simply pass its ID via C(net_id) parameters in Meraki modules.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations_config_templates
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_device.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_device.py
index 2152e4949..8da204992 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_device.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_device.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -23,6 +23,10 @@ notes:
- This module does not support claiming of devices or licenses into a Meraki organization.
- More information about the Meraki API can be found at U(https://dashboard.meraki.com/api_docs).
- Some of the options are likely only used for developers within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_devices_claim, cisco.meraki.networks_devices_remove and cisco.meraki.networks
options:
state:
description:
@@ -292,12 +296,12 @@ def main():
query_urls = {'device': '/networks/{net_id}/devices'}
query_org_urls = {'device': '/organizations/{org_id}/devices'}
- query_device_urls = {'device': '/networks/{net_id}/devices/{serial}'}
+ query_device_urls = {'device': '/devices/{serial}'}
query_device_lldp_urls = {'device': '/devices/{serial}/lldpCdp'}
claim_device_urls = {'device': '/networks/{net_id}/devices/claim'}
bind_org_urls = {'device': '/organizations/{org_id}/claim'}
- update_device_urls = {'device': '/networks/{net_id}/devices/'}
- delete_device_urls = {'device': '/networks/{net_id}/devices/{serial}/remove'}
+ update_device_urls = {'device': '/devices/{serial}'}
+ delete_device_urls = {'device': '/networks/{net_id}/devices/remove'}
meraki.url_catalog['get_all'].update(query_urls)
meraki.url_catalog['get_all_org'] = query_org_urls
@@ -395,7 +399,7 @@ def main():
device_data = meraki.request(query_path, method='GET')
ignore_keys = ['lanIp', 'serial', 'mac', 'model', 'networkId', 'moveMapMarker', 'wan1Ip', 'wan2Ip']
if meraki.is_update_required(device_data, payload, optional_ignore=ignore_keys):
- path = meraki.construct_path('update', net_id=net_id) + meraki.params['serial']
+ path = meraki.construct_path('update', custom={'serial': meraki.params['serial']})
updated_device = []
updated_device.append(meraki.request(path, method='PUT', payload=json.dumps(payload)))
meraki.result['data'] = updated_device
@@ -418,8 +422,9 @@ def main():
query_path = meraki.construct_path('get_all', net_id=net_id)
device_list = meraki.request(query_path, method='GET')
if is_device_valid(meraki, meraki.params['serial'], device_list) is True:
- path = meraki.construct_path('delete', net_id=net_id, custom={'serial': meraki.params['serial']})
- request = meraki.request(path, method='POST')
+ payload = {'serial': meraki.params['serial']}
+ path = meraki.construct_path('delete', net_id=net_id)
+ request = meraki.request(path, method='POST', payload=json.dumps(payload))
meraki.result['changed'] = True
# in the event of a successful module execution, you will want to
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_firewalled_services.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_firewalled_services.py
index ec78c068b..021da2bb5 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_firewalled_services.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_firewalled_services.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Edit firewall policies for administrative network services
description:
- Allows for setting policy firewalled services for Meraki network devices.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_firewall_firewalled_services
options:
auth_key:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_management_interface.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_management_interface.py
index c02978611..17b164208 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_management_interface.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_management_interface.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -23,6 +23,10 @@ description:
notes:
- C(WAN2) parameter is only valid for MX appliances.
- C(wan_enabled) should not be provided for non-MX devies.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.devices_management_interface
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l3_firewall.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l3_firewall.py
index d2a70052a..85d9f9334 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l3_firewall.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l3_firewall.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Manage MR access point layer 3 firewalls in the Meraki cloud
description:
- Allows for creation, management, and visibility into layer 3 firewalls implemented on Meraki MR access points.
- Module is not idempotent as of current release.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_firewall_l3_firewall_rules
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l7_firewall.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l7_firewall.py
index a9584091f..8300dd362 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l7_firewall.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_l7_firewall.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -22,6 +22,10 @@ description:
- Allows for creation, management, and visibility into layer 7 firewalls implemented on Meraki MR access points.
- Module assumes a complete list of firewall rules are passed as a parameter.
- If there is interest in this module allowing manipulation of a single firewall rule, please submit an issue against this module.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_firewall_l7_firewall_rules
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_radio.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_radio.py
index c61f1e225..d3a55ca41 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_radio.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_radio.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_mr_radio
short_description: Manage device radio settings for Meraki wireless networks
description:
- Allows for configuration of radio settings in Meraki MR wireless networks.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.devices_wireless_radio_settings
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_rf_profile.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_rf_profile.py
index cd8d9c41e..13db54c28 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_rf_profile.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_rf_profile.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -19,6 +19,10 @@ module: meraki_mr_rf_profile
short_description: Manage RF profiles for Meraki wireless networks
description:
- Allows for configuration of radio frequency (RF) profiles in Meraki MR wireless networks.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_wireless_rf_profiles
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_settings.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_settings.py
index 7858c208c..e6bc25ae9 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_settings.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_settings.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -19,6 +19,10 @@ module: meraki_mr_settings
short_description: Manage general settings for Meraki wireless networks
description:
- Allows for configuration of general settings in Meraki MR wireless networks.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_wireless_settings
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_ssid.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_ssid.py
index f6c242e0d..90ba50f09 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_ssid.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mr_ssid.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -22,6 +22,10 @@ description:
- Allows for management of SSIDs in a Meraki wireless environment.
notes:
- Deleting an SSID does not delete RADIUS servers.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_wireless_ssids
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_list.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_list.py
index bd5e9205f..30de5ac02 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_list.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_list.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -22,6 +22,10 @@ description:
- Configure and query information about access lists on Meraki switches within the Meraki cloud.
notes:
- Some of the options are likely only used for developers within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_access_control_lists
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_policies.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_policies.py
index ebf35c35a..285a36ffd 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_policies.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_access_policies.py
@@ -11,7 +11,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ DOCUMENTATION = r"""
module: meraki_ms_access_policies
short_description: Manage Switch Access Policies in the Meraki cloud
description: Module for managing a Switch Access Policies in the Meraki cloud
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_access_policies
options:
state:
description:
@@ -288,7 +292,6 @@ data:
"""
from ansible.module_utils.basic import AnsibleModule, json
-from ansible.module_utils.common.dict_transformations import recursive_diff
from ansible_collections.cisco.meraki.plugins.module_utils.network.meraki.meraki import (
MerakiModule,
meraki_argument_spec,
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_l3_interface.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_l3_interface.py
index 716ec8d9b..fcb4f4c85 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_l3_interface.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_l3_interface.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -21,6 +21,10 @@ description:
- Allows for creation, management, and visibility into routed interfaces on Meraki MS switches.
notes:
- Once a layer 3 interface is created, the API does not allow updating the interface and specifying C(default_gateway).
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.devices_switch_routing_interfaces
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_link_aggregation.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_link_aggregation.py
index a38eda7dc..25527c3fb 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_link_aggregation.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_link_aggregation.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -22,6 +22,10 @@ description:
- Allows for management of MS switch link aggregations in a Meraki environment.
notes:
- Switch profile ports are not supported in this module.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_link_aggregations
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_ospf.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_ospf.py
index a8aaed005..26983b906 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_ospf.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_ospf.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -19,6 +19,10 @@ module: meraki_ms_ospf
short_description: Manage OSPF configuration on MS switches
description:
- Configure OSPF for compatible Meraki MS switches.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_routing_ospf
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack.py
index bbe6282ac..a5661c68b 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -22,6 +22,10 @@ description:
- Allows for modification of Meraki MS switch stacks.
notes:
- Not all actions are idempotent. Specifically, creating a new stack will error if any switch is already in a stack.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_stacks
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack_l3_interface.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack_l3_interface.py
index 46291c314..bbe848172 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack_l3_interface.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_stack_l3_interface.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -21,6 +21,10 @@ description:
- Allows for creation, management, and visibility into routed interfaces on Meraki MS switches.
notes:
- Once a layer 3 interface is created, the API does not allow updating the interface and specifying C(default_gateway).
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_stacks_routing_interfaces
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_storm_control.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_storm_control.py
index 2048ad5e9..9202c8cff 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_storm_control.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_storm_control.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Manage storm control configuration on a switch in the Meraki
version_added: "0.0.1"
description:
- Allows for management of storm control settings for Meraki MS switches.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_switch_storm_control
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_switchport.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_switchport.py
index a8048bf24..1429b79e2 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_switchport.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_ms_switchport.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_ms_switchport
short_description: Manage switchports on a switch in the Meraki cloud
description:
- Allows for management of switchports settings for Meraki MS switches.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.devices_switch_ports
options:
state:
description:
@@ -57,7 +61,17 @@ options:
description:
- Link speed for the switchport.
default: Auto negotiate
- choices: [Auto negotiate, 100 Megabit (auto), 100 Megabit full duplex (forced)]
+ choices: [1 Gigabit full duplex (auto),
+ 1 Gigabit full duplex (forced),
+ 10 Gigabit full duplex (auto),
+ 10 Gigabit full duplex (forced),
+ 100 Megabit (auto),
+ 100 Megabit full duplex (forced),
+ 2.5 Gigabit full duplex (auto),
+ 2.5 Gigabit full duplex (forced),
+ 5 Gigabit full duplex (auto),
+ 5 Gigabit full duplex (forced),
+ Auto negotiate]
type: str
name:
description:
@@ -518,9 +532,17 @@ def main():
link_negotiation=dict(
type="str",
choices=[
- "Auto negotiate",
+ "1 Gigabit full duplex (auto)",
+ "1 Gigabit full duplex (forced)",
+ "10 Gigabit full duplex (auto)",
+ "10 Gigabit full duplex (forced)",
"100 Megabit (auto)",
"100 Megabit full duplex (forced)",
+ "2.5 Gigabit full duplex (auto)",
+ "2.5 Gigabit full duplex (forced)",
+ "5 Gigabit full duplex (auto)",
+ "5 Gigabit full duplex (forced)",
+ "Auto negotiate",
],
default="Auto negotiate",
),
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_content_filtering.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_content_filtering.py
index d189a4e44..a2dfa3df1 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_content_filtering.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_content_filtering.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -19,6 +19,10 @@ module: meraki_mx_content_filtering
short_description: Edit Meraki MX content filtering policies
description:
- Allows for setting policy on content filtering.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_content_filtering
options:
auth_key:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_intrusion_prevention.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_intrusion_prevention.py
index 0acd6beaa..cd9300be7 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_intrusion_prevention.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_intrusion_prevention.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Manage intrustion prevention in the Meraki cloud
description:
- Allows for management of intrusion prevention rules networks within Meraki MX networks.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations_appliance_security_intrusion and cisco.meraki.networks_appliance_security_intrusion
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l2_interface.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l2_interface.py
index 48e48642b..c245de2fe 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l2_interface.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l2_interface.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -21,6 +21,10 @@ version_added: "2.1.0"
description:
- Allows for management and visibility of Merkai MX layer 2 ports.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_ports
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l3_firewall.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l3_firewall.py
index f8fa3f919..934046f4e 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l3_firewall.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l3_firewall.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -22,6 +22,10 @@ description:
notes:
- Module assumes a complete list of firewall rules are passed as a parameter.
- If there is interest in this module allowing manipulation of a single firewall rule, please submit an issue against this module.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_firewall_l3_firewall_rules
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l7_firewall.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l7_firewall.py
index efe4bda88..c36c283c7 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l7_firewall.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_l7_firewall.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -22,6 +22,10 @@ description:
notes:
- Module assumes a complete list of firewall rules are passed as a parameter.
- If there is interest in this module allowing manipulation of a single firewall rule, please submit an issue against this module.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_firewall_l7_firewall_rules
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_malware.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_malware.py
index 1cbf7e680..d8fd9d0e5 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_malware.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_malware.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -21,6 +21,10 @@ description:
- Fully configure malware protection in a Meraki environment.
notes:
- Some of the options are likely only used for developers within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_security_malware
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_nat.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_nat.py
index 0844d4c1f..17b75d8e9 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_nat.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_nat.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Manage NAT rules in Meraki cloud
description:
- Allows for creation, management, and visibility of NAT rules (1:1, 1:many, port forwarding) within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_firewall_one_to_many_nat_rules
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_network_vlan_settings.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_network_vlan_settings.py
index 105114e54..ba2a71d9f 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_network_vlan_settings.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_network_vlan_settings.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_mx_network_vlan_settings
short_description: Manage VLAN settings for Meraki Networks
description:
- Edits VLAN enabled status on a network within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_vlans_settings
options:
state:
description:
@@ -67,7 +71,6 @@ data:
type: bool
"""
-import copy
from ansible.module_utils.basic import AnsibleModule, json
from ansible_collections.cisco.meraki.plugins.module_utils.network.meraki.meraki import (
MerakiModule,
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_firewall.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_firewall.py
index f81ac3a3c..422f523ad 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_firewall.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_firewall.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -22,6 +22,10 @@ description:
- Allows for creation, management, and visibility into firewall rules for site-to-site VPNs implemented on Meraki MX firewalls.
notes:
- Module assumes a complete list of firewall rules are passed as a parameter.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations_appliance_vpn_vpn_firewall_rules
options:
state:
description:
@@ -199,11 +203,15 @@ def assemble_payload(meraki):
'syslog_enabled': 'syslogEnabled',
'comment': 'comment',
}
+ normalize_keys = ['dest_port', 'dest_cidr', 'src_port', 'src_cidr']
rules = []
for rule in meraki.params['rules']:
proposed_rule = dict()
for k, v in rule.items():
proposed_rule[params_map[k]] = v
+ if k in normalize_keys:
+ if v.lower() == "any":
+ proposed_rule[params_map[k]] = "Any"
rules.append(proposed_rule)
payload = {'rules': rules}
return payload
@@ -216,6 +224,18 @@ def get_rules(meraki, org_id):
return response
+def compare_rule_count(original, payload):
+ if len(original['rules']) - 1 != len(payload['rules']): # Quick and simple check to avoid more processing
+ return True
+ return False
+
+
+def compare_default_rule(original, default_rule):
+ if original['rules'][len(original['rules']) - 1]['syslogEnabled'] != default_rule:
+ return True
+ return False
+
+
def main():
# define the available arguments/parameters that a user can pass to
# the module
@@ -281,24 +301,21 @@ def main():
payload['syslogDefaultRule'] = meraki.params['syslog_default_rule']
try:
if meraki.params['rules'] is not None:
- if len(rules['rules']) - 1 != len(payload['rules']): # Quick and simple check to avoid more processing
- update = True
- if meraki.params['syslog_default_rule'] is not None:
- if rules['rules'][len(rules['rules']) - 1]['syslogEnabled'] != meraki.params['syslog_default_rule']:
- update = True
+ update = compare_rule_count(rules, payload)
+ if update is False and meraki.params['syslog_default_rule'] is not None:
+ update = compare_default_rule(rules, meraki.params['syslog_default_rule'])
if update is False:
- default_rule = rules['rules'][len(rules['rules']) - 1].copy()
- # meraki.fail_json(msg=update)
+ default_rule = rules['rules'][len(rules['rules']) - 1].copy() # Create copy of default rule
del rules['rules'][len(rules['rules']) - 1] # Remove default rule for comparison
if len(rules['rules']) - 1 == 0:
if meraki.is_update_required(rules['rules'][0], payload['rules'][0]) is True:
update = True
else:
- for r in range(len(rules) - 1):
+ for r in range(len(rules)):
if meraki.is_update_required(rules['rules'][r], payload['rules'][r]) is True:
update = True
rules['rules'].append(default_rule)
- except KeyError:
+ except IndexError:
pass
if update is True:
if meraki.check_mode is True:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_vpn.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_vpn.py
index 2c1711adc..65bd6d2e9 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_vpn.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_site_to_site_vpn.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -20,6 +20,10 @@ short_description: Manage AutoVPN connections in Meraki
version_added: "1.1.0"
description:
- Allows for creation, management, and visibility into AutoVPNs implemented on Meraki MX firewalls.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_vpn_site_to_site_vpn
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_static_route.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_static_route.py
index 51aef2656..fa906fea7 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_static_route.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_static_route.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -21,6 +21,10 @@ short_description: Manage static routes in the Meraki cloud
description:
- Allows for creation, management, and visibility into static routes within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_static_routes
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_third_party_vpn_peers.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_third_party_vpn_peers.py
index c504911c0..4bf705572 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_third_party_vpn_peers.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_third_party_vpn_peers.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_mx_third_party_vpn_peers
short_description: Manage third party (IPSec) VPN peers for MX devices
description:
- Create, edit, query, or delete third party VPN peers in a Meraki environment.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations_appliance_vpn_third_party_vpnpeers
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_uplink_bandwidth.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_uplink_bandwidth.py
index cb2ef07e5..8ea8e74be 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_uplink_bandwidth.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_uplink_bandwidth.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -23,6 +23,10 @@ description:
notes:
- Some of the options are likely only used for developers within Meraki.
- Module was formerly named M(cisco.meraki.meraki_mx_uplink).
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_traffic_shaping_uplink_bandwidth
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_vlan.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_vlan.py
index 2b6c8adc6..320352405 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_vlan.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_mx_vlan.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -23,6 +23,10 @@ notes:
- Meraki's API will return an error if VLANs aren't enabled on a network. VLANs are returned properly if VLANs are enabled on a network.
- Some of the options are likely only used for developers within Meraki.
- Meraki's API defaults to networks having VLAN support disabled and there is no way to enable VLANs support in the API. VLAN support must be enabled manually.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_appliance_vlans
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_network.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_network.py
index 84e5a2fc9..cf485c056 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_network.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_network.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_network
short_description: Manage networks in the Meraki cloud
description:
- Allows for creation, management, and visibility into networks within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_network_settings.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_network_settings.py
index 098b7729d..995bd2196 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_network_settings.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_network_settings.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_network_settings
short_description: Manage the settings of networks in the Meraki cloud
description:
- Allows for management of settings of networks within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_settings
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_organization.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_organization.py
index 45148e89a..746313de8 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_organization.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_organization.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -19,6 +19,10 @@ module: meraki_organization
short_description: Manage organizations in the Meraki cloud
description:
- Allows for creation, management, and visibility into organizations within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.organizations
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_snmp.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_snmp.py
index 0240a168b..52d4dbbbb 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_snmp.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_snmp.py
@@ -9,7 +9,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
'metadata_version': '1.1',
- 'status': ['preview'],
+ "status": ['deprecated'],
'supported_by': 'community'
}
@@ -19,6 +19,10 @@ module: meraki_snmp
short_description: Manage organizations in the Meraki cloud
description:
- Allows for management of SNMP settings for Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_snmp
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_syslog.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_syslog.py
index e94238750..656b06cac 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_syslog.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_syslog.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -23,6 +23,10 @@ description:
notes:
- Changes to existing syslog servers replaces existing configuration. If you need to add to an
existing configuration set state to query to gather the existing configuration and then modify or add.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_syslog_servers
options:
auth_key:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook.py
index 9b8ce2f67..539c56ec0 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -22,6 +22,10 @@ description:
- Configure and query information about webhooks within the Meraki cloud.
notes:
- Some of the options are likely only used for developers within Meraki.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_webhooks_http_servers
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook_payload_template.py b/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook_payload_template.py
index d7cc5a190..bcaf270fa 100644
--- a/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook_payload_template.py
+++ b/ansible_collections/cisco/meraki/plugins/modules/meraki_webhook_payload_template.py
@@ -10,7 +10,7 @@ __metaclass__ = type
ANSIBLE_METADATA = {
"metadata_version": "1.1",
- "status": ["preview"],
+ "status": ["deprecated"],
"supported_by": "community",
}
@@ -20,6 +20,10 @@ module: meraki_webhook_payload_template
short_description: Manage webhook payload templates for a network in the Meraki cloud
description:
- Allows for querying, deleting, creating, and updating of webhook payload templates.
+deprecated:
+ removed_in: '3.0.0'
+ why: Updated modules released with increased functionality
+ alternative: cisco.meraki.networks_webhooks_payload_templates
options:
state:
description:
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks.py b/ansible_collections/cisco/meraki/plugins/modules/networks.py
new file mode 100644
index 000000000..3b1a7adb0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks.py
@@ -0,0 +1,199 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks
+short_description: Resource module for networks
+description:
+- Manage operations create, update and delete of the resource networks.
+- Create a network.
+- Delete a network.
+- Update a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ copyFromNetworkId:
+ description: The ID of the network to copy configuration from. Other provided parameters
+ will override the copied configuration, except type which must match this network's
+ type exactly.
+ type: str
+ enrollmentString:
+ description: A unique identifier which can be used for device enrollment or easy
+ access through the Meraki SM Registration page or the Self Service Portal. Please
+ note that changing this field may cause existing bookmarks to break.
+ type: str
+ name:
+ description: The name of the network.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ notes:
+ description: Add any notes or additional information about this network here.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ productTypes:
+ description: The product type(s) of the new network. If more than one type is included,
+ the network will be a combined network.
+ elements: str
+ type: list
+ tags:
+ description: A list of tags to be applied to the network.
+ elements: str
+ type: list
+ timeZone:
+ description: The timezone of the network. For a list of allowed timezones, please
+ see the 'TZ' column in the table in <a target='_blank' href='https //en.wikipedia.org/wiki/List_of_tz_databas...
+ article.</a>.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations,networks createOrganizationNetwork
+ description: Complete reference of the createOrganizationNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-network
+- name: Cisco Meraki documentation for organizations,networks deleteNetwork
+ description: Complete reference of the deleteNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network
+- name: Cisco Meraki documentation for organizations,networks updateNetwork
+ description: Complete reference of the updateNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network
+notes:
+ - SDK Method used are
+ organizationsnetworks.Organizationsnetworks.create_organization_network,
+ organizationsnetworks.Organizationsnetworks.delete_network,
+ organizationsnetworks.Organizationsnetworks.update_network,
+
+ - Paths used are
+ post /organizations/{organizationId}/networks,
+ delete /networks/{networkId},
+ put /networks/{networkId},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.networks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enrollmentString: my-enrollment-string
+ name: Main Office
+ networkId: string
+ notes: Additional description of the network
+ tags:
+ - tag1
+ - tag2
+ timeZone: America/Los_Angeles
+
+- name: Delete by id
+ cisco.meraki.networks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+
+- name: Create
+ cisco.meraki.networks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ copyFromNetworkId: N_24329156
+ name: Main Office
+ notes: Additional description of the network
+ organizationId: string
+ productTypes:
+ - appliance
+ - switch
+ - wireless
+ tags:
+ - tag1
+ - tag2
+ timeZone: America/Los_Angeles
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "organizationId": "string",
+ "name": "string",
+ "productTypes": [
+ "string"
+ ],
+ "timeZone": "string",
+ "tags": [
+ "string"
+ ],
+ "enrollmentString": "string",
+ "url": "string",
+ "notes": "string",
+ "isBoundToConfigTemplate": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_history_info.py
new file mode 100644
index 000000000..6c9df8ebd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_history_info.py
@@ -0,0 +1,124 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_alerts_history_info
+short_description: Information module for networks _alerts _history
+description:
+- Get all networks _alerts _history.
+- Return the alert history for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkAlertsHistory
+ description: Complete reference of the getNetworkAlertsHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-alerts-history
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_alerts_history,
+
+ - Paths used are
+ get /networks/{networkId}/alerts/history,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _alerts _history
+ cisco.meraki.networks_alerts_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "occurredAt": "string",
+ "alertTypeId": "string",
+ "alertType": "string",
+ "device": {
+ "serial": "string"
+ },
+ "destinations": {
+ "email": {
+ "sentAt": "string"
+ },
+ "push": {
+ "sentAt": "string"
+ },
+ "sms": {
+ "sentAt": "string"
+ },
+ "webhook": {
+ "sentAt": "string"
+ }
+ },
+ "alertData": {}
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings.py
new file mode 100644
index 000000000..7e317f727
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings.py
@@ -0,0 +1,145 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_alerts_settings
+short_description: Resource module for networks _alerts _settings
+description:
+- Manage operation update of the resource networks _alerts _settings.
+- Update the alert configuration for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ alerts:
+ description: Alert-specific configuration for each type. Only alerts that pertain
+ to the network can be updated.
+ elements: dict
+ suboptions:
+ alertDestinations:
+ description: A hash of destinations for this specific alert.
+ suboptions:
+ allAdmins:
+ description: If true, then all network admins will receive emails for this
+ alert.
+ type: bool
+ emails:
+ description: A list of emails that will receive information about the alert.
+ elements: str
+ type: list
+ httpServerIds:
+ description: A list of HTTP server IDs to send a Webhook to for this alert.
+ elements: str
+ type: list
+ snmp:
+ description: If true, then an SNMP trap will be sent for this alert if there
+ is an SNMP trap server configured for this network.
+ type: bool
+ type: dict
+ enabled:
+ description: A boolean depicting if the alert is turned on or off.
+ type: bool
+ filters:
+ description: A hash of specific configuration data for the alert. Only filters
+ specific to the alert will be updated.
+ type: dict
+ type:
+ description: The type of alert.
+ type: str
+ type: list
+ defaultDestinations:
+ description: The network-wide destinations for all alerts on the network.
+ suboptions:
+ allAdmins:
+ description: If true, then all network admins will receive emails.
+ type: bool
+ emails:
+ description: A list of emails that will recieve the alert(s).
+ elements: str
+ type: list
+ httpServerIds:
+ description: A list of HTTP server IDs to send a Webhook to.
+ elements: str
+ type: list
+ snmp:
+ description: If true, then an SNMP trap will be sent if there is an SNMP trap
+ server configured for this network.
+ type: bool
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkAlertsSettings
+ description: Complete reference of the updateNetworkAlertsSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-alerts-settings
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_alerts_settings,
+
+ - Paths used are
+ put /networks/{networkId}/alerts/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_alerts_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ alerts:
+ - alertDestinations:
+ allAdmins: false
+ emails:
+ - miles@meraki.com
+ httpServerIds:
+ - aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=
+ snmp: false
+ enabled: true
+ filters:
+ timeout: 60
+ type: gatewayDown
+ defaultDestinations:
+ allAdmins: true
+ emails:
+ - miles@meraki.com
+ httpServerIds:
+ - aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=
+ snmp: true
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings_info.py
new file mode 100644
index 000000000..07032923b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_alerts_settings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_alerts_settings_info
+short_description: Information module for networks _alerts _settings
+description:
+- Get all networks _alerts _settings.
+- Return the alert configuration for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkAlertsSettings
+ description: Complete reference of the getNetworkAlertsSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-alerts-settings
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_alerts_settings,
+
+ - Paths used are
+ get /networks/{networkId}/alerts/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _alerts _settings
+ cisco.meraki.networks_alerts_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations.py
new file mode 100644
index 000000000..450054fc9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations.py
@@ -0,0 +1,94 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_connectivity_monitoring_destinations
+short_description: Resource module for networks _appliance _connectivitymonitoringdestinations
+description:
+- Manage operation update of the resource networks _appliance _connectivitymonitoringdestinations.
+- Update the connectivity testing destinations for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ destinations:
+ description: The list of connectivity monitoring destinations.
+ elements: dict
+ suboptions:
+ default:
+ description: Boolean indicating whether this is the default testing destination
+ (true) or not (false). Defaults to false. Only one default is allowed.
+ type: bool
+ description:
+ description: Description of the testing destination. Optional, defaults to null.
+ type: str
+ ip:
+ description: The IP address to test connectivity with.
+ type: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceConnectivityMonitoringDestinations
+ description: Complete reference of the updateNetworkApplianceConnectivityMonitoringDestinations API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-connectivity-monitoring-destinations
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_connectivity_monitoring_destinations,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/connectivityMonitoringDestinations,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_connectivity_monitoring_destinations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ destinations:
+ - default: false
+ description: Google
+ ip: 8.8.8.8
+ - default: true
+ description: test description
+ ip: 1.23.45.67
+ - ip: 9.8.7.6
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations_info.py
new file mode 100644
index 000000000..859b797ad
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_connectivity_monitoring_destinations_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_connectivity_monitoring_destinations_info
+short_description: Information module for networks _appliance _connectivitymonitoringdestinations
+description:
+- Get all networks _appliance _connectivitymonitoringdestinations.
+- Return the connectivity testing destinations for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceConnectivityMonitoringDestinations
+ description: Complete reference of the getNetworkApplianceConnectivityMonitoringDestinations API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-connectivity-monitoring-destinations
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_connectivity_monitoring_destinations,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/connectivityMonitoringDestinations,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _connectivitymonitoringdestinations
+ cisco.meraki.networks_appliance_connectivity_monitoring_destinations_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering.py
new file mode 100644
index 000000000..911f22982
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_content_filtering
+short_description: Resource module for networks _appliance _contentfiltering
+description:
+- Manage operation update of the resource networks _appliance _contentfiltering.
+- Update the content filtering settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ allowedUrlPatterns:
+ description: A list of URL patterns that are allowed.
+ elements: str
+ type: list
+ blockedUrlCategories:
+ description: A list of URL categories to block.
+ elements: str
+ type: list
+ blockedUrlPatterns:
+ description: A list of URL patterns that are blocked.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ urlCategoryListSize:
+ description: URL category list size which is either 'topSites' or 'fullList'.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceContentFiltering
+ description: Complete reference of the updateNetworkApplianceContentFiltering API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-content-filtering
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_content_filtering,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/contentFiltering,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_content_filtering:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ allowedUrlPatterns:
+ - http://www.example.org
+ - http://help.com.au
+ blockedUrlCategories:
+ - meraki:contentFiltering/category/1
+ - meraki:contentFiltering/category/7
+ blockedUrlPatterns:
+ - http://www.example.com
+ - http://www.betting.com
+ networkId: string
+ urlCategoryListSize: topSites
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_categories_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_categories_info.py
new file mode 100644
index 000000000..845329185
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_categories_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_content_filtering_categories_info
+short_description: Information module for networks _appliance _contentfiltering _categories
+description:
+- Get all networks _appliance _contentfiltering _categories.
+- List all available content filtering categories for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceContentFilteringCategories
+ description: Complete reference of the getNetworkApplianceContentFilteringCategories API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-content-filtering-categories
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_content_filtering_categories,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/contentFiltering/categories,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _contentfiltering _categories
+ cisco.meraki.networks_appliance_content_filtering_categories_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_info.py
new file mode 100644
index 000000000..d63f8b86f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_content_filtering_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_content_filtering_info
+short_description: Information module for networks _appliance _contentfiltering
+description:
+- Get all networks _appliance _contentfiltering.
+- Return the content filtering settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceContentFiltering
+ description: Complete reference of the getNetworkApplianceContentFiltering API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-content-filtering
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_content_filtering,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/contentFiltering,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _contentfiltering
+ cisco.meraki.networks_appliance_content_filtering_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules.py
new file mode 100644
index 000000000..1856a9d16
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_cellular_firewall_rules
+short_description: Resource module for networks _appliance _firewall _cellularfirewallrules
+description:
+- Manage operation update of the resource networks _appliance _firewall _cellularfirewallrules.
+- Update the cellular firewall rules of an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An ordered array of the firewall rules (not including the default rule).
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ destCidr:
+ description: Comma-separated list of destination IP address(es) (in IP or CIDR
+ notation), fully-qualified domain names (FQDN) or 'any'.
+ type: str
+ destPort:
+ description: Comma-separated list of destination port(s) (integer in the range
+ 1-65535), or 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or
+ 'any').
+ type: str
+ srcCidr:
+ description: Comma-separated list of source IP address(es) (in IP or CIDR notation),
+ or 'any' (note FQDN not supported for source addresses).
+ type: str
+ srcPort:
+ description: Comma-separated list of source port(s) (integer in the range 1-65535),
+ or 'any'.
+ type: str
+ syslogEnabled:
+ description: Log this rule to syslog (true or false, boolean value) - only applicable
+ if a syslog has been configured (optional).
+ type: bool
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallCellularFirewallRules
+ description: Complete reference of the updateNetworkApplianceFirewallCellularFirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-cellular-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_cellular_firewall_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/cellularFirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_cellular_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+ srcCidr: Any
+ srcPort: Any
+ syslogEnabled: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules_info.py
new file mode 100644
index 000000000..1c2da7010
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_cellular_firewall_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_cellular_firewall_rules_info
+short_description: Information module for networks _appliance _firewall _cellularfirewallrules
+description:
+- Get all networks _appliance _firewall _cellularfirewallrules.
+- Return the cellular firewall rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallCellularFirewallRules
+ description: Complete reference of the getNetworkApplianceFirewallCellularFirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-cellular-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_cellular_firewall_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/cellularFirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall _cellularfirewallrules
+ cisco.meraki.networks_appliance_firewall_cellular_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services.py
new file mode 100644
index 000000000..173b7f42a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_firewalled_services
+short_description: Resource module for networks _appliance _firewall _firewalledservices
+description:
+- Manage operation update of the resource networks _appliance _firewall _firewalledservices.
+- Updates the accessibility settings for the given service 'ICMP', 'web', or 'SNMP' .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ access:
+ description: A string indicating the rule for which IPs are allowed to use the specified
+ service. Acceptable values are "blocked" (no remote IPs can access the service),
+ "restricted" (only allowed IPs can access the service), and "unrestriced" (any
+ remote IP can access the service). This field is required.
+ type: str
+ allowedIps:
+ description: An array of allowed IPs that can access the service. This field is
+ required if "access" is set to "restricted". Otherwise this field is ignored.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ service:
+ description: Service path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallFirewalledService
+ description: Complete reference of the updateNetworkApplianceFirewallFirewalledService API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-firewalled-service
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_firewalled_service,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/firewalledServices/{service},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.networks_appliance_firewall_firewalled_services:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ access: restricted
+ allowedIps:
+ - 123.123.123.1
+ networkId: string
+ service: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services_info.py
new file mode 100644
index 000000000..e432299d4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_firewalled_services_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_firewalled_services_info
+short_description: Information module for networks _appliance _firewall _firewalledservices
+description:
+- Get networks _appliance _firewall _firewalledservices by id.
+- Return the accessibility settings of the given service 'ICMP', 'web', or 'SNMP' .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ service:
+ description:
+ - Service path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallFirewalledService
+ description: Complete reference of the getNetworkApplianceFirewallFirewalledService API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-firewalled-service
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_firewalled_service,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/firewalledServices/{service},
+"""
+
+EXAMPLES = r"""
+- name: Get networks _appliance _firewall _firewalledservices by id
+ cisco.meraki.networks_appliance_firewall_firewalled_services_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ service: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules.py
new file mode 100644
index 000000000..dcfc8ad1a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_inbound_firewall_rules
+short_description: Resource module for networks _appliance _firewall _inboundfirewallrules
+description:
+- Manage operation update of the resource networks _appliance _firewall _inboundfirewallrules.
+- Update the inbound firewall rules of an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An ordered array of the firewall rules (not including the default rule).
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ destCidr:
+ description: Comma-separated list of destination IP address(es) (in IP or CIDR
+ notation), fully-qualified domain names (FQDN) or 'any'.
+ type: str
+ destPort:
+ description: Comma-separated list of destination port(s) (integer in the range
+ 1-65535), or 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or
+ 'any').
+ type: str
+ srcCidr:
+ description: Comma-separated list of source IP address(es) (in IP or CIDR notation),
+ or 'any' (note FQDN not supported for source addresses).
+ type: str
+ srcPort:
+ description: Comma-separated list of source port(s) (integer in the range 1-65535),
+ or 'any'.
+ type: str
+ syslogEnabled:
+ description: Log this rule to syslog (true or false, boolean value) - only applicable
+ if a syslog has been configured (optional).
+ type: bool
+ type: list
+ syslogDefaultRule:
+ description: Log the special default rule (boolean value - enable only if you've
+ configured a syslog server) (optional).
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallInboundFirewallRules
+ description: Complete reference of the updateNetworkApplianceFirewallInboundFirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-inbound-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_inbound_firewall_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/inboundFirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_inbound_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+ srcCidr: Any
+ srcPort: Any
+ syslogEnabled: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules_info.py
new file mode 100644
index 000000000..f08a8082d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_inbound_firewall_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_inbound_firewall_rules_info
+short_description: Information module for networks _appliance _firewall _inboundfirewallrules
+description:
+- Get all networks _appliance _firewall _inboundfirewallrules.
+- Return the inbound firewall rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallInboundFirewallRules
+ description: Complete reference of the getNetworkApplianceFirewallInboundFirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-inbound-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_inbound_firewall_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/inboundFirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall _inboundfirewallrules
+ cisco.meraki.networks_appliance_firewall_inbound_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules.py
new file mode 100644
index 000000000..3aaecabe4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_l3_firewall_rules
+short_description: Resource module for networks _appliance _firewall l3firewallrules
+description:
+- Manage operation update of the resource networks _appliance _firewall l3firewallrules.
+- Update the L3 firewall rules of an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An ordered array of the firewall rules (not including the default rule).
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ destCidr:
+ description: Comma-separated list of destination IP address(es) (in IP or CIDR
+ notation), fully-qualified domain names (FQDN) or 'any'.
+ type: str
+ destPort:
+ description: Comma-separated list of destination port(s) (integer in the range
+ 1-65535), or 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or
+ 'any').
+ type: str
+ srcCidr:
+ description: Comma-separated list of source IP address(es) (in IP or CIDR notation),
+ or 'any' (note FQDN not supported for source addresses).
+ type: str
+ srcPort:
+ description: Comma-separated list of source port(s) (integer in the range 1-65535),
+ or 'any'.
+ type: str
+ syslogEnabled:
+ description: Log this rule to syslog (true or false, boolean value) - only applicable
+ if a syslog has been configured (optional).
+ type: bool
+ type: list
+ syslogDefaultRule:
+ description: Log the special default rule (boolean value - enable only if you've
+ configured a syslog server) (optional).
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallL3FirewallRules
+ description: Complete reference of the updateNetworkApplianceFirewallL3FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-l3-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_l3_firewall_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/l3FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_l3_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+ srcCidr: Any
+ srcPort: Any
+ syslogEnabled: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules_info.py
new file mode 100644
index 000000000..de1148922
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l3_firewall_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_l3_firewall_rules_info
+short_description: Information module for networks _appliance _firewall l3firewallrules
+description:
+- Get all networks _appliance _firewall l3firewallrules.
+- Return the L3 firewall rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallL3FirewallRules
+ description: Complete reference of the getNetworkApplianceFirewallL3FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-l3-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_l3_firewall_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/l3FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall l3firewallrules
+ cisco.meraki.networks_appliance_firewall_l3_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules.py
new file mode 100644
index 000000000..eff01c0b4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_l7_firewall_rules
+short_description: Resource module for networks _appliance _firewall l7firewallrules
+description:
+- Manage operation update of the resource networks _appliance _firewall l7firewallrules.
+- Update the MX L7 firewall rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An ordered array of the MX L7 firewall rules.
+ elements: dict
+ suboptions:
+ policy:
+ description: '''Deny'' traffic specified by this rule.'
+ type: str
+ type:
+ description: Type of the L7 rule. One of 'application', 'applicationCategory',
+ 'host', 'port', 'ipRange'.
+ type: str
+ value:
+ description: The 'value' of what you want to block. Format of 'value' varies
+ depending on type of the rule. The application categories and application
+ ids can be retrieved from the the 'MX L7 application categories' endpoint.
+ The countries follow the two-letter ISO 3166-1 alpha-2 format.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallL7FirewallRules
+ description: Complete reference of the updateNetworkApplianceFirewallL7FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-l7-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_l7_firewall_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/l7FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_l7_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - policy: deny
+ type: host
+ value: google.com
+ - policy: deny
+ type: port
+ value: '23'
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24:5555
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_application_categories_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_application_categories_info.py
new file mode 100644
index 000000000..5ff02017d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_application_categories_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_l7_firewall_rules_application_categories_info
+short_description: Information module for networks _appliance _firewall l7firewallrules _applicationcategories
+description:
+- Get all networks _appliance _firewall l7firewallrules _applicationcategories.
+- Return the L7 firewall application categories and their associated applications for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallL7FirewallRulesApplicationCategories
+ description: Complete reference of the getNetworkApplianceFirewallL7FirewallRulesApplicationCategories API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-l7-firewall-rules-application-categories
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_l7_firewall_rules_application_categories,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/l7FirewallRules/applicationCategories,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall l7firewallrules _applicationcategories
+ cisco.meraki.networks_appliance_firewall_l7_firewall_rules_application_categories_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_info.py
new file mode 100644
index 000000000..eeb013d18
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_l7_firewall_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_l7_firewall_rules_info
+short_description: Information module for networks _appliance _firewall l7firewallrules
+description:
+- Get all networks _appliance _firewall l7firewallrules.
+- List the MX L7 firewall rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallL7FirewallRules
+ description: Complete reference of the getNetworkApplianceFirewallL7FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-l7-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_l7_firewall_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/l7FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall l7firewallrules
+ cisco.meraki.networks_appliance_firewall_l7_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules.py
new file mode 100644
index 000000000..aa6af7c0a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules.py
@@ -0,0 +1,131 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_one_to_many_nat_rules
+short_description: Resource module for networks _appliance _firewall _onetomanynatrules
+description:
+- Manage operation update of the resource networks _appliance _firewall _onetomanynatrules.
+- Set the 1 Many NAT mapping rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An array of 1 Many nat rules.
+ elements: dict
+ suboptions:
+ portRules:
+ description: An array of associated forwarding rules.
+ elements: dict
+ suboptions:
+ allowedIps:
+ description: Remote IP addresses or ranges that are permitted to access
+ the internal resource via this port forwarding rule, or 'any'.
+ elements: str
+ type: list
+ localIp:
+ description: Local IP address to which traffic will be forwarded.
+ type: str
+ localPort:
+ description: Destination port of the forwarded traffic that will be sent
+ from the MX to the specified host on the LAN. If you simply wish to forward
+ the traffic without translating the port, this should be the same as the
+ Public port.
+ type: str
+ name:
+ description: A description of the rule.
+ type: str
+ protocol:
+ description: '''tcp'' or ''udp''.'
+ type: str
+ publicPort:
+ description: Destination port of the traffic that is arriving on the WAN.
+ type: str
+ type: list
+ publicIp:
+ description: The IP address that will be used to access the internal resource
+ from the WAN.
+ type: str
+ uplink:
+ description: The physical WAN interface on which the traffic will arrive ('internet1'
+ or, if available, 'internet2').
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallOneToManyNatRules
+ description: Complete reference of the updateNetworkApplianceFirewallOneToManyNatRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-one-to-many-nat-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_one_to_many_nat_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/oneToManyNatRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_one_to_many_nat_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - portRules:
+ - allowedIps:
+ - any
+ localIp: 192.168.128.1
+ localPort: '443'
+ name: Rule 1
+ protocol: tcp
+ publicPort: '9443'
+ - allowedIps:
+ - 10.82.110.0/24
+ - 10.82.111.0/24
+ localIp: 192.168.128.1
+ localPort: '80'
+ name: Rule 2
+ protocol: tcp
+ publicPort: '8080'
+ publicIp: 146.11.11.13
+ uplink: internet1
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules_info.py
new file mode 100644
index 000000000..9c2dc9618
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_many_nat_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_one_to_many_nat_rules_info
+short_description: Information module for networks _appliance _firewall _onetomanynatrules
+description:
+- Get all networks _appliance _firewall _onetomanynatrules.
+- Return the 1 Many NAT mapping rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallOneToManyNatRules
+ description: Complete reference of the getNetworkApplianceFirewallOneToManyNatRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-one-to-many-nat-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_one_to_many_nat_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/oneToManyNatRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall _onetomanynatrules
+ cisco.meraki.networks_appliance_firewall_one_to_many_nat_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules.py
new file mode 100644
index 000000000..13ee58c28
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules.py
@@ -0,0 +1,128 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_one_to_one_nat_rules
+short_description: Resource module for networks _appliance _firewall _onetoonenatrules
+description:
+- Manage operation update of the resource networks _appliance _firewall _onetoonenatrules.
+- Set the 1 1 NAT mapping rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An array of 1 1 nat rules.
+ elements: dict
+ suboptions:
+ allowedInbound:
+ description: The ports this mapping will provide access on, and the remote IPs
+ that will be allowed access to the resource.
+ elements: dict
+ suboptions:
+ allowedIps:
+ description: An array of ranges of WAN IP addresses that are allowed to
+ make inbound connections on the specified ports or port ranges, or 'any'.
+ elements: str
+ type: list
+ destinationPorts:
+ description: An array of ports or port ranges that will be forwarded to
+ the host on the LAN.
+ elements: str
+ type: list
+ protocol:
+ description: Either of the following 'tcp', 'udp', 'icmp-ping' or 'any'.
+ type: str
+ type: list
+ lanIp:
+ description: The IP address of the server or device that hosts the internal
+ resource that you wish to make available on the WAN.
+ type: str
+ name:
+ description: A descriptive name for the rule.
+ type: str
+ publicIp:
+ description: The IP address that will be used to access the internal resource
+ from the WAN.
+ type: str
+ uplink:
+ description: The physical WAN interface on which the traffic will arrive ('internet1'
+ or, if available, 'internet2').
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallOneToOneNatRules
+ description: Complete reference of the updateNetworkApplianceFirewallOneToOneNatRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-one-to-one-nat-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_one_to_one_nat_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/oneToOneNatRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_one_to_one_nat_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - allowedInbound:
+ - allowedIps:
+ - 10.82.112.0/24
+ - 10.82.0.0/16
+ destinationPorts:
+ - '80'
+ protocol: tcp
+ - allowedIps:
+ - 10.81.110.5
+ - 10.81.0.0/16
+ destinationPorts:
+ - '8080'
+ protocol: udp
+ lanIp: 192.168.128.22
+ name: Service behind NAT
+ publicIp: 146.12.3.33
+ uplink: internet1
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules_info.py
new file mode 100644
index 000000000..c27fdfe0a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_one_to_one_nat_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_one_to_one_nat_rules_info
+short_description: Information module for networks _appliance _firewall _onetoonenatrules
+description:
+- Get all networks _appliance _firewall _onetoonenatrules.
+- Return the 1 1 NAT mapping rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallOneToOneNatRules
+ description: Complete reference of the getNetworkApplianceFirewallOneToOneNatRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-one-to-one-nat-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_one_to_one_nat_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/oneToOneNatRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall _onetoonenatrules
+ cisco.meraki.networks_appliance_firewall_one_to_one_nat_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules.py
new file mode 100644
index 000000000..f95df4017
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_port_forwarding_rules
+short_description: Resource module for networks _appliance _firewall _portforwardingrules
+description:
+- Manage operation update of the resource networks _appliance _firewall _portforwardingrules.
+- Update the port forwarding rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An array of port forwarding params.
+ elements: dict
+ suboptions:
+ allowedIps:
+ description: An array of ranges of WAN IP addresses that are allowed to make
+ inbound connections on the specified ports or port ranges (or any).
+ elements: str
+ type: list
+ lanIp:
+ description: The IP address of the server or device that hosts the internal
+ resource that you wish to make available on the WAN.
+ type: str
+ localPort:
+ description: A port or port ranges that will receive the forwarded traffic from
+ the WAN.
+ type: str
+ name:
+ description: A descriptive name for the rule.
+ type: str
+ protocol:
+ description: TCP or UDP.
+ type: str
+ publicPort:
+ description: A port or port ranges that will be forwarded to the host on the
+ LAN.
+ type: str
+ uplink:
+ description: The physical WAN interface on which the traffic will arrive ('internet1'
+ or, if available, 'internet2' or 'both').
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallPortForwardingRules
+ description: Complete reference of the updateNetworkApplianceFirewallPortForwardingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-port-forwarding-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_port_forwarding_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/portForwardingRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_port_forwarding_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - allowedIps:
+ - any
+ lanIp: 192.168.128.1
+ localPort: 442-443
+ name: Description of Port Forwarding Rule
+ protocol: tcp
+ publicPort: 8100-8101
+ uplink: both
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules_info.py
new file mode 100644
index 000000000..df2070a01
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_port_forwarding_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_port_forwarding_rules_info
+short_description: Information module for networks _appliance _firewall _portforwardingrules
+description:
+- Get all networks _appliance _firewall _portforwardingrules.
+- Return the port forwarding rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallPortForwardingRules
+ description: Complete reference of the getNetworkApplianceFirewallPortForwardingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-port-forwarding-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_port_forwarding_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/portForwardingRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall _portforwardingrules
+ cisco.meraki.networks_appliance_firewall_port_forwarding_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings.py
new file mode 100644
index 000000000..a3fa822e5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_settings
+short_description: Resource module for networks _appliance _firewall _settings
+description:
+- Manage operation update of the resource networks _appliance _firewall _settings.
+- Update the firewall settings for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ spoofingProtection:
+ description: Spoofing protection settings.
+ suboptions:
+ ipSourceGuard:
+ description: IP source address spoofing settings.
+ suboptions:
+ mode:
+ description: Mode of protection.
+ type: str
+ type: dict
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceFirewallSettings
+ description: Complete reference of the updateNetworkApplianceFirewallSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-firewall-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_firewall_settings,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/firewall/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_firewall_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ spoofingProtection:
+ ipSourceGuard:
+ mode: block
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings_info.py
new file mode 100644
index 000000000..f0c04a984
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_firewall_settings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_firewall_settings_info
+short_description: Information module for networks _appliance _firewall _settings
+description:
+- Get all networks _appliance _firewall _settings.
+- Return the firewall settings for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallSettings
+ description: Complete reference of the getNetworkApplianceFirewallSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_firewall_settings,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/firewall/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _firewall _settings
+ cisco.meraki.networks_appliance_firewall_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports.py
new file mode 100644
index 000000000..f1f4acf6e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_ports
+short_description: Resource module for networks _appliance _ports
+description:
+- Manage operation update of the resource networks _appliance _ports.
+- Update the per-port VLAN settings for a single MX port.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accessPolicy:
+ description: The name of the policy. Only applicable to Access ports. Valid values
+ are 'open', '8021x-radius', 'mac-radius', 'hybris-radius' for MX64 or Z3 or any
+ MX supporting the per port authentication feature. Otherwise, 'open' is the only
+ valid value and 'open' is the default value if the field is missing.
+ type: str
+ allowedVlans:
+ description: Comma-delimited list of the VLAN ID's allowed on the port, or 'all'
+ to permit all VLAN's on the port.
+ type: str
+ dropUntaggedTraffic:
+ description: Trunk port can Drop all Untagged traffic. When true, no VLAN is required.
+ Access ports cannot have dropUntaggedTraffic set to true.
+ type: bool
+ enabled:
+ description: The status of the port.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ portId:
+ description: PortId path parameter. Port ID.
+ type: str
+ type:
+ description: The type of the port 'access' or 'trunk'.
+ type: str
+ vlan:
+ description: Native VLAN when the port is in Trunk mode. Access VLAN when the port
+ is in Access mode.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkAppliancePort
+ description: Complete reference of the updateNetworkAppliancePort API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-port
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_port,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/ports/{portId},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.networks_appliance_ports:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accessPolicy: open
+ allowedVlans: all
+ dropUntaggedTraffic: false
+ enabled: true
+ networkId: string
+ portId: string
+ type: access
+ vlan: 3
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "number": 0,
+ "enabled": true,
+ "type": "string",
+ "dropUntaggedTraffic": true,
+ "vlan": 0,
+ "allowedVlans": "string",
+ "accessPolicy": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports_info.py
new file mode 100644
index 000000000..edbf8b584
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ports_info.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_ports_info
+short_description: Information module for networks _appliance _ports
+description:
+- Get all networks _appliance _ports.
+- Get networks _appliance _ports by id.
+- List per-port VLAN settings for all ports of a MX.
+- Return per-port VLAN settings for a single MX port.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ portId:
+ description:
+ - PortId path parameter. Port ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkAppliancePort
+ description: Complete reference of the getNetworkAppliancePort API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-port
+- name: Cisco Meraki documentation for appliance getNetworkAppliancePorts
+ description: Complete reference of the getNetworkAppliancePorts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-ports
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_port,
+ appliance.Appliance.get_network_appliance_ports,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/ports,
+ get /networks/{networkId}/appliance/ports/{portId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _ports
+ cisco.meraki.networks_appliance_ports_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _appliance _ports by id
+ cisco.meraki.networks_appliance_ports_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ portId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "number": 0,
+ "enabled": true,
+ "type": "string",
+ "dropUntaggedTraffic": true,
+ "vlan": 0,
+ "allowedVlans": "string",
+ "accessPolicy": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics.py
new file mode 100644
index 000000000..0af536fa5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics.py
@@ -0,0 +1,167 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_prefixes_delegated_statics
+short_description: Resource module for networks _appliance _prefixes _delegated _statics
+description:
+- Manage operations create, update and delete of the resource networks _appliance _prefixes _delegated _statics.
+- Add a static delegated prefix from a network.
+- Delete a static delegated prefix from a network.
+- Update a static delegated prefix from a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ description:
+ description: A name or description for the prefix.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ origin:
+ description: The origin of the prefix.
+ suboptions:
+ interfaces:
+ description: Interfaces associated with the prefix.
+ elements: str
+ type: list
+ type:
+ description: Type of the origin.
+ type: str
+ type: dict
+ prefix:
+ description: A static IPv6 prefix.
+ type: str
+ staticDelegatedPrefixId:
+ description: StaticDelegatedPrefixId path parameter. Static delegated prefix ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance createNetworkAppliancePrefixesDelegatedStatic
+ description: Complete reference of the createNetworkAppliancePrefixesDelegatedStatic API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-appliance-prefixes-delegated-static
+- name: Cisco Meraki documentation for appliance deleteNetworkAppliancePrefixesDelegatedStatic
+ description: Complete reference of the deleteNetworkAppliancePrefixesDelegatedStatic API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-appliance-prefixes-delegated-static
+- name: Cisco Meraki documentation for appliance updateNetworkAppliancePrefixesDelegatedStatic
+ description: Complete reference of the updateNetworkAppliancePrefixesDelegatedStatic API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-prefixes-delegated-static
+notes:
+ - SDK Method used are
+ appliance.Appliance.create_network_appliance_prefixes_delegated_static,
+ appliance.Appliance.delete_network_appliance_prefixes_delegated_static,
+ appliance.Appliance.update_network_appliance_prefixes_delegated_static,
+
+ - Paths used are
+ post /networks/{networkId}/appliance/prefixes/delegated/statics,
+ delete /networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId},
+ put /networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_appliance_prefixes_delegated_statics:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ description: Prefix on WAN 1 of Long Island Office network
+ networkId: string
+ origin:
+ interfaces:
+ - wan1
+ type: internet
+ prefix: 2001:db8:3c4d:15::/64
+
+- name: Update by id
+ cisco.meraki.networks_appliance_prefixes_delegated_statics:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ description: Prefix on WAN 1 of Long Island Office network
+ networkId: string
+ origin:
+ interfaces:
+ - wan1
+ type: internet
+ prefix: 2001:db8:3c4d:15::/64
+ staticDelegatedPrefixId: string
+
+- name: Delete by id
+ cisco.meraki.networks_appliance_prefixes_delegated_statics:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ staticDelegatedPrefixId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics_info.py
new file mode 100644
index 000000000..bf28378fc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_prefixes_delegated_statics_info.py
@@ -0,0 +1,124 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_prefixes_delegated_statics_info
+short_description: Information module for networks _appliance _prefixes _delegated _statics
+description:
+- Get all networks _appliance _prefixes _delegated _statics.
+- Get networks _appliance _prefixes _delegated _statics by id.
+- List static delegated prefixes for a network.
+- Return a static delegated prefix from a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ staticDelegatedPrefixId:
+ description:
+ - StaticDelegatedPrefixId path parameter. Static delegated prefix ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkAppliancePrefixesDelegatedStatic
+ description: Complete reference of the getNetworkAppliancePrefixesDelegatedStatic API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-prefixes-delegated-static
+- name: Cisco Meraki documentation for appliance getNetworkAppliancePrefixesDelegatedStatics
+ description: Complete reference of the getNetworkAppliancePrefixesDelegatedStatics API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-prefixes-delegated-statics
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_prefixes_delegated_static,
+ appliance.Appliance.get_network_appliance_prefixes_delegated_statics,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/prefixes/delegated/statics,
+ get /networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _prefixes _delegated _statics
+ cisco.meraki.networks_appliance_prefixes_delegated_statics_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _appliance _prefixes _delegated _statics by id
+ cisco.meraki.networks_appliance_prefixes_delegated_statics_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ staticDelegatedPrefixId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "staticDelegatedPrefixId": "string",
+ "prefix": "string",
+ "origin": {
+ "type": "string",
+ "interfaces": [
+ "string"
+ ]
+ },
+ "description": "string",
+ "createdAt": "string",
+ "updatedAt": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion.py
new file mode 100644
index 000000000..1dc684761
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_security_intrusion
+short_description: Resource module for networks _appliance _security _intrusion
+description:
+- Manage operation update of the resource networks _appliance _security _intrusion.
+- Set the supported intrusion settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ idsRulesets:
+ description: Set the detection ruleset 'connectivity'/'balanced'/'security' (optional
+ - omitting will leave current config unchanged). Default value is 'balanced' if
+ none currently saved.
+ type: str
+ mode:
+ description: Set mode to 'disabled'/'detection'/'prevention' (optional - omitting
+ will leave current config unchanged).
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ protectedNetworks:
+ description: Set the included/excluded networks from the intrusion engine (optional
+ - omitting will leave current config unchanged). This is available only in 'passthrough'
+ mode.
+ suboptions:
+ excludedCidr:
+ description: List of IP addresses or subnets being excluded from protection
+ (required if 'useDefault' is false).
+ elements: str
+ type: list
+ includedCidr:
+ description: List of IP addresses or subnets being protected (required if 'useDefault'
+ is false).
+ elements: str
+ type: list
+ useDefault:
+ description: True/false whether to use special IPv4 addresses https //tools.ietf.org/html/rfc5735
+ (required). Default value is true if none currently saved.
+ type: bool
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceSecurityIntrusion
+ description: Complete reference of the updateNetworkApplianceSecurityIntrusion API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-security-intrusion
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_security_intrusion,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/security/intrusion,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_security_intrusion:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ idsRulesets: balanced
+ mode: prevention
+ networkId: string
+ protectedNetworks:
+ excludedCidr:
+ - 10.0.0.0/8
+ - 127.0.0.0/8
+ includedCidr:
+ - 10.0.0.0/8
+ - 127.0.0.0/8
+ - 169.254.0.0/16
+ - 172.16.0.0/12
+ useDefault: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion_info.py
new file mode 100644
index 000000000..9ff5173ff
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_intrusion_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_security_intrusion_info
+short_description: Information module for networks _appliance _security _intrusion
+description:
+- Get all networks _appliance _security _intrusion.
+- Returns all supported intrusion settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceSecurityIntrusion
+ description: Complete reference of the getNetworkApplianceSecurityIntrusion API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-security-intrusion
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_security_intrusion,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/security/intrusion,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _security _intrusion
+ cisco.meraki.networks_appliance_security_intrusion_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware.py
new file mode 100644
index 000000000..50344af2c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_security_malware
+short_description: Resource module for networks _appliance _security _malware
+description:
+- Manage operation update of the resource networks _appliance _security _malware.
+- Set the supported malware settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ allowedFiles:
+ description: The sha256 digests of files that should be permitted by the malware
+ detection engine. If omitted, the current config will remain unchanged. This is
+ available only if your network supports AMP allow listing.
+ elements: dict
+ suboptions:
+ comment:
+ description: Comment about the allowed entity.
+ type: str
+ sha256:
+ description: The file sha256 hash to allow.
+ type: str
+ type: list
+ allowedUrls:
+ description: The urls that should be permitted by the malware detection engine.
+ If omitted, the current config will remain unchanged. This is available only if
+ your network supports AMP allow listing.
+ elements: dict
+ suboptions:
+ comment:
+ description: Comment about the allowed entity.
+ type: str
+ url:
+ description: The url to allow.
+ type: str
+ type: list
+ mode:
+ description: Set mode to 'enabled' to enable malware prevention, otherwise 'disabled'.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceSecurityMalware
+ description: Complete reference of the updateNetworkApplianceSecurityMalware API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-security-malware
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_security_malware,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/security/malware,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_security_malware:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ allowedFiles:
+ - comment: allow ZIP file
+ sha256: e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503
+ allowedUrls:
+ - comment: allow example.org
+ url: example.org
+ - comment: allow help.com.au
+ url: help.com.au
+ mode: enabled
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware_info.py
new file mode 100644
index 000000000..f3bd19640
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_security_malware_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_security_malware_info
+short_description: Information module for networks _appliance _security _malware
+description:
+- Get all networks _appliance _security _malware.
+- Returns all supported malware settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceSecurityMalware
+ description: Complete reference of the getNetworkApplianceSecurityMalware API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-security-malware
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_security_malware,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/security/malware,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _security _malware
+ cisco.meraki.networks_appliance_security_malware_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings.py
new file mode 100644
index 000000000..c8fecc50c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_settings
+short_description: Resource module for networks _appliance _settings
+description:
+- Manage operation update of the resource networks _appliance _settings.
+- Update the appliance settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ clientTrackingMethod:
+ description: Client tracking method of a network.
+ type: str
+ deploymentMode:
+ description: Deployment mode of a network.
+ type: str
+ dynamicDns:
+ description: Dynamic DNS settings for a network.
+ suboptions:
+ enabled:
+ description: Dynamic DNS enabled.
+ type: bool
+ prefix:
+ description: Dynamic DNS url prefix. DDNS must be enabled to update.
+ type: str
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceSettings
+ description: Complete reference of the updateNetworkApplianceSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_settings,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ clientTrackingMethod: MAC address
+ deploymentMode: routed
+ dynamicDns:
+ enabled: true
+ prefix: test
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "clientTrackingMethod": "string",
+ "deploymentMode": "string",
+ "dynamicDns": {
+ "enabled": true,
+ "prefix": "string",
+ "url": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings_info.py
new file mode 100644
index 000000000..96bc5d3e0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_settings_info.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_settings_info
+short_description: Information module for networks _appliance _settings
+description:
+- Get all networks _appliance _settings.
+- Return the appliance settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceSettings
+ description: Complete reference of the getNetworkApplianceSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_settings,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _settings
+ cisco.meraki.networks_appliance_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "clientTrackingMethod": "string",
+ "deploymentMode": "string",
+ "dynamicDns": {
+ "enabled": true,
+ "prefix": "string",
+ "url": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan.py
new file mode 100644
index 000000000..993f07768
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan.py
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_single_lan
+short_description: Resource module for networks _appliance _singlelan
+description:
+- Manage operation update of the resource networks _appliance _singlelan.
+- Update single LAN configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ applianceIp:
+ description: The appliance IP address of the single LAN.
+ type: str
+ ipv6:
+ description: IPv6 configuration on the VLAN.
+ suboptions:
+ enabled:
+ description: Enable IPv6 on VLAN.
+ type: bool
+ prefixAssignments:
+ description: Prefix assignments on the VLAN.
+ elements: dict
+ suboptions:
+ autonomous:
+ description: Auto assign a /64 prefix from the origin to the VLAN.
+ type: bool
+ origin:
+ description: The origin of the prefix.
+ suboptions:
+ interfaces:
+ description: Interfaces associated with the prefix.
+ elements: str
+ type: list
+ type:
+ description: Type of the origin.
+ type: str
+ type: dict
+ staticApplianceIp6:
+ description: Manual configuration of the IPv6 Appliance IP.
+ type: str
+ staticPrefix:
+ description: Manual configuration of a /64 prefix on the VLAN.
+ type: str
+ type: list
+ type: dict
+ mandatoryDhcp:
+ description: Mandatory DHCP will enforce that clients connecting to this LAN must
+ use the IP address assigned by the DHCP server. Clients who use a static IP address
+ won't be able to associate. Only available on firmware versions 17.0 and above.
+ suboptions:
+ enabled:
+ description: Enable Mandatory DHCP on LAN.
+ type: bool
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ subnet:
+ description: The subnet of the single LAN configuration.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceSingleLan
+ description: Complete reference of the updateNetworkApplianceSingleLan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-single-lan
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_single_lan,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/singleLan,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_single_lan:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ applianceIp: string
+ ipv6:
+ enabled: true
+ prefixAssignments:
+ - autonomous: true
+ origin:
+ interfaces:
+ - string
+ type: string
+ staticApplianceIp6: string
+ staticPrefix: string
+ mandatoryDhcp:
+ enabled: true
+ networkId: string
+ subnet: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "subnet": "string",
+ "applianceIp": "string",
+ "mandatoryDhcp": {
+ "enabled": true
+ },
+ "ipv6": {
+ "enabled": true,
+ "prefixAssignments": [
+ {
+ "autonomous": true,
+ "staticPrefix": "string",
+ "staticApplianceIp6": "string",
+ "origin": {
+ "type": "string",
+ "interfaces": [
+ "string"
+ ]
+ }
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan_info.py
new file mode 100644
index 000000000..a6261b106
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_single_lan_info.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_single_lan_info
+short_description: Information module for networks _appliance _singlelan
+description:
+- Get all networks _appliance _singlelan.
+- Return single LAN configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceSingleLan
+ description: Complete reference of the getNetworkApplianceSingleLan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-single-lan
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_single_lan,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/singleLan,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _singlelan
+ cisco.meraki.networks_appliance_single_lan_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "subnet": "string",
+ "applianceIp": "string",
+ "mandatoryDhcp": {
+ "enabled": true
+ },
+ "ipv6": {
+ "enabled": true,
+ "prefixAssignments": [
+ {
+ "autonomous": true,
+ "staticPrefix": "string",
+ "staticApplianceIp6": "string",
+ "origin": {
+ "type": "string",
+ "interfaces": [
+ "string"
+ ]
+ }
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids.py
new file mode 100644
index 000000000..5e9273f81
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids.py
@@ -0,0 +1,159 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_ssids
+short_description: Resource module for networks _appliance _ssids
+description:
+- Manage operation update of the resource networks _appliance _ssids.
+- Update the attributes of an MX SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ authMode:
+ description: The association control method for the SSID ('open', 'psk', '8021x-meraki'
+ or '8021x-radius').
+ type: str
+ defaultVlanId:
+ description: The VLAN ID of the VLAN associated to this SSID. This parameter is
+ only valid if the network is in routed mode.
+ type: int
+ dhcpEnforcedDeauthentication:
+ description: DHCP Enforced Deauthentication enables the disassociation of wireless
+ clients in addition to Mandatory DHCP. This param is only valid on firmware versions
+ >= MX 17.0 where the associated LAN has Mandatory DHCP Enabled.
+ suboptions:
+ enabled:
+ description: Enable DCHP Enforced Deauthentication on the SSID.
+ type: bool
+ type: dict
+ enabled:
+ description: Whether or not the SSID is enabled.
+ type: bool
+ encryptionMode:
+ description: The psk encryption mode for the SSID ('wep' or 'wpa'). This param is
+ only valid if the authMode is 'psk'.
+ type: str
+ name:
+ description: The name of the SSID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ psk:
+ description: The passkey for the SSID. This param is only valid if the authMode
+ is 'psk'.
+ type: str
+ radiusServers:
+ description: The RADIUS 802.1x servers to be used for authentication. This param
+ is only valid if the authMode is '8021x-radius'.
+ elements: dict
+ suboptions:
+ host:
+ description: The IP address of your RADIUS server.
+ type: str
+ port:
+ description: The UDP port your RADIUS servers listens on for Access-requests.
+ type: int
+ secret:
+ description: The RADIUS client shared secret.
+ type: str
+ type: list
+ visible:
+ description: Boolean indicating whether the MX should advertise or hide this SSID.
+ type: bool
+ wpaEncryptionMode:
+ description: The types of WPA encryption. ('WPA1 and WPA2', 'WPA2 only', 'WPA3 Transition
+ Mode' or 'WPA3 only'). This param is only valid if (1) the authMode is 'psk' &
+ the encryptionMode is 'wpa' OR (2) the authMode is '8021x-meraki' OR (3) the authMode
+ is '8021x-radius'.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceSsid
+ description: Complete reference of the updateNetworkApplianceSsid API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-ssid
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_ssid,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/ssids/{number},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.networks_appliance_ssids:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ authMode: 8021x-radius
+ defaultVlanId: 1
+ dhcpEnforcedDeauthentication:
+ enabled: true
+ enabled: true
+ encryptionMode: wpa
+ name: My SSID
+ networkId: string
+ number: string
+ psk: psk
+ radiusServers:
+ - host: 0.0.0.0
+ port: 1000
+ secret: secret
+ visible: true
+ wpaEncryptionMode: WPA2 only
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "number": 0,
+ "name": "string",
+ "enabled": true,
+ "defaultVlanId": 0,
+ "authMode": "string",
+ "radiusServers": [
+ {
+ "host": "string",
+ "port": 0
+ }
+ ],
+ "encryptionMode": "string",
+ "wpaEncryptionMode": "string",
+ "visible": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids_info.py
new file mode 100644
index 000000000..912d5d1fb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_ssids_info.py
@@ -0,0 +1,127 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_ssids_info
+short_description: Information module for networks _appliance _ssids
+description:
+- Get all networks _appliance _ssids.
+- Get networks _appliance _ssids by id.
+- List the MX SSIDs in a network.
+- Return a single MX SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceSsid
+ description: Complete reference of the getNetworkApplianceSsid API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-ssid
+- name: Cisco Meraki documentation for appliance getNetworkApplianceSsids
+ description: Complete reference of the getNetworkApplianceSsids API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-ssids
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_ssid,
+ appliance.Appliance.get_network_appliance_ssids,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/ssids,
+ get /networks/{networkId}/appliance/ssids/{number},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _ssids
+ cisco.meraki.networks_appliance_ssids_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _appliance _ssids by id
+ cisco.meraki.networks_appliance_ssids_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "number": 0,
+ "name": "string",
+ "enabled": true,
+ "defaultVlanId": 0,
+ "authMode": "string",
+ "radiusServers": [
+ {
+ "host": "string",
+ "port": 0
+ }
+ ],
+ "encryptionMode": "string",
+ "wpaEncryptionMode": "string",
+ "visible": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes.py
new file mode 100644
index 000000000..46edf95bd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes.py
@@ -0,0 +1,189 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_static_routes
+short_description: Resource module for networks _appliance _static _routes
+description:
+- Manage operations create, update and delete of the resource networks _appliance _static _routes.
+- Add a static route for an MX or teleworker network.
+- Delete a static route from an MX or teleworker network.
+- Update a static route for an MX or teleworker network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: The enabled state of the static route.
+ type: bool
+ fixedIpAssignments:
+ description: The DHCP fixed IP assignments on the static route. This should be an
+ object that contains mappings from MAC addresses to objects that themselves each
+ contain "ip" and "name" string fields. See the sample request/response for more
+ details.
+ type: dict
+ gatewayIp:
+ description: The gateway IP (next hop) of the static route.
+ type: str
+ gatewayVlanId:
+ description: The gateway IP (next hop) VLAN ID of the static route.
+ type: str
+ name:
+ description: The name of the new static route.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ reservedIpRanges:
+ description: The DHCP reserved IP ranges on the static route.
+ elements: dict
+ suboptions:
+ comment:
+ description: A text comment for the reserved range.
+ type: str
+ end:
+ description: The last IP in the reserved range.
+ type: str
+ start:
+ description: The first IP in the reserved range.
+ type: str
+ type: list
+ staticRouteId:
+ description: StaticRouteId path parameter. Static route ID.
+ type: str
+ subnet:
+ description: The subnet of the static route.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance createNetworkApplianceStaticRoute
+ description: Complete reference of the createNetworkApplianceStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-appliance-static-route
+- name: Cisco Meraki documentation for appliance deleteNetworkApplianceStaticRoute
+ description: Complete reference of the deleteNetworkApplianceStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-appliance-static-route
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceStaticRoute
+ description: Complete reference of the updateNetworkApplianceStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-static-route
+notes:
+ - SDK Method used are
+ appliance.Appliance.create_network_appliance_static_route,
+ appliance.Appliance.delete_network_appliance_static_route,
+ appliance.Appliance.update_network_appliance_static_route,
+
+ - Paths used are
+ post /networks/{networkId}/appliance/staticRoutes,
+ delete /networks/{networkId}/appliance/staticRoutes/{staticRouteId},
+ put /networks/{networkId}/appliance/staticRoutes/{staticRouteId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_appliance_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ gatewayIp: 1.2.3.5
+ name: My route
+ networkId: string
+ subnet: 192.168.1.0/24
+
+- name: Update by id
+ cisco.meraki.networks_appliance_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ fixedIpAssignments:
+ 22:33:44:55:66:77:
+ ip: 1.2.3.4
+ name: Some client name
+ name: My route
+ networkId: string
+ reservedIpRanges:
+ - comment: A reserved IP range
+ end: 192.168.1.1
+ start: 192.168.1.0
+ staticRouteId: string
+ subnet: 192.168.1.0/24
+
+- name: Delete by id
+ cisco.meraki.networks_appliance_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ staticRouteId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes_info.py
new file mode 100644
index 000000000..adf3e8d23
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_static_routes_info.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_static_routes_info
+short_description: Information module for networks _appliance _static _routes
+description:
+- Get all networks _appliance _static _routes.
+- Get networks _appliance _static _routes by id.
+- List the static routes for an MX or teleworker network.
+- Return a static route for an MX or teleworker network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ staticRouteId:
+ description:
+ - StaticRouteId path parameter. Static route ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceStaticRoute
+ description: Complete reference of the getNetworkApplianceStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-static-route
+- name: Cisco Meraki documentation for appliance getNetworkApplianceStaticRoutes
+ description: Complete reference of the getNetworkApplianceStaticRoutes API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-static-routes
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_static_route,
+ appliance.Appliance.get_network_appliance_static_routes,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/staticRoutes,
+ get /networks/{networkId}/appliance/staticRoutes/{staticRouteId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _static _routes
+ cisco.meraki.networks_appliance_static_routes_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _appliance _static _routes by id
+ cisco.meraki.networks_appliance_static_routes_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ staticRouteId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "subnet": "string",
+ "gatewayIp": "string",
+ "gatewayVlanId": "string",
+ "enabled": true
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping.py
new file mode 100644
index 000000000..88993e6c0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping
+short_description: Resource module for networks _appliance _trafficshaping
+description:
+- Manage operation update of the resource networks _appliance _trafficshaping.
+- Update the traffic shaping settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ globalBandwidthLimits:
+ description: Global per-client bandwidth limit.
+ suboptions:
+ limitDown:
+ description: The download bandwidth limit in Kbps. (0 represents no limit.).
+ type: int
+ limitUp:
+ description: The upload bandwidth limit in Kbps. (0 represents no limit.).
+ type: int
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceTrafficShaping
+ description: Complete reference of the updateNetworkApplianceTrafficShaping API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-traffic-shaping
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_traffic_shaping,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/trafficShaping,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_traffic_shaping:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ globalBandwidthLimits:
+ limitDown: 5120
+ limitUp: 2048
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_custom_performance_classes.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_custom_performance_classes.py
new file mode 100644
index 000000000..a1913416a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_custom_performance_classes.py
@@ -0,0 +1,86 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_custom_performance_classes
+short_description: Resource module for networks _appliance _trafficshaping _customperformanceclasses
+description:
+- Manage operation create of the resource networks _appliance _trafficshaping _customperformanceclasses.
+- Add a custom performance class for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ maxJitter:
+ description: Maximum jitter in milliseconds.
+ type: int
+ maxLatency:
+ description: Maximum latency in milliseconds.
+ type: int
+ maxLossPercentage:
+ description: Maximum percentage of packet loss.
+ type: int
+ name:
+ description: Name of the custom performance class.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance createNetworkApplianceTrafficShapingCustomPerformanceClass
+ description: Complete reference of the createNetworkApplianceTrafficShapingCustomPerformanceClass API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-appliance-traffic-shaping-custom-performance-class
+notes:
+ - SDK Method used are
+ appliance.Appliance.create_network_appliance_traffic_shaping_custom_performance_class,
+
+ - Paths used are
+ post /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_appliance_traffic_shaping_custom_performance_classes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ maxJitter: 100
+ maxLatency: 100
+ maxLossPercentage: 5
+ name: myCustomPerformanceClass
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_info.py
new file mode 100644
index 000000000..ff936ddae
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_info
+short_description: Information module for networks _appliance _trafficshaping
+description:
+- Get all networks _appliance _trafficshaping.
+- Display the traffic shaping settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShaping
+ description: Complete reference of the getNetworkApplianceTrafficShaping API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_traffic_shaping,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/trafficShaping,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _trafficshaping
+ cisco.meraki.networks_appliance_traffic_shaping_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules.py
new file mode 100644
index 000000000..2cad196ff
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules.py
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_rules
+short_description: Resource module for networks _appliance _trafficshaping _rules
+description:
+- Manage operation update of the resource networks _appliance _trafficshaping _rules.
+- Update the traffic shaping settings rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ defaultRulesEnabled:
+ description: Whether default traffic shaping rules are enabled (true) or disabled
+ (false). There are 4 default rules, which can be seen on your network's traffic
+ shaping page. Note that default rules count against the rule limit of 8.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An array of traffic shaping rules. Rules are applied in the order that
+ they are specified in. An empty list (or null) means no rules. Note that you are
+ allowed a maximum of 8 rules.
+ elements: dict
+ suboptions:
+ definitions:
+ description: A list of objects describing the definitions of your traffic shaping
+ rule. At least one definition is required.
+ elements: dict
+ suboptions:
+ type:
+ description: The type of definition. Can be one of 'application', 'applicationCategory',
+ 'host', 'port', 'ipRange' or 'localNet'.
+ type: str
+ value:
+ description: If "type" is 'host', 'port', 'ipRange' or 'localNet', then
+ "value" must be a string, matching either a hostname (e.g. "somesite.com"),
+ a port (e.g. 8080), or an IP range ("192.1.0.0", "192.1.0.0/16", or "10.1.0.0/16
+ 80"). 'localNet' also supports CIDR notation, excluding custom ports.
+ If "type" is 'application' or 'applicationCategory', then "value" must
+ be an object with the structure { "id" "meraki layer7/..." }, where "id"
+ is the application category or application ID (for a list of IDs for your
+ network, use the trafficShaping/applicationCategories endpoint).
+ type: str
+ type: list
+ dscpTagValue:
+ description: The DSCP tag applied by your rule. Null means 'Do not change DSCP
+ tag'. For a list of possible tag values, use the trafficShaping/dscpTaggingOptions
+ endpoint.
+ type: int
+ perClientBandwidthLimits:
+ description: An object describing the bandwidth settings for your rule.
+ suboptions:
+ bandwidthLimits:
+ description: The bandwidth limits object, specifying the upload ('limitUp')
+ and download ('limitDown') speed in Kbps. These are only enforced if 'settings'
+ is set to 'custom'.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps).
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps).
+ type: int
+ type: dict
+ settings:
+ description: How bandwidth limits are applied by your rule. Can be one of
+ 'network default', 'ignore' or 'custom'.
+ type: str
+ type: dict
+ priority:
+ description: A string, indicating the priority level for packets bound to your
+ rule. Can be 'low', 'normal' or 'high'.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceTrafficShapingRules
+ description: Complete reference of the updateNetworkApplianceTrafficShapingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-traffic-shaping-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_traffic_shaping_rules,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/trafficShaping/rules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_traffic_shaping_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultRulesEnabled: true
+ networkId: string
+ rules:
+ - definitions:
+ - type: host
+ value: google.com
+ - type: port
+ value: '9090'
+ - type: ipRange
+ value: 192.1.0.0
+ - type: ipRange
+ value: 192.1.0.0/16
+ - type: ipRange
+ value: 10.1.0.0/16:80
+ - type: localNet
+ value: 192.168.0.0/16
+ dscpTagValue: 0
+ perClientBandwidthLimits:
+ bandwidthLimits:
+ limitDown: 1000000
+ limitUp: 1000000
+ settings: custom
+ priority: normal
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules_info.py
new file mode 100644
index 000000000..c691a5aba
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_rules_info
+short_description: Information module for networks _appliance _trafficshaping _rules
+description:
+- Get all networks _appliance _trafficshaping _rules.
+- Display the traffic shaping settings rules for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShapingRules
+ description: Complete reference of the getNetworkApplianceTrafficShapingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_traffic_shaping_rules,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/trafficShaping/rules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _trafficshaping _rules
+ cisco.meraki.networks_appliance_traffic_shaping_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth.py
new file mode 100644
index 000000000..6a516b4a0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_uplink_bandwidth
+short_description: Resource module for networks _appliance _trafficshaping _uplinkbandwidth
+description:
+- Manage operation update of the resource networks _appliance _trafficshaping _uplinkbandwidth.
+- Updates the uplink bandwidth settings for your MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ bandwidthLimits:
+ description: A mapping of uplinks to their bandwidth settings (be sure to check
+ which uplinks are supported for your network).
+ suboptions:
+ cellular:
+ description: The bandwidth settings for the 'cellular' uplink.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ type: dict
+ wan1:
+ description: The bandwidth settings for the 'wan1' uplink.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ type: dict
+ wan2:
+ description: The bandwidth settings for the 'wan2' uplink.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ type: dict
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceTrafficShapingUplinkBandwidth
+ description: Complete reference of the updateNetworkApplianceTrafficShapingUplinkBandwidth API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-traffic-shaping-uplink-bandwidth
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_traffic_shaping_uplink_bandwidth,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_traffic_shaping_uplink_bandwidth:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bandwidthLimits:
+ cellular:
+ limitDown: 51200
+ limitUp: 51200
+ wan1:
+ limitDown: 1000000
+ limitUp: 1000000
+ wan2:
+ limitDown: 1000000
+ limitUp: 1000000
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth_info.py
new file mode 100644
index 000000000..6d79cb2b2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_bandwidth_info.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_uplink_bandwidth_info
+short_description: Information module for networks _appliance _trafficshaping _uplinkbandwidth
+description:
+- Get all networks _appliance _trafficshaping _uplinkbandwidth.
+- >
+ Returns the uplink bandwidth limits for your MX network. This may not reflect the affected device's hardware
+ capabilities. For more information on your device's hardware capabilities, please consult our MX Family Datasheet
+ - https //meraki.cisco.com/product-collateral/mx-family-datasheet/?file .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShapingUplinkBandwidth
+ description: Complete reference of the getNetworkApplianceTrafficShapingUplinkBandwidth API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping-uplink-bandwidth
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_traffic_shaping_uplink_bandwidth,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _trafficshaping _uplinkbandwidth
+ cisco.meraki.networks_appliance_traffic_shaping_uplink_bandwidth_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "wan1": {
+ "limitUp": 0,
+ "limitDown": 0
+ },
+ "wan2": {
+ "limitUp": 0,
+ "limitDown": 0
+ },
+ "cellular": {
+ "limitUp": 0,
+ "limitDown": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection.py
new file mode 100644
index 000000000..1c89f8150
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection.py
@@ -0,0 +1,369 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_uplink_selection
+short_description: Resource module for networks _appliance _trafficshaping _uplinkselection
+description:
+- Manage operation update of the resource networks _appliance _trafficshaping _uplinkselection.
+- Update uplink selection settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ activeActiveAutoVpnEnabled:
+ description: Toggle for enabling or disabling active-active AutoVPN.
+ type: bool
+ defaultUplink:
+ description: The default uplink. Must be one of 'wan1' or 'wan2'.
+ type: str
+ failoverAndFailback:
+ description: WAN failover and failback behavior.
+ suboptions:
+ immediate:
+ description: Immediate WAN transition terminates all flows (new and existing)
+ on current WAN when it is deemed unreliable.
+ suboptions:
+ enabled:
+ description: Toggle for enabling or disabling immediate WAN failover and
+ failback.
+ type: bool
+ type: dict
+ type: dict
+ loadBalancingEnabled:
+ description: Toggle for enabling or disabling load balancing.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ vpnTrafficUplinkPreferences:
+ description: Array of uplink preference rules for VPN traffic.
+ elements: dict
+ suboptions:
+ failOverCriterion:
+ description: Fail over criterion for this uplink preference rule. Must be one
+ of 'poorPerformance' or 'uplinkDown'.
+ type: str
+ performanceClass:
+ description: Performance class setting for this uplink preference rule.
+ suboptions:
+ builtinPerformanceClassName:
+ description: Name of builtin performance class, must be present when performanceClass
+ type is 'builtin', and value must be one of 'VoIP'.
+ type: str
+ customPerformanceClassId:
+ description: ID of created custom performance class, must be present when
+ performanceClass type is 'custom'.
+ type: str
+ type:
+ description: Type of this performance class. Must be one of 'builtin' or
+ 'custom'.
+ type: str
+ type: dict
+ preferredUplink:
+ description: Preferred uplink for this uplink preference rule. Must be one of
+ 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'.
+ type: str
+ trafficFilters:
+ description: Array of traffic filters for this uplink preference rule.
+ elements: dict
+ suboptions:
+ type:
+ description: Type of this traffic filter. Must be one of 'applicationCategory',
+ 'application' or 'custom'.
+ type: str
+ value:
+ description: Value object of this traffic filter.
+ suboptions:
+ destination:
+ description: Destination of this custom type traffic filter.
+ suboptions:
+ cidr:
+ description: CIDR format address, or "any". E.g. "192.168.10.0/24",
+ "192.168.10.1" (same as "192.168.10.1/32"), "0.0.0.0/0" (same
+ as "any").
+ type: str
+ fqdn:
+ description: FQDN format address. Currently only availabe in 'destination'
+ of 'vpnTrafficUplinkPreference' object. E.g. 'www.google.com'.
+ type: str
+ host:
+ description: Host ID in the VLAN, should be used along with 'vlan',
+ and not exceed the vlan subnet capacity. Currently only available
+ under a template network.
+ type: int
+ network:
+ description: Meraki network ID. Currently only available under a
+ template network, and the value should be ID of either same template
+ network, or another template network currently. E.g. "L_12345678".
+ type: str
+ port:
+ description: E.g. "any", "0" (also means "any"), "8080", "1-1024".
+ type: str
+ vlan:
+ description: VLAN ID of the configured VLAN in the Meraki network.
+ Currently only available under a template network.
+ type: int
+ type: dict
+ id:
+ description: ID of this applicationCategory or application type traffic
+ filter. E.g. "meraki layer7/category/1", "meraki layer7/application/4".
+ type: str
+ protocol:
+ description: Protocol of this custom type traffic filter. Must be one
+ of 'tcp', 'udp', 'icmp', 'icmp6' or 'any'.
+ type: str
+ source:
+ description: Source of this custom type traffic filter.
+ suboptions:
+ cidr:
+ description: CIDR format address, or "any". E.g. "192.168.10.0/24",
+ "192.168.10.1" (same as "192.168.10.1/32"), "0.0.0.0/0" (same
+ as "any").
+ type: str
+ host:
+ description: Host ID in the VLAN, should be used along with 'vlan',
+ and not exceed the vlan subnet capacity. Currently only available
+ under a template network.
+ type: int
+ network:
+ description: Meraki network ID. Currently only available under a
+ template network, and the value should be ID of either same template
+ network, or another template network currently. E.g. "L_12345678".
+ type: str
+ port:
+ description: E.g. "any", "0" (also means "any"), "8080", "1-1024".
+ type: str
+ vlan:
+ description: VLAN ID of the configured VLAN in the Meraki network.
+ Currently only available under a template network.
+ type: int
+ type: dict
+ type: dict
+ type: list
+ type: list
+ wanTrafficUplinkPreferences:
+ description: Array of uplink preference rules for WAN traffic.
+ elements: dict
+ suboptions:
+ preferredUplink:
+ description: Preferred uplink for this uplink preference rule. Must be one of
+ 'wan1' or 'wan2'.
+ type: str
+ trafficFilters:
+ description: Array of traffic filters for this uplink preference rule.
+ elements: dict
+ suboptions:
+ type:
+ description: Type of this traffic filter. Must be one of 'custom'.
+ type: str
+ value:
+ description: Value object of this traffic filter.
+ suboptions:
+ destination:
+ description: Destination of this custom type traffic filter.
+ suboptions:
+ cidr:
+ description: CIDR format address, or "any". E.g. "192.168.10.0/24",
+ "192.168.10.1" (same as "192.168.10.1/32"), "0.0.0.0/0" (same
+ as "any").
+ type: str
+ port:
+ description: E.g. "any", "0" (also means "any"), "8080", "1-1024".
+ type: str
+ type: dict
+ protocol:
+ description: Protocol of this custom type traffic filter. Must be one
+ of 'tcp', 'udp', 'icmp6' or 'any'.
+ type: str
+ source:
+ description: Source of this custom type traffic filter.
+ suboptions:
+ cidr:
+ description: CIDR format address, or "any". E.g. "192.168.10.0/24",
+ "192.168.10.1" (same as "192.168.10.1/32"), "0.0.0.0/0" (same
+ as "any").
+ type: str
+ host:
+ description: Host ID in the VLAN, should be used along with 'vlan',
+ and not exceed the vlan subnet capacity. Currently only available
+ under a template network.
+ type: int
+ port:
+ description: E.g. "any", "0" (also means "any"), "8080", "1-1024".
+ type: str
+ vlan:
+ description: VLAN ID of the configured VLAN in the Meraki network.
+ Currently only available under a template network.
+ type: int
+ type: dict
+ type: dict
+ type: list
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceTrafficShapingUplinkSelection
+ description: Complete reference of the updateNetworkApplianceTrafficShapingUplinkSelection API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-traffic-shaping-uplink-selection
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_traffic_shaping_uplink_selection,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/trafficShaping/uplinkSelection,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_traffic_shaping_uplink_selection:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ activeActiveAutoVpnEnabled: true
+ defaultUplink: wan1
+ failoverAndFailback:
+ immediate:
+ enabled: true
+ loadBalancingEnabled: true
+ networkId: string
+ vpnTrafficUplinkPreferences:
+ - failOverCriterion: poorPerformance
+ performanceClass:
+ builtinPerformanceClassName: VoIP
+ customPerformanceClassId: '123456'
+ type: custom
+ preferredUplink: bestForVoIP
+ trafficFilters:
+ - type: applicationCategory
+ value:
+ destination:
+ cidr: any
+ fqdn: www.google.com
+ host: 254
+ network: L_12345678
+ port: 1-1024
+ vlan: 10
+ id: meraki:layer7/category/1
+ protocol: tcp
+ source:
+ cidr: 192.168.1.0/24
+ host: 200
+ network: L_23456789
+ port: any
+ vlan: 20
+ wanTrafficUplinkPreferences:
+ - preferredUplink: wan1
+ trafficFilters:
+ - type: custom
+ value:
+ destination:
+ cidr: any
+ port: any
+ protocol: tcp
+ source:
+ cidr: 192.168.1.0/24
+ host: 254
+ port: 1-1024
+ vlan: 10
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "activeActiveAutoVpnEnabled": true,
+ "defaultUplink": "string",
+ "loadBalancingEnabled": true,
+ "failoverAndFailback": {
+ "immediate": {
+ "enabled": true
+ }
+ },
+ "wanTrafficUplinkPreferences": [
+ {
+ "trafficFilters": [
+ {
+ "type": "string",
+ "value": {
+ "protocol": "string",
+ "source": {
+ "port": "string",
+ "cidr": "string",
+ "vlan": 0,
+ "host": 0
+ },
+ "destination": {
+ "port": "string",
+ "cidr": "string"
+ }
+ }
+ }
+ ],
+ "preferredUplink": "string"
+ }
+ ],
+ "vpnTrafficUplinkPreferences": [
+ {
+ "trafficFilters": [
+ {
+ "type": "string",
+ "value": {
+ "id": "string",
+ "protocol": "string",
+ "source": {
+ "port": "string",
+ "cidr": "string",
+ "network": "string",
+ "vlan": 0,
+ "host": 0
+ },
+ "destination": {
+ "port": "string",
+ "cidr": "string",
+ "network": "string",
+ "vlan": 0,
+ "host": 0,
+ "fqdn": "string"
+ }
+ }
+ }
+ ],
+ "preferredUplink": "string",
+ "failOverCriterion": "string",
+ "performanceClass": {
+ "type": "string",
+ "builtinPerformanceClassName": "string",
+ "customPerformanceClassId": "string"
+ }
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection_info.py
new file mode 100644
index 000000000..5041d31b4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_traffic_shaping_uplink_selection_info.py
@@ -0,0 +1,142 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_traffic_shaping_uplink_selection_info
+short_description: Information module for networks _appliance _trafficshaping _uplinkselection
+description:
+- Get all networks _appliance _trafficshaping _uplinkselection.
+- Show uplink selection settings for an MX network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShapingUplinkSelection
+ description: Complete reference of the getNetworkApplianceTrafficShapingUplinkSelection API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping-uplink-selection
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_traffic_shaping_uplink_selection,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/trafficShaping/uplinkSelection,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _trafficshaping _uplinkselection
+ cisco.meraki.networks_appliance_traffic_shaping_uplink_selection_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "activeActiveAutoVpnEnabled": true,
+ "defaultUplink": "string",
+ "loadBalancingEnabled": true,
+ "failoverAndFailback": {
+ "immediate": {
+ "enabled": true
+ }
+ },
+ "wanTrafficUplinkPreferences": [
+ {
+ "trafficFilters": [
+ {
+ "type": "string",
+ "value": {
+ "protocol": "string",
+ "source": {
+ "port": "string",
+ "cidr": "string",
+ "vlan": 0,
+ "host": 0
+ },
+ "destination": {
+ "port": "string",
+ "cidr": "string"
+ }
+ }
+ }
+ ],
+ "preferredUplink": "string"
+ }
+ ],
+ "vpnTrafficUplinkPreferences": [
+ {
+ "trafficFilters": [
+ {
+ "type": "string",
+ "value": {
+ "id": "string",
+ "protocol": "string",
+ "source": {
+ "port": "string",
+ "cidr": "string",
+ "network": "string",
+ "vlan": 0,
+ "host": 0
+ },
+ "destination": {
+ "port": "string",
+ "cidr": "string",
+ "network": "string",
+ "vlan": 0,
+ "host": 0,
+ "fqdn": "string"
+ }
+ }
+ }
+ ],
+ "preferredUplink": "string",
+ "failOverCriterion": "string",
+ "performanceClass": {
+ "type": "string",
+ "builtinPerformanceClassName": "string",
+ "customPerformanceClassId": "string"
+ }
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans.py
new file mode 100644
index 000000000..1f7c9cf27
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans.py
@@ -0,0 +1,364 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vlans
+short_description: Resource module for networks _appliance _vlans
+description:
+- Manage operations create, update and delete of the resource networks _appliance _vlans.
+- Add a VLAN.
+- Delete a VLAN from a network.
+- Update a VLAN.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ applianceIp:
+ description: The local IP of the appliance on the VLAN.
+ type: str
+ cidr:
+ description: CIDR of the pool of subnets. Applicable only for template network.
+ Each network bound to the template will automatically pick a subnet from this
+ pool to build its own VLAN.
+ type: str
+ dhcpBootFilename:
+ description: DHCP boot option for boot filename.
+ type: str
+ dhcpBootNextServer:
+ description: DHCP boot option to direct boot clients to the server to load the boot
+ file from.
+ type: str
+ dhcpBootOptionsEnabled:
+ description: Use DHCP boot options specified in other properties.
+ type: bool
+ dhcpHandling:
+ description: The appliance's handling of DHCP requests on this VLAN. One of 'Run
+ a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'.
+ type: str
+ dhcpLeaseTime:
+ description: The term of DHCP leases if the appliance is running a DHCP server on
+ this VLAN. One of '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1
+ week'.
+ type: str
+ dhcpOptions:
+ description: The list of DHCP options that will be included in DHCP responses. Each
+ object in the list should have "code", "type", and "value" properties.
+ elements: dict
+ suboptions:
+ code:
+ description: The code for the DHCP option. This should be an integer between
+ 2 and 254.
+ type: str
+ type:
+ description: The type for the DHCP option. One of 'text', 'ip', 'hex' or 'integer'.
+ type: str
+ value:
+ description: The value for the DHCP option.
+ type: str
+ type: list
+ dhcpRelayServerIps:
+ description: The IPs of the DHCP servers that DHCP requests should be relayed to.
+ elements: str
+ type: list
+ dnsNameservers:
+ description: The DNS nameservers used for DHCP responses, either "upstream_dns",
+ "google_dns", "opendns", or a newline seperated string of IP addresses or domain
+ names.
+ type: str
+ fixedIpAssignments:
+ description: The DHCP fixed IP assignments on the VLAN. This should be an object
+ that contains mappings from MAC addresses to objects that themselves each contain
+ "ip" and "name" string fields. See the sample request/response for more details.
+ type: dict
+ groupPolicyId:
+ description: The id of the desired group policy to apply to the VLAN.
+ type: str
+ id:
+ description: The VLAN ID of the new VLAN (must be between 1 and 4094).
+ type: str
+ ipv6:
+ description: IPv6 configuration on the VLAN.
+ suboptions:
+ enabled:
+ description: Enable IPv6 on VLAN.
+ type: bool
+ prefixAssignments:
+ description: Prefix assignments on the VLAN.
+ elements: dict
+ suboptions:
+ autonomous:
+ description: Auto assign a /64 prefix from the origin to the VLAN.
+ type: bool
+ origin:
+ description: The origin of the prefix.
+ suboptions:
+ interfaces:
+ description: Interfaces associated with the prefix.
+ elements: str
+ type: list
+ type:
+ description: Type of the origin.
+ type: str
+ type: dict
+ staticApplianceIp6:
+ description: Manual configuration of the IPv6 Appliance IP.
+ type: str
+ staticPrefix:
+ description: Manual configuration of a /64 prefix on the VLAN.
+ type: str
+ type: list
+ type: dict
+ mandatoryDhcp:
+ description: Mandatory DHCP will enforce that clients connecting to this VLAN must
+ use the IP address assigned by the DHCP server. Clients who use a static IP address
+ won't be able to associate. Only available on firmware versions 17.0 and above.
+ suboptions:
+ enabled:
+ description: Enable Mandatory DHCP on VLAN.
+ type: bool
+ type: dict
+ mask:
+ description: Mask used for the subnet of all bound to the template networks. Applicable
+ only for template network.
+ type: int
+ name:
+ description: The name of the new VLAN.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ reservedIpRanges:
+ description: The DHCP reserved IP ranges on the VLAN.
+ elements: dict
+ suboptions:
+ comment:
+ description: A text comment for the reserved range.
+ type: str
+ end:
+ description: The last IP in the reserved range.
+ type: str
+ start:
+ description: The first IP in the reserved range.
+ type: str
+ type: list
+ subnet:
+ description: The subnet of the VLAN.
+ type: str
+ templateVlanType:
+ description: Type of subnetting of the VLAN. Applicable only for template network.
+ type: str
+ vlanId:
+ description: VlanId path parameter. Vlan ID.
+ type: str
+ vpnNatSubnet:
+ description: The translated VPN subnet if VPN and VPN subnet translation are enabled
+ on the VLAN.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance createNetworkApplianceVlan
+ description: Complete reference of the createNetworkApplianceVlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-appliance-vlan
+- name: Cisco Meraki documentation for appliance deleteNetworkApplianceVlan
+ description: Complete reference of the deleteNetworkApplianceVlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-appliance-vlan
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceVlan
+ description: Complete reference of the updateNetworkApplianceVlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-vlan
+notes:
+ - SDK Method used are
+ appliance.Appliance.create_network_appliance_vlan,
+ appliance.Appliance.delete_network_appliance_vlan,
+ appliance.Appliance.update_network_appliance_vlan,
+
+ - Paths used are
+ post /networks/{networkId}/appliance/vlans,
+ delete /networks/{networkId}/appliance/vlans/{vlanId},
+ put /networks/{networkId}/appliance/vlans/{vlanId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_appliance_vlans:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ applianceIp: 192.168.1.2
+ cidr: 192.168.1.0/24
+ groupPolicyId: '101'
+ id: '1234'
+ ipv6:
+ enabled: true
+ prefixAssignments:
+ - autonomous: false
+ origin:
+ interfaces:
+ - wan0
+ type: internet
+ staticApplianceIp6: 2001:db8:3c4d:15::1
+ staticPrefix: 2001:db8:3c4d:15::/64
+ mandatoryDhcp:
+ enabled: true
+ mask: 28
+ name: My VLAN
+ networkId: string
+ subnet: 192.168.1.0/24
+ templateVlanType: same
+
+- name: Update by id
+ cisco.meraki.networks_appliance_vlans:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ adaptivePolicyGroupId: '1234'
+ applianceIp: 192.168.1.2
+ cidr: 192.168.1.0/24
+ dhcpBootFilename: sample.file
+ dhcpBootNextServer: 1.2.3.4
+ dhcpBootOptionsEnabled: false
+ dhcpHandling: Run a DHCP server
+ dhcpLeaseTime: 1 day
+ dhcpOptions:
+ - code: '5'
+ type: text
+ value: five
+ dhcpRelayServerIps:
+ - 192.168.1.0/24
+ - 192.168.128.0/24
+ dnsNameservers: google_dns
+ fixedIpAssignments:
+ 22:33:44:55:66:77:
+ ip: 1.2.3.4
+ name: Some client name
+ groupPolicyId: '101'
+ ipv6:
+ enabled: true
+ prefixAssignments:
+ - autonomous: false
+ origin:
+ interfaces:
+ - wan0
+ type: internet
+ staticApplianceIp6: 2001:db8:3c4d:15::1
+ staticPrefix: 2001:db8:3c4d:15::/64
+ mandatoryDhcp:
+ enabled: true
+ mask: 28
+ name: My VLAN
+ networkId: string
+ reservedIpRanges:
+ - comment: A reserved IP range
+ end: 192.168.1.1
+ start: 192.168.1.0
+ subnet: 192.168.1.0/24
+ templateVlanType: same
+ vlanId: string
+ vpnNatSubnet: 192.168.1.0/24
+
+- name: Delete by id
+ cisco.meraki.networks_appliance_vlans:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ vlanId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "interfaceId": "string",
+ "name": "string",
+ "subnet": "string",
+ "applianceIp": "string",
+ "groupPolicyId": "string",
+ "templateVlanType": "string",
+ "cidr": "string",
+ "mask": 0,
+ "mandatoryDhcp": {
+ "enabled": true
+ },
+ "ipv6": {
+ "enabled": true,
+ "prefixAssignments": [
+ {
+ "autonomous": true,
+ "staticPrefix": "string",
+ "staticApplianceIp6": "string",
+ "origin": {
+ "type": "string",
+ "interfaces": [
+ "string"
+ ]
+ }
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_info.py
new file mode 100644
index 000000000..015566a3c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_info.py
@@ -0,0 +1,166 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vlans_info
+short_description: Information module for networks _appliance _vlans
+description:
+- Get all networks _appliance _vlans.
+- Get networks _appliance _vlans by id.
+- List the VLANs for an MX network.
+- Return a VLAN.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ vlanId:
+ description:
+ - VlanId path parameter. Vlan ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceVlan
+ description: Complete reference of the getNetworkApplianceVlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-vlan
+- name: Cisco Meraki documentation for appliance getNetworkApplianceVlans
+ description: Complete reference of the getNetworkApplianceVlans API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-vlans
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_vlan,
+ appliance.Appliance.get_network_appliance_vlans,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/vlans,
+ get /networks/{networkId}/appliance/vlans/{vlanId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _vlans
+ cisco.meraki.networks_appliance_vlans_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _appliance _vlans by id
+ cisco.meraki.networks_appliance_vlans_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ vlanId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "interfaceId": "string",
+ "name": "string",
+ "subnet": "string",
+ "applianceIp": "string",
+ "groupPolicyId": "string",
+ "templateVlanType": "string",
+ "cidr": "string",
+ "mask": 0,
+ "dhcpRelayServerIps": [
+ "string"
+ ],
+ "dhcpHandling": "string",
+ "dhcpLeaseTime": "string",
+ "dhcpBootOptionsEnabled": true,
+ "dhcpBootNextServer": "string",
+ "dhcpBootFilename": "string",
+ "fixedIpAssignments": {},
+ "reservedIpRanges": [
+ {
+ "start": "string",
+ "end": "string",
+ "comment": "string"
+ }
+ ],
+ "dnsNameservers": "string",
+ "dhcpOptions": [
+ {
+ "code": "string",
+ "type": "string",
+ "value": "string"
+ }
+ ],
+ "vpnNatSubnet": "string",
+ "mandatoryDhcp": {
+ "enabled": true
+ },
+ "ipv6": {
+ "enabled": true,
+ "prefixAssignments": [
+ {
+ "autonomous": true,
+ "staticPrefix": "string",
+ "staticApplianceIp6": "string",
+ "origin": {
+ "type": "string",
+ "interfaces": [
+ "string"
+ ]
+ }
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings.py
new file mode 100644
index 000000000..f5bd2750f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vlans_settings
+short_description: Resource module for networks _appliance _vlans _settings
+description:
+- Manage operation update of the resource networks _appliance _vlans _settings.
+- Enable/Disable VLANs for the given network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ vlansEnabled:
+ description: Boolean indicating whether to enable (true) or disable (false) VLANs
+ for the network.
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceVlansSettings
+ description: Complete reference of the updateNetworkApplianceVlansSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-vlans-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_vlans_settings,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/vlans/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_vlans_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ vlansEnabled: true
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings_info.py
new file mode 100644
index 000000000..c4afd72c2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vlans_settings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vlans_settings_info
+short_description: Information module for networks _appliance _vlans _settings
+description:
+- Get all networks _appliance _vlans _settings.
+- Returns the enabled status of VLANs for the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceVlansSettings
+ description: Complete reference of the getNetworkApplianceVlansSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-vlans-settings
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_vlans_settings,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/vlans/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _vlans _settings
+ cisco.meraki.networks_appliance_vlans_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp.py
new file mode 100644
index 000000000..7696f737e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp.py
@@ -0,0 +1,160 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vpn_bgp
+short_description: Resource module for networks _appliance _vpn _bgp
+description:
+- Manage operation update of the resource networks _appliance _vpn _bgp.
+- Update a Hub BGP Configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ asNumber:
+ description: An Autonomous System Number (ASN) is required if you are to run BGP
+ and peer with another BGP Speaker outside of the Auto VPN domain. This ASN will
+ be applied to the entire Auto VPN domain. The entire 4-byte ASN range is supported.
+ So, the ASN must be an integer between 1 and 4294967295. When absent, this field
+ is not updated. If no value exists then it defaults to 64512.
+ type: int
+ enabled:
+ description: Boolean value to enable or disable the BGP configuration. When BGP
+ is enabled, the asNumber (ASN) will be autopopulated with the preconfigured ASN
+ at other Hubs or a default value if there is no ASN configured.
+ type: bool
+ ibgpHoldTimer:
+ description: The IBGP holdtimer in seconds. The IBGP holdtimer must be an integer
+ between 12 and 240. When absent, this field is not updated. If no value exists
+ then it defaults to 240.
+ type: int
+ neighbors:
+ description: List of BGP neighbors. This list replaces the existing set of neighbors.
+ When absent, this field is not updated.
+ elements: dict
+ suboptions:
+ allowTransit:
+ description: When this feature is on, the Meraki device will advertise routes
+ learned from other Autonomous Systems, thereby allowing traffic between Autonomous
+ Systems to transit this AS. When absent, it defaults to false.
+ type: bool
+ authentication:
+ description: Authentication settings between BGP peers.
+ suboptions:
+ password:
+ description: Password to configure MD5 authentication between BGP peers.
+ type: str
+ type: dict
+ ebgpHoldTimer:
+ description: The EBGP hold timer in seconds for each neighbor. The EBGP hold
+ timer must be an integer between 12 and 240.
+ type: int
+ ebgpMultihop:
+ description: Configure this if the neighbor is not adjacent. The EBGP multi-hop
+ must be an integer between 1 and 255.
+ type: int
+ ip:
+ description: The IPv4 address of the neighbor.
+ type: str
+ ipv6:
+ description: Information regarding IPv6 address of the neighbor, Required if
+ `ip` is not present.
+ suboptions:
+ address:
+ description: The IPv6 address of the neighbor.
+ type: str
+ type: dict
+ nextHopIp:
+ description: The IPv4 address of the remote BGP peer that will establish a TCP
+ session with the local MX.
+ type: str
+ receiveLimit:
+ description: The receive limit is the maximum number of routes that can be received
+ from any BGP peer. The receive limit must be an integer between 0 and 4294967295.
+ When absent, it defaults to 0.
+ type: int
+ remoteAsNumber:
+ description: Remote ASN of the neighbor. The remote ASN must be an integer between
+ 1 and 4294967295.
+ type: int
+ sourceInterface:
+ description: The output interface for peering with the remote BGP peer. Valid
+ values are 'wired0', 'wired1' or 'vlan{VLAN ID}'(e.g. 'vlan123').
+ type: str
+ ttlSecurity:
+ description: Settings for BGP TTL security to protect BGP peering sessions from
+ forged IP attacks.
+ suboptions:
+ enabled:
+ description: Boolean value to enable or disable BGP TTL security.
+ type: bool
+ type: dict
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceVpnBgp
+ description: Complete reference of the updateNetworkApplianceVpnBgp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-vpn-bgp
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_vpn_bgp,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/vpn/bgp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_vpn_bgp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ asNumber: 64515
+ enabled: true
+ ibgpHoldTimer: 120
+ neighbors:
+ - allowTransit: true
+ ebgpHoldTimer: 180
+ ebgpMultihop: 2
+ ip: 10.10.10.22
+ receiveLimit: 120
+ remoteAsNumber: 64343
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp_info.py
new file mode 100644
index 000000000..c2dda6cd0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_bgp_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vpn_bgp_info
+short_description: Information module for networks _appliance _vpn _bgp
+description:
+- Get all networks _appliance _vpn _bgp.
+- Return a Hub BGP Configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceVpnBgp
+ description: Complete reference of the getNetworkApplianceVpnBgp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-vpn-bgp
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_vpn_bgp,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/vpn/bgp,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _vpn _bgp
+ cisco.meraki.networks_appliance_vpn_bgp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn.py
new file mode 100644
index 000000000..f0f579bae
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vpn_site_to_site_vpn
+short_description: Resource module for networks _appliance _vpn _sitetositevpn
+description:
+- Manage operation update of the resource networks _appliance _vpn _sitetositevpn.
+- Update the site-to-site VPN settings of a network. Only valid for MX networks in NAT mode.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ hubs:
+ description: The list of VPN hubs, in order of preference. In spoke mode, at least
+ 1 hub is required.
+ elements: dict
+ suboptions:
+ hubId:
+ description: The network ID of the hub.
+ type: str
+ useDefaultRoute:
+ description: Only valid in 'spoke' mode. Indicates whether default route traffic
+ should be sent to this hub.
+ type: bool
+ type: list
+ mode:
+ description: The site-to-site VPN mode. Can be one of 'none', 'spoke' or 'hub'.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ subnets:
+ description: The list of subnets and their VPN presence.
+ elements: dict
+ suboptions:
+ localSubnet:
+ description: The CIDR notation subnet used within the VPN.
+ type: str
+ useVpn:
+ description: Indicates the presence of the subnet in the VPN.
+ type: bool
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceVpnSiteToSiteVpn
+ description: Complete reference of the updateNetworkApplianceVpnSiteToSiteVpn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-vpn-site-to-site-vpn
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_vpn_site_to_site_vpn,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/vpn/siteToSiteVpn,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_vpn_site_to_site_vpn:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ hubs:
+ - hubId: N_4901849
+ useDefaultRoute: true
+ mode: spoke
+ networkId: string
+ subnets:
+ - localSubnet: 192.168.1.0/24
+ useVpn: true
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "mode": "string",
+ "hubs": [
+ {
+ "hubId": "string",
+ "useDefaultRoute": true
+ }
+ ],
+ "subnets": [
+ {
+ "localSubnet": "string",
+ "useVpn": true
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn_info.py
new file mode 100644
index 000000000..66c039cca
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_vpn_site_to_site_vpn_info.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_vpn_site_to_site_vpn_info
+short_description: Information module for networks _appliance _vpn _sitetositevpn
+description:
+- Get all networks _appliance _vpn _sitetositevpn.
+- Return the site-to-site VPN settings of a network. Only valid for MX networks.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceVpnSiteToSiteVpn
+ description: Complete reference of the getNetworkApplianceVpnSiteToSiteVpn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-vpn-site-to-site-vpn
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_vpn_site_to_site_vpn,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/vpn/siteToSiteVpn,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _vpn _sitetositevpn
+ cisco.meraki.networks_appliance_vpn_site_to_site_vpn_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "mode": "string",
+ "hubs": [
+ {
+ "hubId": "string",
+ "useDefaultRoute": true
+ }
+ ],
+ "subnets": [
+ {
+ "localSubnet": "string",
+ "useVpn": true
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare.py
new file mode 100644
index 000000000..b917ca8e5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_warm_spare
+short_description: Resource module for networks _appliance _warmspare
+description:
+- Manage operation update of the resource networks _appliance _warmspare.
+- Update MX warm spare settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: Enable warm spare.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ spareSerial:
+ description: Serial number of the warm spare appliance.
+ type: str
+ uplinkMode:
+ description: Uplink mode, either virtual or public.
+ type: str
+ virtualIp1:
+ description: The WAN 1 shared IP.
+ type: str
+ virtualIp2:
+ description: The WAN 2 shared IP.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateNetworkApplianceWarmSpare
+ description: Complete reference of the updateNetworkApplianceWarmSpare API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-warm-spare
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_network_appliance_warm_spare,
+
+ - Paths used are
+ put /networks/{networkId}/appliance/warmSpare,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_appliance_warm_spare:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ networkId: string
+ spareSerial: Q234-ABCD-5678
+ uplinkMode: virtual
+ virtualIp1: 1.2.3.4
+ virtualIp2: 1.2.3.4
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_info.py
new file mode 100644
index 000000000..dffb15b9f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_warm_spare_info
+short_description: Information module for networks _appliance _warmspare
+description:
+- Get all networks _appliance _warmspare.
+- Return MX warm spare settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getNetworkApplianceWarmSpare
+ description: Complete reference of the getNetworkApplianceWarmSpare API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-warm-spare
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_network_appliance_warm_spare,
+
+ - Paths used are
+ get /networks/{networkId}/appliance/warmSpare,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _appliance _warmspare
+ cisco.meraki.networks_appliance_warm_spare_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_swap.py b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_swap.py
new file mode 100644
index 000000000..8c3cdd87e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_appliance_warm_spare_swap.py
@@ -0,0 +1,70 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_appliance_warm_spare_swap
+short_description: Resource module for networks _appliance _warmspare _swap
+description:
+- Manage operation create of the resource networks _appliance _warmspare _swap.
+- Swap MX primary and warm spare appliances.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance swapNetworkApplianceWarmSpare
+ description: Complete reference of the swapNetworkApplianceWarmSpare API.
+ link: https://developer.cisco.com/meraki/api-v1/#!swap-network-appliance-warm-spare
+notes:
+ - SDK Method used are
+ appliance.Appliance.swap_network_appliance_warm_spare,
+
+ - Paths used are
+ post /networks/{networkId}/appliance/warmSpare/swap,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_appliance_warm_spare_swap:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_bind.py b/ansible_collections/cisco/meraki/plugins/modules/networks_bind.py
new file mode 100644
index 000000000..c285acd32
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_bind.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_bind
+short_description: Resource module for networks _bind
+description:
+- Manage operation create of the resource networks _bind.
+- Bind a network to a template.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ autoBind:
+ description: Optional boolean indicating whether the network's switches should automatically
+ bind to profiles of the same model. Defaults to false if left unspecified. This
+ option only affects switch networks and switch templates. Auto-bind is not valid
+ unless the switch template has at least one profile and has at most one profile
+ per switch model.
+ type: bool
+ configTemplateId:
+ description: The ID of the template to which the network should be bound.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks bindNetwork
+ description: Complete reference of the bindNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!bind-network
+notes:
+ - SDK Method used are
+ networks.Networks.bind_network,
+
+ - Paths used are
+ post /networks/{networkId}/bind,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_bind:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ autoBind: false
+ configTemplateId: N_23952905
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_bluetooth_clients_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_bluetooth_clients_info.py
new file mode 100644
index 000000000..4b6ffedef
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_bluetooth_clients_info.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_bluetooth_clients_info
+short_description: Information module for networks _bluetoothclients
+description:
+- Get networks _bluetoothclients by id.
+- Return a Bluetooth client. Bluetooth clients can be identified by their ID or their MAC.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ bluetoothClientId:
+ description:
+ - BluetoothClientId path parameter. Bluetooth client ID.
+ type: str
+ includeConnectivityHistory:
+ description:
+ - IncludeConnectivityHistory query parameter. Include the connectivity history for this client.
+ type: bool
+ connectivityHistoryTimespan:
+ description:
+ - >
+ ConnectivityHistoryTimespan query parameter. The timespan, in seconds, for the connectivityHistory data. By
+ default 1 day, 86400, will be used.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkBluetoothClient
+ description: Complete reference of the getNetworkBluetoothClient API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-bluetooth-client
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_bluetooth_client,
+
+ - Paths used are
+ get /networks/{networkId}/bluetoothClients/{bluetoothClientId},
+"""
+
+EXAMPLES = r"""
+- name: Get networks _bluetoothclients by id
+ cisco.meraki.networks_bluetooth_clients_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ includeConnectivityHistory: True
+ connectivityHistoryTimespan: 0
+ networkId: string
+ bluetoothClientId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles.py b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles.py
new file mode 100644
index 000000000..07d1c5567
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles.py
@@ -0,0 +1,359 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_camera_quality_retention_profiles
+short_description: Resource module for networks _camera _qualityretentionprofiles
+description:
+- Manage operations create, update and delete of the resource networks _camera _qualityretentionprofiles.
+- Creates new quality retention profile for this network.
+- Delete an existing quality retention profile for this network.
+- Update an existing quality retention profile for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ audioRecordingEnabled:
+ description: Whether or not to record audio. Can be either true or false. Defaults
+ to false.
+ type: bool
+ cloudArchiveEnabled:
+ description: Create redundant video backup using Cloud Archive. Can be either true
+ or false. Defaults to false.
+ type: bool
+ maxRetentionDays:
+ description: The maximum number of days for which the data will be stored, or 'null'
+ to keep data until storage space runs out. If the former, it can be one of 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 30, 60, 90 days.
+ type: int
+ motionBasedRetentionEnabled:
+ description: Deletes footage older than 3 days in which no motion was detected.
+ Can be either true or false. Defaults to false. This setting does not apply to
+ MV2 cameras.
+ type: bool
+ motionDetectorVersion:
+ description: The version of the motion detector that will be used by the camera.
+ Only applies to Gen 2 cameras. Defaults to v2.
+ type: int
+ name:
+ description: The name of the new profile. Must be unique. This parameter is required.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ qualityRetentionProfileId:
+ description: QualityRetentionProfileId path parameter. Quality retention profile
+ ID.
+ type: str
+ restrictedBandwidthModeEnabled:
+ description: Disable features that require additional bandwidth such as Motion Recap.
+ Can be either true or false. Defaults to false. This setting does not apply to
+ MV2 cameras.
+ type: bool
+ scheduleId:
+ description: Schedule for which this camera will record video, or 'null' to always
+ record.
+ type: str
+ videoSettings:
+ description: Video quality and resolution settings for all the camera models.
+ suboptions:
+ MV12/MV22/MV72:
+ description: Quality and resolution for MV12/MV22/MV72 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1280x720' or '1920x1080'.
+ type: str
+ type: dict
+ MV12WE:
+ description: Quality and resolution for MV12WE camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1280x720' or '1920x1080'.
+ type: str
+ type: dict
+ MV13:
+ description: Quality and resolution for MV13 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1080x1080' or '2688x1512'.
+ type: str
+ type: dict
+ MV21/MV71:
+ description: Quality and resolution for MV21/MV71 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1280x720'.
+ type: str
+ type: dict
+ MV22X/MV72X:
+ description: Quality and resolution for MV22X/MV72X camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1280x720', '1920x1080'
+ or '2688x1512'.
+ type: str
+ type: dict
+ MV32:
+ description: Quality and resolution for MV32 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1080x1080' or '2058x2058'.
+ type: str
+ type: dict
+ MV33:
+ description: Quality and resolution for MV33 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1080x1080' or '2112x2112'.
+ type: str
+ type: dict
+ MV52:
+ description: Quality and resolution for MV52 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1280x720', '1920x1080',
+ '2688x1512' or '3840x2160'.
+ type: str
+ type: dict
+ MV63:
+ description: Quality and resolution for MV63 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1920x1080' or '2688x1512'.
+ type: str
+ type: dict
+ MV63X:
+ description: Quality and resolution for MV63X camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1920x1080', '2688x1512'
+ or '3840x2160'.
+ type: str
+ type: dict
+ MV93:
+ description: Quality and resolution for MV93 camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1080x1080' or '2112x2112'.
+ type: str
+ type: dict
+ MV93X:
+ description: Quality and resolution for MV93X camera models.
+ suboptions:
+ quality:
+ description: Quality of the camera. Can be one of 'Standard', 'Enhanced'
+ or 'High'.
+ type: str
+ resolution:
+ description: Resolution of the camera. Can be one of '1080x1080', '2112x2112'
+ or '2880x2880'.
+ type: str
+ type: dict
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera createNetworkCameraQualityRetentionProfile
+ description: Complete reference of the createNetworkCameraQualityRetentionProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-camera-quality-retention-profile
+- name: Cisco Meraki documentation for camera deleteNetworkCameraQualityRetentionProfile
+ description: Complete reference of the deleteNetworkCameraQualityRetentionProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-camera-quality-retention-profile
+- name: Cisco Meraki documentation for camera updateNetworkCameraQualityRetentionProfile
+ description: Complete reference of the updateNetworkCameraQualityRetentionProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-camera-quality-retention-profile
+notes:
+ - SDK Method used are
+ camera.Camera.create_network_camera_quality_retention_profile,
+ camera.Camera.delete_network_camera_quality_retention_profile,
+ camera.Camera.update_network_camera_quality_retention_profile,
+
+ - Paths used are
+ post /networks/{networkId}/camera/qualityRetentionProfiles,
+ delete /networks/{networkId}/camera/qualityRetentionProfiles/{qualityRetentionProfileId},
+ put /networks/{networkId}/camera/qualityRetentionProfiles/{qualityRetentionProfileId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_camera_quality_retention_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: Sample quality retention profile
+ networkId: string
+
+- name: Update by id
+ cisco.meraki.networks_camera_quality_retention_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ audioRecordingEnabled: true
+ cloudArchiveEnabled: true
+ maxRetentionDays: 0
+ motionBasedRetentionEnabled: true
+ motionDetectorVersion: 0
+ name: string
+ networkId: string
+ qualityRetentionProfileId: string
+ restrictedBandwidthModeEnabled: true
+ scheduleId: string
+ videoSettings:
+ MV12/MV22/MV72:
+ quality: string
+ resolution: string
+ MV12WE:
+ quality: string
+ resolution: string
+ MV13:
+ quality: string
+ resolution: string
+ MV21/MV71:
+ quality: string
+ resolution: string
+ MV22X/MV72X:
+ quality: string
+ resolution: string
+ MV32:
+ quality: string
+ resolution: string
+ MV33:
+ quality: string
+ resolution: string
+ MV52:
+ quality: string
+ resolution: string
+ MV63:
+ quality: string
+ resolution: string
+ MV63X:
+ quality: string
+ resolution: string
+ MV93:
+ quality: string
+ resolution: string
+ MV93X:
+ quality: string
+ resolution: string
+
+- name: Delete by id
+ cisco.meraki.networks_camera_quality_retention_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ qualityRetentionProfileId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles_info.py
new file mode 100644
index 000000000..d6db755e8
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_quality_retention_profiles_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_camera_quality_retention_profiles_info
+short_description: Information module for networks _camera _qualityretentionprofiles
+description:
+- Get all networks _camera _qualityretentionprofiles.
+- Get networks _camera _qualityretentionprofiles by id.
+- List the quality retention profiles for this network.
+- Retrieve a single quality retention profile.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ qualityRetentionProfileId:
+ description:
+ - QualityRetentionProfileId path parameter. Quality retention profile ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera getNetworkCameraQualityRetentionProfile
+ description: Complete reference of the getNetworkCameraQualityRetentionProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-camera-quality-retention-profile
+- name: Cisco Meraki documentation for camera getNetworkCameraQualityRetentionProfiles
+ description: Complete reference of the getNetworkCameraQualityRetentionProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-camera-quality-retention-profiles
+notes:
+ - SDK Method used are
+ camera.Camera.get_network_camera_quality_retention_profile,
+ camera.Camera.get_network_camera_quality_retention_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/camera/qualityRetentionProfiles,
+ get /networks/{networkId}/camera/qualityRetentionProfiles/{qualityRetentionProfileId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _camera _qualityretentionprofiles
+ cisco.meraki.networks_camera_quality_retention_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _camera _qualityretentionprofiles by id
+ cisco.meraki.networks_camera_quality_retention_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ qualityRetentionProfileId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles.py b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles.py
new file mode 100644
index 000000000..b5b602f26
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles.py
@@ -0,0 +1,184 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_camera_wireless_profiles
+short_description: Resource module for networks _camera _wirelessprofiles
+description:
+- Manage operations create, update and delete of the resource networks _camera _wirelessprofiles.
+- Creates a new camera wireless profile for this network.
+- Delete an existing camera wireless profile for this network.
+- Update an existing camera wireless profile in this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ identity:
+ description: The identity of the wireless profile. Required for creating wireless
+ profiles in 8021x-radius auth mode.
+ suboptions:
+ password:
+ description: The password of the identity.
+ type: str
+ username:
+ description: The username of the identity.
+ type: str
+ type: dict
+ name:
+ description: The name of the camera wireless profile. This parameter is required.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ ssid:
+ description: The details of the SSID config.
+ suboptions:
+ authMode:
+ description: The auth mode of the SSID. It can be set to ('psk', '8021x-radius').
+ type: str
+ encryptionMode:
+ description: The encryption mode of the SSID. It can be set to ('wpa', 'wpa-eap').
+ With 'wpa' mode, the authMode should be 'psk' and with 'wpa-eap' the authMode
+ should be '8021x-radius'.
+ type: str
+ name:
+ description: The name of the SSID.
+ type: str
+ psk:
+ description: The pre-shared key of the SSID.
+ type: str
+ type: dict
+ wirelessProfileId:
+ description: WirelessProfileId path parameter. Wireless profile ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera createNetworkCameraWirelessProfile
+ description: Complete reference of the createNetworkCameraWirelessProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-camera-wireless-profile
+- name: Cisco Meraki documentation for camera deleteNetworkCameraWirelessProfile
+ description: Complete reference of the deleteNetworkCameraWirelessProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-camera-wireless-profile
+- name: Cisco Meraki documentation for camera updateNetworkCameraWirelessProfile
+ description: Complete reference of the updateNetworkCameraWirelessProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-camera-wireless-profile
+notes:
+ - SDK Method used are
+ camera.Camera.create_network_camera_wireless_profile,
+ camera.Camera.delete_network_camera_wireless_profile,
+ camera.Camera.update_network_camera_wireless_profile,
+
+ - Paths used are
+ post /networks/{networkId}/camera/wirelessProfiles,
+ delete /networks/{networkId}/camera/wirelessProfiles/{wirelessProfileId},
+ put /networks/{networkId}/camera/wirelessProfiles/{wirelessProfileId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_camera_wireless_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: wireless profile A
+ networkId: string
+ ssid:
+ authMode: 8021x-radius
+ encryptionMode: wpa-eap
+ name: ssid test
+
+- name: Update by id
+ cisco.meraki.networks_camera_wireless_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ identity:
+ password: string
+ username: string
+ name: string
+ networkId: string
+ ssid:
+ authMode: string
+ encryptionMode: string
+ name: string
+ psk: string
+ wirelessProfileId: string
+
+- name: Delete by id
+ cisco.meraki.networks_camera_wireless_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ wirelessProfileId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles_info.py
new file mode 100644
index 000000000..89628d32f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_camera_wireless_profiles_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_camera_wireless_profiles_info
+short_description: Information module for networks _camera _wirelessprofiles
+description:
+- Get all networks _camera _wirelessprofiles.
+- Get networks _camera _wirelessprofiles by id.
+- List the camera wireless profiles for this network.
+- Retrieve a single camera wireless profile.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ wirelessProfileId:
+ description:
+ - WirelessProfileId path parameter. Wireless profile ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera getNetworkCameraWirelessProfile
+ description: Complete reference of the getNetworkCameraWirelessProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-camera-wireless-profile
+- name: Cisco Meraki documentation for camera getNetworkCameraWirelessProfiles
+ description: Complete reference of the getNetworkCameraWirelessProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-camera-wireless-profiles
+notes:
+ - SDK Method used are
+ camera.Camera.get_network_camera_wireless_profile,
+ camera.Camera.get_network_camera_wireless_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/camera/wirelessProfiles,
+ get /networks/{networkId}/camera/wirelessProfiles/{wirelessProfileId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _camera _wirelessprofiles
+ cisco.meraki.networks_camera_wireless_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _camera _wirelessprofiles by id
+ cisco.meraki.networks_camera_wireless_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ wirelessProfileId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations.py
new file mode 100644
index 000000000..669b4fd49
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations.py
@@ -0,0 +1,95 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_connectivity_monitoring_destinations
+short_description: Resource module for networks _cellulargateway _connectivitymonitoringdestinations
+description:
+- Manage operation update of the resource networks _cellulargateway _connectivitymonitoringdestinations.
+- Update the connectivity testing destinations for an MG network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ destinations:
+ description: The list of connectivity monitoring destinations.
+ elements: dict
+ suboptions:
+ default:
+ description: Boolean indicating whether this is the default testing destination
+ (true) or not (false). Defaults to false. Only one default is allowed.
+ type: bool
+ description:
+ description: Description of the testing destination. Optional, defaults to an
+ empty string.
+ type: str
+ ip:
+ description: The IP address to test connectivity with.
+ type: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway updateNetworkCellularGatewayConnectivityMonitoringDestinations
+ description: Complete reference of the updateNetworkCellularGatewayConnectivityMonitoringDestinations API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-cellular-gateway-connectivity-monitoring-destinations
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.update_network_cellular_gateway_connectivity_monitoring_destinations,
+
+ - Paths used are
+ put /networks/{networkId}/cellularGateway/connectivityMonitoringDestinations,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_cellular_gateway_connectivity_monitoring_destinations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ destinations:
+ - default: false
+ description: Google
+ ip: 8.8.8.8
+ - default: true
+ description: test description
+ ip: 1.23.45.67
+ - ip: 9.8.7.6
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations_info.py
new file mode 100644
index 000000000..03e1d295c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_connectivity_monitoring_destinations_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_connectivity_monitoring_destinations_info
+short_description: Information module for networks _cellulargateway _connectivitymonitoringdestinations
+description:
+- Get all networks _cellulargateway _connectivitymonitoringdestinations.
+- Return the connectivity testing destinations for an MG network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway getNetworkCellularGatewayConnectivityMonitoringDestinations
+ description: Complete reference of the getNetworkCellularGatewayConnectivityMonitoringDestinations API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-cellular-gateway-connectivity-monitoring-destinations
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.get_network_cellular_gateway_connectivity_monitoring_destinations,
+
+ - Paths used are
+ get /networks/{networkId}/cellularGateway/connectivityMonitoringDestinations,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _cellulargateway _connectivitymonitoringdestinations
+ cisco.meraki.networks_cellular_gateway_connectivity_monitoring_destinations_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp.py
new file mode 100644
index 000000000..a2ee4ddc7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp.py
@@ -0,0 +1,95 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_dhcp
+short_description: Resource module for networks _cellulargateway _dhcp
+description:
+- Manage operation update of the resource networks _cellulargateway _dhcp.
+- Update common DHCP settings of MGs.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ dhcpLeaseTime:
+ description: DHCP Lease time for all MG of the network. Possible values are '30
+ minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'.
+ type: str
+ dnsCustomNameservers:
+ description: List of fixed IPs representing the the DNS Name servers when the mode
+ is 'custom'.
+ elements: str
+ type: list
+ dnsNameservers:
+ description: DNS name servers mode for all MG of the network. Possible values are
+ 'upstream_dns', 'google_dns', 'opendns', 'custom'.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway updateNetworkCellularGatewayDhcp
+ description: Complete reference of the updateNetworkCellularGatewayDhcp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-cellular-gateway-dhcp
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.update_network_cellular_gateway_dhcp,
+
+ - Paths used are
+ put /networks/{networkId}/cellularGateway/dhcp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_cellular_gateway_dhcp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ dhcpLeaseTime: 1 hour
+ dnsCustomNameservers:
+ - 172.16.2.111
+ - 172.16.2.30
+ dnsNameservers: custom
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "dhcpLeaseTime": "string",
+ "dnsNameservers": "string",
+ "dnsCustomNameservers": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp_info.py
new file mode 100644
index 000000000..51263c0cf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_dhcp_info.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_dhcp_info
+short_description: Information module for networks _cellulargateway _dhcp
+description:
+- Get all networks _cellulargateway _dhcp.
+- List common DHCP settings of MGs.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway getNetworkCellularGatewayDhcp
+ description: Complete reference of the getNetworkCellularGatewayDhcp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-cellular-gateway-dhcp
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.get_network_cellular_gateway_dhcp,
+
+ - Paths used are
+ get /networks/{networkId}/cellularGateway/dhcp,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _cellulargateway _dhcp
+ cisco.meraki.networks_cellular_gateway_dhcp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "dhcpLeaseTime": "string",
+ "dnsNameservers": "string",
+ "dnsCustomNameservers": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool.py
new file mode 100644
index 000000000..8e2586106
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_subnet_pool
+short_description: Resource module for networks _cellulargateway _subnetpool
+description:
+- Manage operation update of the resource networks _cellulargateway _subnetpool.
+- Update the subnet pool and mask configuration for MGs in the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ cidr:
+ description: CIDR of the pool of subnets. Each MG in this network will automatically
+ pick a subnet from this pool.
+ type: str
+ mask:
+ description: Mask used for the subnet of all MGs in this network.
+ type: int
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway updateNetworkCellularGatewaySubnetPool
+ description: Complete reference of the updateNetworkCellularGatewaySubnetPool API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-cellular-gateway-subnet-pool
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.update_network_cellular_gateway_subnet_pool,
+
+ - Paths used are
+ put /networks/{networkId}/cellularGateway/subnetPool,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_cellular_gateway_subnet_pool:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ cidr: 192.168.0.0/16
+ deploymentMode: routed
+ mask: 24
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool_info.py
new file mode 100644
index 000000000..270363463
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_subnet_pool_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_subnet_pool_info
+short_description: Information module for networks _cellulargateway _subnetpool
+description:
+- Get all networks _cellulargateway _subnetpool.
+- Return the subnet pool and mask configured for MGs in the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway getNetworkCellularGatewaySubnetPool
+ description: Complete reference of the getNetworkCellularGatewaySubnetPool API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-cellular-gateway-subnet-pool
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.get_network_cellular_gateway_subnet_pool,
+
+ - Paths used are
+ get /networks/{networkId}/cellularGateway/subnetPool,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _cellulargateway _subnetpool
+ cisco.meraki.networks_cellular_gateway_subnet_pool_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink.py
new file mode 100644
index 000000000..b3d5f70ae
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink.py
@@ -0,0 +1,86 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_uplink
+short_description: Resource module for networks _cellulargateway _uplink
+description:
+- Manage operation update of the resource networks _cellulargateway _uplink.
+- Updates the uplink settings for your MG network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ bandwidthLimits:
+ description: The bandwidth settings for the 'cellular' uplink.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps). Null indicates no
+ limit.
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps). Null indicates no
+ limit.
+ type: int
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway updateNetworkCellularGatewayUplink
+ description: Complete reference of the updateNetworkCellularGatewayUplink API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-cellular-gateway-uplink
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.update_network_cellular_gateway_uplink,
+
+ - Paths used are
+ put /networks/{networkId}/cellularGateway/uplink,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_cellular_gateway_uplink:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bandwidthLimits:
+ limitDown: 0
+ limitUp: 0
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink_info.py
new file mode 100644
index 000000000..8c46b24c3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_cellular_gateway_uplink_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_cellular_gateway_uplink_info
+short_description: Information module for networks _cellulargateway _uplink
+description:
+- Get all networks _cellulargateway _uplink.
+- Returns the uplink settings for your MG network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway getNetworkCellularGatewayUplink
+ description: Complete reference of the getNetworkCellularGatewayUplink API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-cellular-gateway-uplink
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.get_network_cellular_gateway_uplink,
+
+ - Paths used are
+ get /networks/{networkId}/cellularGateway/uplink,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _cellulargateway _uplink
+ cisco.meraki.networks_cellular_gateway_uplink_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_client_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_client_info.py
new file mode 100644
index 000000000..6db5bcbdb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_client_info.py
@@ -0,0 +1,118 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_client_info
+short_description: Information module for networks _client
+description:
+- Get networks _client by id.
+- >
+ Return the client associated with the given identifier. Clients can be identified by a client key or either the
+ MAC or IP depending on whether the network uses Track-by-IP.
+version_added: '1.0.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ clientId:
+ description:
+ - ClientId path parameter. Client ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkClient
+ description: Complete reference of the getNetworkClient API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-client
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_client,
+
+ - Paths used are
+ get /networks/{networkId}/clients/{clientId},
+"""
+
+EXAMPLES = r"""
+- name: Get networks _client by id
+ cisco.meraki.networks_client_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ clientId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "mac": "string",
+ "ip": "string",
+ "ip6": "string",
+ "description": "string",
+ "firstSeen": 0,
+ "lastSeen": 0,
+ "manufacturer": "string",
+ "os": "string",
+ "user": "string",
+ "vlan": "string",
+ "ssid": "string",
+ "switchport": "string",
+ "wirelessCapabilities": "string",
+ "smInstalled": true,
+ "recentDeviceMac": "string",
+ "clientVpnConnections": [
+ {
+ "remoteIp": "string",
+ "connectedAt": 0,
+ "disconnectedAt": 0
+ }
+ ],
+ "lldp": [
+ [
+ "string"
+ ]
+ ],
+ "cdp": [
+ [
+ "string"
+ ]
+ ],
+ "status": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_info.py
new file mode 100644
index 000000000..fb08a9ba1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_info.py
@@ -0,0 +1,199 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_info
+short_description: Information module for networks _clients
+description:
+- Get all networks _clients.
+- List the clients that have used this network in the timespan.
+version_added: '1.0.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is
+ 1 day.
+ type: float
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ statuses:
+ description:
+ - Statuses query parameter. Filters clients based on status. Can be one of 'Online' or 'Offline'.
+ elements: str
+ type: list
+ ip:
+ description:
+ - Ip query parameter. Filters clients based on a partial or full match for the ip address field.
+ type: str
+ ip6:
+ description:
+ - Ip6 query parameter. Filters clients based on a partial or full match for the ip6 address field.
+ type: str
+ ip6Local:
+ description:
+ - Ip6Local query parameter. Filters clients based on a partial or full match for the ip6Local address field.
+ type: str
+ mac:
+ description:
+ - Mac query parameter. Filters clients based on a partial or full match for the mac address field.
+ type: str
+ os:
+ description:
+ - Os query parameter. Filters clients based on a partial or full match for the os (operating system) field.
+ type: str
+ pskGroup:
+ description:
+ - PskGroup query parameter. Filters clients based on partial or full match for the iPSK name field.
+ type: str
+ description:
+ description:
+ - Description query parameter. Filters clients based on a partial or full match for the description field.
+ type: str
+ vlan:
+ description:
+ - Vlan query parameter. Filters clients based on the full match for the VLAN field.
+ type: str
+ recentDeviceConnections:
+ description:
+ - >
+ RecentDeviceConnections query parameter. Filters clients based on recent connection type. Can be one of
+ 'Wired' or 'Wireless'.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkClients
+ description: Complete reference of the getNetworkClients API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-clients
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_clients,
+
+ - Paths used are
+ get /networks/{networkId}/clients,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _clients
+ cisco.meraki.networks_clients_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_caller: "{{meraki_caller}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ timespan: 0
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ statuses: []
+ ip: string
+ ip6: string
+ ip6Local: string
+ mac: string
+ os: string
+ pskGroup: string
+ description: string
+ vlan: string
+ recentDeviceConnections: []
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "mac": "string",
+ "ip": "string",
+ "ip6": "string",
+ "description": "string",
+ "firstSeen": 0,
+ "lastSeen": 0,
+ "manufacturer": "string",
+ "os": "string",
+ "user": "string",
+ "vlan": "string",
+ "ssid": "string",
+ "switchport": "string",
+ "wirelessCapabilities": "string",
+ "smInstalled": true,
+ "recentDeviceMac": "string",
+ "status": "string",
+ "usage": {
+ "sent": 0,
+ "recv": 0
+ },
+ "namedVlan": "string",
+ "adaptivePolicyGroup": "string",
+ "deviceTypePrediction": "string",
+ "recentDeviceSerial": "string",
+ "recentDeviceName": "string",
+ "recentDeviceConnection": "string",
+ "notes": "string",
+ "ip6Local": "string",
+ "groupPolicy8021x": "string",
+ "pskGroup": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_overview_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_overview_info.py
new file mode 100644
index 000000000..834ea73ed
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_overview_info.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_overview_info
+short_description: Information module for networks _clients _overview
+description:
+- Get all networks _clients _overview.
+- Return overview statistics for network clients.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are
+ 7200, 86400, 604800, 2592000. The default is 604800.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkClientsOverview
+ description: Complete reference of the getNetworkClientsOverview API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-clients-overview
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_clients_overview,
+
+ - Paths used are
+ get /networks/{networkId}/clients/overview,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _clients _overview
+ cisco.meraki.networks_clients_overview_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy.py
new file mode 100644
index 000000000..445d19e37
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_policy
+short_description: Resource module for networks _clients _policy
+description:
+- Manage operation update of the resource networks _clients _policy.
+- >
+ Update the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC
+ or IP depending on whether the network uses Track-by-IP.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ clientId:
+ description: ClientId path parameter. Client ID.
+ type: str
+ devicePolicy:
+ description: The policy to assign. Can be 'Whitelisted', 'Blocked', 'Normal' or
+ 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: Optional If 'devicePolicy' is set to 'Group policy' this param is used
+ to specify the group policy ID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkClientPolicy
+ description: Complete reference of the updateNetworkClientPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-client-policy
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_client_policy,
+
+ - Paths used are
+ put /networks/{networkId}/clients/{clientId}/policy,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_clients_policy:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ clientId: string
+ devicePolicy: Group policy
+ groupPolicyId: '101'
+ mac: 00:11:22:33:44:55
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy_info.py
new file mode 100644
index 000000000..c1d7205e9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_policy_info.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_policy_info
+short_description: Information module for networks _clients _policy
+description:
+- Get all networks _clients _policy.
+- >
+ Return the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC
+ or IP depending on whether the network uses Track-by-IP.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ clientId:
+ description:
+ - ClientId path parameter. Client ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkClientPolicy
+ description: Complete reference of the getNetworkClientPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-client-policy
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_client_policy,
+
+ - Paths used are
+ get /networks/{networkId}/clients/{clientId}/policy,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _clients _policy
+ cisco.meraki.networks_clients_policy_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ clientId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_provision.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_provision.py
new file mode 100644
index 000000000..b605f7fbf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_provision.py
@@ -0,0 +1,306 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_provision
+short_description: Resource module for networks _clients _provision
+description:
+- Manage operation create of the resource networks _clients _provision.
+- Provisions a client with a name and policy. Clients can be provisioned before they associate to the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ clients:
+ description: The array of clients to provision.
+ elements: dict
+ suboptions:
+ mac:
+ description: The MAC address of the client. Required.
+ type: str
+ name:
+ description: The display name for the client. Optional. Limited to 255 bytes.
+ type: str
+ type: list
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Group policy',
+ 'Allowed', 'Blocked', 'Per connection' or 'Normal'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client. Required
+ if 'devicePolicy' is set to "Group policy". Otherwise this is ignored.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ policiesBySecurityAppliance:
+ description: An object, describing what the policy-connection association is for
+ the security appliance. (Only relevant if the security appliance is actually within
+ the network).
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked' or 'Normal'. Required.
+ type: str
+ type: dict
+ policiesBySsid:
+ description: An object, describing the policy-connection associations for each active
+ SSID within the network. Keys should be the number of enabled SSIDs, mapping to
+ an object describing the client's policy.
+ suboptions:
+ '0':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '1':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '10':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '11':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '12':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '13':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '14':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '2':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '3':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '4':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '5':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '6':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '7':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '8':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ '9':
+ description: The number for the SSID.
+ suboptions:
+ devicePolicy:
+ description: The policy to apply to the specified client. Can be 'Allowed',
+ 'Blocked', 'Normal' or 'Group policy'. Required.
+ type: str
+ groupPolicyId:
+ description: The ID of the desired group policy to apply to the client.
+ Required if 'devicePolicy' is set to "Group policy". Otherwise this is
+ ignored.
+ type: str
+ type: dict
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks provisionNetworkClients
+ description: Complete reference of the provisionNetworkClients API.
+ link: https://developer.cisco.com/meraki/api-v1/#!provision-network-clients
+notes:
+ - SDK Method used are
+ networks.Networks.provision_network_clients,
+
+ - Paths used are
+ post /networks/{networkId}/clients/provision,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_clients_provision:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ clients:
+ - clientId: k74272e
+ mac: 00:11:22:33:44:55
+ name: Miles's phone
+ devicePolicy: Group policy
+ groupPolicyId: '101'
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status.py
new file mode 100644
index 000000000..43cf8d357
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status.py
@@ -0,0 +1,194 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_splash_authorization_status
+short_description: Resource module for networks _clients _splashauthorizationstatus
+description:
+- Manage operation update of the resource networks _clients _splashauthorizationstatus.
+- >
+ Update a client's splash authorization. Clients can be identified by a client key or either the MAC or IP
+ depending on whether the network uses Track-by-IP.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ clientId:
+ description: ClientId path parameter. Client ID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ ssids:
+ description: The target SSIDs. Each SSID must be enabled and must have Click-through
+ splash enabled. For each SSID where isAuthorized is true, the expiration time
+ will automatically be set according to the SSID's splash frequency. Not all networks
+ support configuring all SSIDs.
+ suboptions:
+ '0':
+ description: Splash authorization for SSID 0.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '1':
+ description: Splash authorization for SSID 1.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '10':
+ description: Splash authorization for SSID 10.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '11':
+ description: Splash authorization for SSID 11.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '12':
+ description: Splash authorization for SSID 12.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '13':
+ description: Splash authorization for SSID 13.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '14':
+ description: Splash authorization for SSID 14.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '2':
+ description: Splash authorization for SSID 2.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '3':
+ description: Splash authorization for SSID 3.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '4':
+ description: Splash authorization for SSID 4.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '5':
+ description: Splash authorization for SSID 5.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '6':
+ description: Splash authorization for SSID 6.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '7':
+ description: Splash authorization for SSID 7.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '8':
+ description: Splash authorization for SSID 8.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ '9':
+ description: Splash authorization for SSID 9.
+ suboptions:
+ isAuthorized:
+ description: New authorization status for the SSID (true, false).
+ type: bool
+ type: dict
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkClientSplashAuthorizationStatus
+ description: Complete reference of the updateNetworkClientSplashAuthorizationStatus API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-client-splash-authorization-status
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_client_splash_authorization_status,
+
+ - Paths used are
+ put /networks/{networkId}/clients/{clientId}/splashAuthorizationStatus,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_clients_splash_authorization_status:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ clientId: string
+ networkId: string
+ ssids:
+ '0':
+ isAuthorized: true
+ '2':
+ isAuthorized: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status_info.py
new file mode 100644
index 000000000..972f09e64
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_clients_splash_authorization_status_info.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_clients_splash_authorization_status_info
+short_description: Information module for networks _clients _splashauthorizationstatus
+description:
+- Get all networks _clients _splashauthorizationstatus.
+- >
+ Return the splash authorization for a client, for each SSID they've associated with through splash. Only enabled
+ SSIDs with Click-through splash enabled will be included. Clients can be identified by a client key or either the
+ MAC or IP depending on whether the network uses Track-by-IP.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ clientId:
+ description:
+ - ClientId path parameter. Client ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkClientSplashAuthorizationStatus
+ description: Complete reference of the getNetworkClientSplashAuthorizationStatus API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-client-splash-authorization-status
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_client_splash_authorization_status,
+
+ - Paths used are
+ get /networks/{networkId}/clients/{clientId}/splashAuthorizationStatus,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _clients _splashauthorizationstatus
+ cisco.meraki.networks_clients_splash_authorization_status_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ clientId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim.py b/ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim.py
new file mode 100644
index 000000000..81aca9acd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_devices_claim
+short_description: Resource module for networks _devices _claim
+description:
+- Manage operation create of the resource networks _devices _claim.
+- >
+ Claim devices into a network. Note for recently claimed devices, it may take a few minutes for API requsts against
+ that device to succeed .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ serials:
+ description: A list of serials of devices to claim.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks claimNetworkDevices
+ description: Complete reference of the claimNetworkDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!claim-network-devices
+notes:
+ - SDK Method used are
+ networks.Networks.claim_network_devices,
+
+ - Paths used are
+ post /networks/{networkId}/devices/claim,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_devices_claim:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim_vmx.py b/ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim_vmx.py
new file mode 100644
index 000000000..ba4165db7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_devices_claim_vmx.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_devices_claim_vmx
+short_description: Resource module for networks _devices _claim _vmx
+description:
+- Manage operation create of the resource networks _devices _claim _vmx.
+- Claim a vMX into a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ size:
+ description: The size of the vMX you claim. It can be one of small, medium, large,
+ 100.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks vmxNetworkDevicesClaim
+ description: Complete reference of the vmxNetworkDevicesClaim API.
+ link: https://developer.cisco.com/meraki/api-v1/#!vmx-network-devices-claim
+notes:
+ - SDK Method used are
+ networks.Networks.vmx_network_devices_claim,
+
+ - Paths used are
+ post /networks/{networkId}/devices/claim/vmx,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_devices_claim_vmx:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ size: small
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_devices_remove.py b/ansible_collections/cisco/meraki/plugins/modules/networks_devices_remove.py
new file mode 100644
index 000000000..059766557
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_devices_remove.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_devices_remove
+short_description: Resource module for networks _devices _remove
+description:
+- Manage operation create of the resource networks _devices _remove.
+- Remove a single device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ serial:
+ description: The serial of a device.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks removeNetworkDevices
+ description: Complete reference of the removeNetworkDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!remove-network-devices
+notes:
+ - SDK Method used are
+ networks.Networks.remove_network_devices,
+
+ - Paths used are
+ post /networks/{networkId}/devices/remove,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_devices_remove:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ serial: Q234-ABCD-5678
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_events_event_types_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_events_event_types_info.py
new file mode 100644
index 000000000..98cbd5079
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_events_event_types_info.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_events_event_types_info
+short_description: Information module for networks _events _eventtypes
+description:
+- Get all networks _events _eventtypes.
+- List the event type to human-readable description.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkEventsEventTypes
+ description: Complete reference of the getNetworkEventsEventTypes API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-events-event-types
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_events_event_types,
+
+ - Paths used are
+ get /networks/{networkId}/events/eventTypes,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _events _eventtypes
+ cisco.meraki.networks_events_event_types_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "category": "string",
+ "type": "string",
+ "description": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_events_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_events_info.py
new file mode 100644
index 000000000..98ed26a1f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_events_info.py
@@ -0,0 +1,201 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_events_info
+short_description: Information module for networks _events
+description:
+- Get all networks _events.
+- List the events for the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ productType:
+ description:
+ - >
+ ProductType query parameter. The product type to fetch events for. This parameter is required for networks
+ with multiple device types. Valid types are wireless, appliance, switch, systemsManager, camera, and
+ cellularGateway.
+ type: str
+ includedEventTypes:
+ description:
+ - >
+ IncludedEventTypes query parameter. A list of event types. The returned events will be filtered to only
+ include events with these types.
+ elements: str
+ type: list
+ excludedEventTypes:
+ description:
+ - >
+ ExcludedEventTypes query parameter. A list of event types. The returned events will be filtered to exclude
+ events with these types.
+ elements: str
+ type: list
+ deviceMac:
+ description:
+ - DeviceMac query parameter. The MAC address of the Meraki device which the list of events will be filtered with.
+ type: str
+ deviceSerial:
+ description:
+ - DeviceSerial query parameter. The serial of the Meraki device which the list of events will be filtered with.
+ type: str
+ deviceName:
+ description:
+ - DeviceName query parameter. The name of the Meraki device which the list of events will be filtered with.
+ type: str
+ clientIp:
+ description:
+ - >
+ ClientIp query parameter. The IP of the client which the list of events will be filtered with. Only
+ supported for track-by-IP networks.
+ type: str
+ clientMac:
+ description:
+ - >
+ ClientMac query parameter. The MAC address of the client which the list of events will be filtered with.
+ Only supported for track-by-MAC networks.
+ type: str
+ clientName:
+ description:
+ - >
+ ClientName query parameter. The name, or partial name, of the client which the list of events will be
+ filtered with.
+ type: str
+ smDeviceMac:
+ description:
+ - >
+ SmDeviceMac query parameter. The MAC address of the Systems Manager device which the list of events will be
+ filtered with.
+ type: str
+ smDeviceName:
+ description:
+ - >
+ SmDeviceName query parameter. The name of the Systems Manager device which the list of events will be
+ filtered with.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkEvents
+ description: Complete reference of the getNetworkEvents API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-events
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_events,
+
+ - Paths used are
+ get /networks/{networkId}/events,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _events
+ cisco.meraki.networks_events_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ productType: string
+ includedEventTypes: []
+ excludedEventTypes: []
+ deviceMac: string
+ deviceSerial: string
+ deviceName: string
+ clientIp: string
+ clientMac: string
+ clientName: string
+ smDeviceMac: string
+ smDeviceName: string
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "message": "string",
+ "pageStartAt": "string",
+ "pageEndAt": "string",
+ "events": [
+ {
+ "occurredAt": "string",
+ "networkId": "string",
+ "type": "string",
+ "description": "string",
+ "category": "string",
+ "clientId": "string",
+ "clientDescription": "string",
+ "clientMac": "string",
+ "deviceSerial": "string",
+ "deviceName": "string",
+ "ssidNumber": 0,
+ "eventData": {
+ "radio": "string",
+ "vap": "string",
+ "client_mac": "string",
+ "client_ip": "string",
+ "channel": "string",
+ "rssi": "string",
+ "aid": "string"
+ }
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades.py
new file mode 100644
index 000000000..54e5cc1de
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades.py
@@ -0,0 +1,539 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades
+short_description: Resource module for networks _firmwareupgrades
+description:
+- Manage operation update of the resource networks _firmwareupgrades.
+- Update firmware upgrade information for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ products:
+ description: Contains information about the network to update.
+ suboptions:
+ appliance:
+ description: The network device to be updated.
+ suboptions:
+ nextUpgrade:
+ description: The pending firmware upgrade if it exists.
+ suboptions:
+ time:
+ description: The time of the last successful upgrade.
+ type: str
+ toVersion:
+ description: The version to be updated to.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ participateInNextBetaRelease:
+ description: Whether or not the network wants beta firmware.
+ type: bool
+ type: dict
+ camera:
+ description: The network device to be updated.
+ suboptions:
+ nextUpgrade:
+ description: The pending firmware upgrade if it exists.
+ suboptions:
+ time:
+ description: The time of the last successful upgrade.
+ type: str
+ toVersion:
+ description: The version to be updated to.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ participateInNextBetaRelease:
+ description: Whether or not the network wants beta firmware.
+ type: bool
+ type: dict
+ cellularGateway:
+ description: The network device to be updated.
+ suboptions:
+ nextUpgrade:
+ description: The pending firmware upgrade if it exists.
+ suboptions:
+ time:
+ description: The time of the last successful upgrade.
+ type: str
+ toVersion:
+ description: The version to be updated to.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ participateInNextBetaRelease:
+ description: Whether or not the network wants beta firmware.
+ type: bool
+ type: dict
+ sensor:
+ description: The network device to be updated.
+ suboptions:
+ nextUpgrade:
+ description: The pending firmware upgrade if it exists.
+ suboptions:
+ time:
+ description: The time of the last successful upgrade.
+ type: str
+ toVersion:
+ description: The version to be updated to.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ participateInNextBetaRelease:
+ description: Whether or not the network wants beta firmware.
+ type: bool
+ type: dict
+ switch:
+ description: The network device to be updated.
+ suboptions:
+ nextUpgrade:
+ description: The pending firmware upgrade if it exists.
+ suboptions:
+ time:
+ description: The time of the last successful upgrade.
+ type: str
+ toVersion:
+ description: The version to be updated to.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ participateInNextBetaRelease:
+ description: Whether or not the network wants beta firmware.
+ type: bool
+ type: dict
+ wireless:
+ description: The network device to be updated.
+ suboptions:
+ nextUpgrade:
+ description: The pending firmware upgrade if it exists.
+ suboptions:
+ time:
+ description: The time of the last successful upgrade.
+ type: str
+ toVersion:
+ description: The version to be updated to.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ participateInNextBetaRelease:
+ description: Whether or not the network wants beta firmware.
+ type: bool
+ type: dict
+ type: dict
+ timezone:
+ description: The timezone for the network.
+ type: str
+ upgradeWindow:
+ description: Upgrade window for devices in network.
+ suboptions:
+ dayOfWeek:
+ description: Day of the week.
+ type: str
+ hourOfDay:
+ description: Hour of the day.
+ type: str
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkFirmwareUpgrades
+ description: Complete reference of the updateNetworkFirmwareUpgrades API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-firmware-upgrades
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_firmware_upgrades,
+
+ - Paths used are
+ put /networks/{networkId}/firmwareUpgrades,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_firmware_upgrades:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ products:
+ appliance:
+ nextUpgrade:
+ time: '2019-03-17T17:22:52Z'
+ toVersion:
+ id: '1001'
+ participateInNextBetaRelease: false
+ camera:
+ nextUpgrade:
+ time: '2019-03-17T17:22:52Z'
+ toVersion:
+ id: '1003'
+ participateInNextBetaRelease: false
+ cellularGateway:
+ nextUpgrade:
+ time: '2019-03-17T17:22:52Z'
+ toVersion:
+ id: '1004'
+ participateInNextBetaRelease: false
+ sensor:
+ nextUpgrade:
+ time: '2019-03-17T17:22:52Z'
+ toVersion:
+ id: '1005'
+ participateInNextBetaRelease: false
+ switch:
+ nextUpgrade:
+ time: '2019-03-17T17:22:52Z'
+ toVersion:
+ id: '1002'
+ participateInNextBetaRelease: false
+ wireless:
+ nextUpgrade:
+ time: '2019-03-17T17:22:52Z'
+ toVersion:
+ id: '1000'
+ participateInNextBetaRelease: false
+ timezone: America/Los_Angeles
+ upgradeWindow:
+ dayOfWeek: sun
+ hourOfDay: '4:00'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "upgradeWindow": {
+ "dayOfWeek": "string",
+ "hourOfDay": "string"
+ },
+ "timezone": "string",
+ "products": {
+ "wireless": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "appliance": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "switch": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "camera": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "cellularGateway": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "sensor": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_info.py
new file mode 100644
index 000000000..49cf472c2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_info.py
@@ -0,0 +1,359 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_info
+short_description: Information module for networks _firmwareupgrades
+description:
+- Get all networks _firmwareupgrades.
+- Get firmware upgrade information for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkFirmwareUpgrades
+ description: Complete reference of the getNetworkFirmwareUpgrades API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-firmware-upgrades
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_firmware_upgrades,
+
+ - Paths used are
+ get /networks/{networkId}/firmwareUpgrades,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _firmwareupgrades
+ cisco.meraki.networks_firmware_upgrades_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "upgradeWindow": {
+ "dayOfWeek": "string",
+ "hourOfDay": "string"
+ },
+ "timezone": "string",
+ "products": {
+ "wireless": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "appliance": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "switch": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "camera": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "cellularGateway": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ },
+ "sensor": {
+ "currentVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "lastUpgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "nextUpgrade": {
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ },
+ "availableVersions": [
+ {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ ],
+ "participateInNextBetaRelease": true
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_rollbacks.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_rollbacks.py
new file mode 100644
index 000000000..f68a20e14
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_rollbacks.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_rollbacks
+short_description: Resource module for networks _firmwareupgrades _rollbacks
+description:
+- Manage operation create of the resource networks _firmwareupgrades _rollbacks.
+- Rollback a Firmware Upgrade For A Network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ product:
+ description: Product type to rollback (if the network is a combined network).
+ type: str
+ reasons:
+ description: Reasons for the rollback.
+ elements: dict
+ suboptions:
+ category:
+ description: Reason for the rollback.
+ type: str
+ comment:
+ description: Additional comment about the rollback.
+ type: str
+ type: list
+ time:
+ description: Scheduled time for the rollback.
+ type: str
+ toVersion:
+ description: Version to downgrade to (if the network has firmware flexibility).
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkFirmwareUpgradesRollback
+ description: Complete reference of the createNetworkFirmwareUpgradesRollback API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-firmware-upgrades-rollback
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_firmware_upgrades_rollback,
+
+ - Paths used are
+ post /networks/{networkId}/firmwareUpgrades/rollbacks,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_firmware_upgrades_rollbacks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ product: switch
+ reasons:
+ - category: performance
+ comment: Network was slower with the upgrade
+ time: '2020-10-21T02:00:00Z'
+ toVersion:
+ id: '7857'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "product": "string",
+ "status": "string",
+ "upgradeBatchId": "string",
+ "time": "string",
+ "toVersion": {
+ "id": "string",
+ "firmware": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "reasons": [
+ {
+ "category": "string",
+ "comment": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events.py
new file mode 100644
index 000000000..7602effc6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events.py
@@ -0,0 +1,189 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_events
+short_description: Resource module for networks _firmwareupgrades _staged _events
+description:
+- Manage operations create and update of the resource networks _firmwareupgrades _staged _events.
+- Create a Staged Upgrade Event for a network.
+- Update the Staged Upgrade Event for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ products:
+ description: Contains firmware upgrade version information.
+ suboptions:
+ switch:
+ description: Version information for the switch network being upgraded.
+ suboptions:
+ nextUpgrade:
+ description: The next upgrade version for the switch network.
+ suboptions:
+ toVersion:
+ description: The version to be updated to for switch devices.
+ suboptions:
+ id:
+ description: The version ID.
+ type: str
+ type: dict
+ type: dict
+ type: dict
+ type: dict
+ stages:
+ description: All firmware upgrade stages in the network with their start time.
+ elements: dict
+ suboptions:
+ group:
+ description: The Staged Upgrade Group containing the name and ID.
+ suboptions:
+ id:
+ description: ID of the Staged Upgrade Group.
+ type: str
+ type: dict
+ milestones:
+ description: The Staged Upgrade Milestones for the specific stage.
+ suboptions:
+ scheduledFor:
+ description: The start time of the staged upgrade stage. (In ISO-8601 format,
+ in the time zone of the network.).
+ type: str
+ type: dict
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkFirmwareUpgradesStagedEvent
+ description: Complete reference of the createNetworkFirmwareUpgradesStagedEvent API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-firmware-upgrades-staged-event
+- name: Cisco Meraki documentation for networks updateNetworkFirmwareUpgradesStagedEvents
+ description: Complete reference of the updateNetworkFirmwareUpgradesStagedEvents API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-firmware-upgrades-staged-events
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_firmware_upgrades_staged_event,
+ networks.Networks.update_network_firmware_upgrades_staged_events,
+
+ - Paths used are
+ post /networks/{networkId}/firmwareUpgrades/staged/events,
+ put /networks/{networkId}/firmwareUpgrades/staged/events,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_firmware_upgrades_staged_events:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ stages:
+ - group:
+ id: '1234'
+ milestones:
+ scheduledFor: '2018-02-11T00:00:00Z'
+
+- name: Create
+ cisco.meraki.networks_firmware_upgrades_staged_events:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ products:
+ switch:
+ nextUpgrade:
+ toVersion:
+ id: '1234'
+ stages:
+ - group:
+ id: '1234'
+ milestones:
+ scheduledFor: '2018-02-11T00:00:00Z'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "products": {
+ "switch": {
+ "nextUpgrade": {
+ "toVersion": {
+ "id": "string",
+ "shortName": "string"
+ }
+ }
+ }
+ },
+ "stages": [
+ {
+ "group": {
+ "id": "string",
+ "name": "string",
+ "description": "string"
+ },
+ "milestones": {
+ "scheduledFor": "string",
+ "startedAt": "string",
+ "completedAt": "string",
+ "canceledAt": "string"
+ },
+ "status": "string"
+ }
+ ],
+ "reasons": [
+ {
+ "category": "string",
+ "comment": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_defer.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_defer.py
new file mode 100644
index 000000000..eb7bd60d4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_defer.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_events_defer
+short_description: Resource module for networks _firmwareupgrades _staged _events _defer
+description:
+- Manage operation create of the resource networks _firmwareupgrades _staged _events _defer.
+- Postpone by 1 week all pending staged upgrade stages for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks deferNetworkFirmwareUpgradesStagedEvents
+ description: Complete reference of the deferNetworkFirmwareUpgradesStagedEvents API.
+ link: https://developer.cisco.com/meraki/api-v1/#!defer-network-firmware-upgrades-staged-events
+notes:
+ - SDK Method used are
+ networks.Networks.defer_network_firmware_upgrades_staged_events,
+
+ - Paths used are
+ post /networks/{networkId}/firmwareUpgrades/staged/events/defer,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_firmware_upgrades_staged_events_defer:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "products": {
+ "switch": {
+ "nextUpgrade": {
+ "toVersion": {
+ "id": "string",
+ "shortName": "string"
+ }
+ }
+ }
+ },
+ "stages": [
+ {
+ "group": {
+ "id": "string",
+ "name": "string",
+ "description": "string"
+ },
+ "milestones": {
+ "scheduledFor": "string",
+ "startedAt": "string",
+ "completedAt": "string",
+ "canceledAt": "string"
+ },
+ "status": "string"
+ }
+ ],
+ "reasons": [
+ {
+ "category": "string",
+ "comment": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_info.py
new file mode 100644
index 000000000..5a2bc160c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_events_info
+short_description: Information module for networks _firmwareupgrades _staged _events
+description:
+- Get all networks _firmwareupgrades _staged _events.
+- Get the Staged Upgrade Event from a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkFirmwareUpgradesStagedEvents
+ description: Complete reference of the getNetworkFirmwareUpgradesStagedEvents API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-firmware-upgrades-staged-events
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_firmware_upgrades_staged_events,
+
+ - Paths used are
+ get /networks/{networkId}/firmwareUpgrades/staged/events,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _firmwareupgrades _staged _events
+ cisco.meraki.networks_firmware_upgrades_staged_events_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "products": {
+ "switch": {
+ "nextUpgrade": {
+ "toVersion": {
+ "id": "string",
+ "shortName": "string"
+ }
+ }
+ }
+ },
+ "stages": [
+ {
+ "group": {
+ "id": "string",
+ "name": "string",
+ "description": "string"
+ },
+ "milestones": {
+ "scheduledFor": "string",
+ "startedAt": "string",
+ "completedAt": "string",
+ "canceledAt": "string"
+ },
+ "status": "string"
+ }
+ ],
+ "reasons": [
+ {
+ "category": "string",
+ "comment": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_rollbacks.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_rollbacks.py
new file mode 100644
index 000000000..91393eaf1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_events_rollbacks.py
@@ -0,0 +1,143 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_events_rollbacks
+short_description: Resource module for networks _firmwareupgrades _staged _events _rollbacks
+description:
+- Manage operation create of the resource networks _firmwareupgrades _staged _events _rollbacks.
+- Rollback a Staged Upgrade Event for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ reasons:
+ description: The reason for rolling back the staged upgrade.
+ elements: dict
+ suboptions:
+ category:
+ description: Reason for the rollback.
+ type: str
+ comment:
+ description: Additional comment about the rollback.
+ type: str
+ type: list
+ stages:
+ description: All completed or in-progress stages in the network with their new start
+ times. All pending stages will be canceled.
+ elements: dict
+ suboptions:
+ group:
+ description: The Staged Upgrade Group containing the name and ID.
+ suboptions:
+ id:
+ description: ID of the Staged Upgrade Group.
+ type: str
+ type: dict
+ milestones:
+ description: The Staged Upgrade Milestones for the specific stage.
+ suboptions:
+ scheduledFor:
+ description: The start time of the staged upgrade stage. (In ISO-8601 format,
+ in the time zone of the network.).
+ type: str
+ type: dict
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks rollbacksNetworkFirmwareUpgradesStagedEvents
+ description: Complete reference of the rollbacksNetworkFirmwareUpgradesStagedEvents API.
+ link: https://developer.cisco.com/meraki/api-v1/#!rollbacks-network-firmware-upgrades-staged-events
+notes:
+ - SDK Method used are
+ networks.Networks.rollbacks_network_firmware_upgrades_staged_events,
+
+ - Paths used are
+ post /networks/{networkId}/firmwareUpgrades/staged/events/rollbacks,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_firmware_upgrades_staged_events_rollbacks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ reasons:
+ - category: performance
+ comment: Network was slower with the upgrade
+ stages:
+ - group:
+ id: '1234'
+ milestones:
+ scheduledFor: '2018-02-11T00:00:00Z'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "products": {
+ "switch": {
+ "nextUpgrade": {
+ "toVersion": {
+ "id": "string",
+ "shortName": "string"
+ }
+ }
+ }
+ },
+ "stages": [
+ {
+ "group": {
+ "id": "string",
+ "name": "string",
+ "description": "string"
+ },
+ "milestones": {
+ "scheduledFor": "string",
+ "startedAt": "string",
+ "completedAt": "string",
+ "canceledAt": "string"
+ },
+ "status": "string"
+ }
+ ],
+ "reasons": [
+ {
+ "category": "string",
+ "comment": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups.py
new file mode 100644
index 000000000..8d152996d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups.py
@@ -0,0 +1,194 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_groups
+short_description: Resource module for networks _firmwareupgrades _staged _groups
+description:
+- Manage operations create, update and delete of the resource networks _firmwareupgrades _staged _groups.
+- Create a Staged Upgrade Group for a network.
+- Delete a Staged Upgrade Group.
+- Update a Staged Upgrade Group for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ assignedDevices:
+ description: The devices and Switch Stacks assigned to the Group.
+ suboptions:
+ devices:
+ description: Data Array of Devices containing the name and serial.
+ elements: dict
+ suboptions:
+ name:
+ description: Name of the device.
+ type: str
+ serial:
+ description: Serial of the device.
+ type: str
+ type: list
+ switchStacks:
+ description: Data Array of Switch Stacks containing the name and id.
+ elements: dict
+ suboptions:
+ id:
+ description: ID of the Switch Stack.
+ type: str
+ name:
+ description: Name of the Switch Stack.
+ type: str
+ type: list
+ type: dict
+ description:
+ description: Description of the Staged Upgrade Group. Length must be 1 to 255 characters.
+ type: str
+ groupId:
+ description: GroupId path parameter. Group ID.
+ type: str
+ isDefault:
+ description: Boolean indicating the default Group. Any device that does not have
+ a group explicitly assigned will upgrade with this group.
+ type: bool
+ name:
+ description: Name of the Staged Upgrade Group. Length must be 1 to 255 characters.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkFirmwareUpgradesStagedGroup
+ description: Complete reference of the createNetworkFirmwareUpgradesStagedGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-firmware-upgrades-staged-group
+- name: Cisco Meraki documentation for networks deleteNetworkFirmwareUpgradesStagedGroup
+ description: Complete reference of the deleteNetworkFirmwareUpgradesStagedGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-firmware-upgrades-staged-group
+- name: Cisco Meraki documentation for networks updateNetworkFirmwareUpgradesStagedGroup
+ description: Complete reference of the updateNetworkFirmwareUpgradesStagedGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-firmware-upgrades-staged-group
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_firmware_upgrades_staged_group,
+ networks.Networks.delete_network_firmware_upgrades_staged_group,
+ networks.Networks.update_network_firmware_upgrades_staged_group,
+
+ - Paths used are
+ post /networks/{networkId}/firmwareUpgrades/staged/groups,
+ delete /networks/{networkId}/firmwareUpgrades/staged/groups/{groupId},
+ put /networks/{networkId}/firmwareUpgrades/staged/groups/{groupId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_firmware_upgrades_staged_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ assignedDevices:
+ devices:
+ - name: Device Name
+ serial: Q234-ABCD-5678
+ switchStacks:
+ - id: '1234'
+ name: Stack Name
+ description: The description of the group
+ isDefault: false
+ name: My Staged Upgrade Group
+ networkId: string
+
+- name: Update by id
+ cisco.meraki.networks_firmware_upgrades_staged_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ assignedDevices:
+ devices:
+ - name: Device Name
+ serial: Q234-ABCD-5678
+ switchStacks:
+ - id: '1234'
+ name: Stack Name
+ description: The description of the group
+ groupId: string
+ isDefault: false
+ name: My Staged Upgrade Group
+ networkId: string
+
+- name: Delete by id
+ cisco.meraki.networks_firmware_upgrades_staged_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ groupId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups_info.py
new file mode 100644
index 000000000..27e1bb7a9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_groups_info.py
@@ -0,0 +1,131 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_groups_info
+short_description: Information module for networks _firmwareupgrades _staged _groups
+description:
+- Get all networks _firmwareupgrades _staged _groups.
+- Get networks _firmwareupgrades _staged _groups by id.
+- Get a Staged Upgrade Group from a network.
+- List of Staged Upgrade Groups in a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ groupId:
+ description:
+ - GroupId path parameter. Group ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkFirmwareUpgradesStagedGroup
+ description: Complete reference of the getNetworkFirmwareUpgradesStagedGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-firmware-upgrades-staged-group
+- name: Cisco Meraki documentation for networks getNetworkFirmwareUpgradesStagedGroups
+ description: Complete reference of the getNetworkFirmwareUpgradesStagedGroups API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-firmware-upgrades-staged-groups
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_firmware_upgrades_staged_group,
+ networks.Networks.get_network_firmware_upgrades_staged_groups,
+
+ - Paths used are
+ get /networks/{networkId}/firmwareUpgrades/staged/groups,
+ get /networks/{networkId}/firmwareUpgrades/staged/groups/{groupId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _firmwareupgrades _staged _groups
+ cisco.meraki.networks_firmware_upgrades_staged_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _firmwareupgrades _staged _groups by id
+ cisco.meraki.networks_firmware_upgrades_staged_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ groupId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "groupId": "string",
+ "name": "string",
+ "description": "string",
+ "isDefault": true,
+ "assignedDevices": {
+ "devices": [
+ {
+ "serial": "string",
+ "name": "string"
+ }
+ ],
+ "switchStacks": [
+ {
+ "id": "string",
+ "name": "string"
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages.py
new file mode 100644
index 000000000..2222ee097
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages.py
@@ -0,0 +1,94 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_stages
+short_description: Resource module for networks _firmwareupgrades _staged _stages
+description:
+- Manage operation update of the resource networks _firmwareupgrades _staged _stages.
+- Assign Staged Upgrade Group order in the sequence.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ _json:
+ description: Array of Staged Upgrade Groups.
+ elements: dict
+ suboptions:
+ group:
+ description: The Staged Upgrade Group.
+ suboptions:
+ id:
+ description: ID of the Staged Upgrade Group.
+ type: str
+ type: dict
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkFirmwareUpgradesStagedStages
+ description: Complete reference of the updateNetworkFirmwareUpgradesStagedStages API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-firmware-upgrades-staged-stages
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_firmware_upgrades_staged_stages,
+
+ - Paths used are
+ put /networks/{networkId}/firmwareUpgrades/staged/stages,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_firmware_upgrades_staged_stages:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ _json:
+ - group:
+ id: '1234'
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ sample: >
+ [
+ {
+ "group": {
+ "id": "string",
+ "name": "string",
+ "description": "string"
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages_info.py
new file mode 100644
index 000000000..150aa58af
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_firmware_upgrades_staged_stages_info.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_firmware_upgrades_staged_stages_info
+short_description: Information module for networks _firmwareupgrades _staged _stages
+description:
+- Get all networks _firmwareupgrades _staged _stages.
+- Order of Staged Upgrade Groups in a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkFirmwareUpgradesStagedStages
+ description: Complete reference of the getNetworkFirmwareUpgradesStagedStages API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-firmware-upgrades-staged-stages
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_firmware_upgrades_staged_stages,
+
+ - Paths used are
+ get /networks/{networkId}/firmwareUpgrades/staged/stages,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _firmwareupgrades _staged _stages
+ cisco.meraki.networks_firmware_upgrades_staged_stages_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "group": {
+ "id": "string",
+ "name": "string",
+ "description": "string"
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans.py b/ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans.py
new file mode 100644
index 000000000..6873a0ca4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans.py
@@ -0,0 +1,225 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_floor_plans
+short_description: Resource module for networks _floorplans
+description:
+- Manage operations create, update and delete of the resource networks _floorplans.
+- Upload a floor plan.
+- Destroy a floor plan.
+- Update a floor plan's geolocation and other meta data.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ bottomLeftCorner:
+ description: The longitude and latitude of the bottom left corner of your floor
+ plan.
+ suboptions:
+ lat:
+ description: Latitude.
+ type: float
+ lng:
+ description: Longitude.
+ type: float
+ type: dict
+ bottomRightCorner:
+ description: The longitude and latitude of the bottom right corner of your floor
+ plan.
+ suboptions:
+ lat:
+ description: Latitude.
+ type: float
+ lng:
+ description: Longitude.
+ type: float
+ type: dict
+ center:
+ description: The longitude and latitude of the center of your floor plan. The 'center'
+ or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be
+ specified. If 'center' is specified, the floor plan is placed over that point
+ with no rotation. If two adjacent corners are specified, the floor plan is rotated
+ to line up with the two specified points. The aspect ratio of the floor plan's
+ image is preserved regardless of which corners/center are specified. (This means
+ if that more than two corners are specified, only two corners may be used to preserve
+ the floor plan's aspect ratio.). No two points can have the same latitude, longitude
+ pair.
+ suboptions:
+ lat:
+ description: Latitude.
+ type: float
+ lng:
+ description: Longitude.
+ type: float
+ type: dict
+ floorPlanId:
+ description: FloorPlanId path parameter. Floor plan ID.
+ type: str
+ imageContents:
+ description: The file contents (a base 64 encoded string) of your image. Supported
+ formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless
+ of the format they are uploaded in.
+ type: str
+ name:
+ description: The name of your floor plan.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ topLeftCorner:
+ description: The longitude and latitude of the top left corner of your floor plan.
+ suboptions:
+ lat:
+ description: Latitude.
+ type: float
+ lng:
+ description: Longitude.
+ type: float
+ type: dict
+ topRightCorner:
+ description: The longitude and latitude of the top right corner of your floor plan.
+ suboptions:
+ lat:
+ description: Latitude.
+ type: float
+ lng:
+ description: Longitude.
+ type: float
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkFloorPlan
+ description: Complete reference of the createNetworkFloorPlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-floor-plan
+- name: Cisco Meraki documentation for networks deleteNetworkFloorPlan
+ description: Complete reference of the deleteNetworkFloorPlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-floor-plan
+- name: Cisco Meraki documentation for networks updateNetworkFloorPlan
+ description: Complete reference of the updateNetworkFloorPlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-floor-plan
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_floor_plan,
+ networks.Networks.delete_network_floor_plan,
+ networks.Networks.update_network_floor_plan,
+
+ - Paths used are
+ post /networks/{networkId}/floorPlans,
+ delete /networks/{networkId}/floorPlans/{floorPlanId},
+ put /networks/{networkId}/floorPlans/{floorPlanId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_floor_plans:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ imageContents: Q2lzY28gTWVyYWtp
+ name: HQ Floor Plan
+ networkId: string
+
+- name: Update by id
+ cisco.meraki.networks_floor_plans:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bottomLeftCorner:
+ lat: 0
+ lng: 0
+ bottomRightCorner:
+ lat: 0
+ lng: 0
+ center:
+ lat: 0
+ lng: 0
+ floorPlanId: string
+ imageContents: string
+ name: string
+ networkId: string
+ topLeftCorner:
+ lat: 0
+ lng: 0
+ topRightCorner:
+ lat: 0
+ lng: 0
+
+- name: Delete by id
+ cisco.meraki.networks_floor_plans:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ floorPlanId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans_info.py
new file mode 100644
index 000000000..6925db738
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_floor_plans_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_floor_plans_info
+short_description: Information module for networks _floorplans
+description:
+- Get all networks _floorplans.
+- Get networks _floorplans by id.
+- Find a floor plan by ID.
+- List the floor plans that belong to your network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ floorPlanId:
+ description:
+ - FloorPlanId path parameter. Floor plan ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkFloorPlan
+ description: Complete reference of the getNetworkFloorPlan API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-floor-plan
+- name: Cisco Meraki documentation for networks getNetworkFloorPlans
+ description: Complete reference of the getNetworkFloorPlans API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-floor-plans
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_floor_plan,
+ networks.Networks.get_network_floor_plans,
+
+ - Paths used are
+ get /networks/{networkId}/floorPlans,
+ get /networks/{networkId}/floorPlans/{floorPlanId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _floorplans
+ cisco.meraki.networks_floor_plans_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _floorplans by id
+ cisco.meraki.networks_floor_plans_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ floorPlanId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_group_policies.py b/ansible_collections/cisco/meraki/plugins/modules/networks_group_policies.py
new file mode 100644
index 000000000..62689ee9f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_group_policies.py
@@ -0,0 +1,701 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_group_policies
+short_description: Resource module for networks _grouppolicies
+description:
+- Manage operations create, update and delete of the resource networks _grouppolicies.
+- Create a group policy.
+- Delete a group policy.
+- Update a group policy.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ bandwidth:
+ description: The bandwidth settings for clients bound to your group policy.
+ suboptions:
+ bandwidthLimits:
+ description: The bandwidth limits object, specifying upload and download speed
+ for clients bound to the group policy. These are only enforced if 'settings'
+ is set to 'custom'.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ type: dict
+ settings:
+ description: How bandwidth limits are enforced. Can be 'network default', 'ignore'
+ or 'custom'.
+ type: str
+ type: dict
+ bonjourForwarding:
+ description: The Bonjour settings for your group policy. Only valid if your network
+ has a wireless configuration.
+ suboptions:
+ rules:
+ description: A list of the Bonjour forwarding rules for your group policy. If
+ 'settings' is set to 'custom', at least one rule must be specified.
+ elements: dict
+ suboptions:
+ description:
+ description: A description for your Bonjour forwarding rule. Optional.
+ type: str
+ services:
+ description: A list of Bonjour services. At least one service must be specified.
+ Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent',
+ 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'.
+ elements: str
+ type: list
+ vlanId:
+ description: The ID of the service VLAN. Required.
+ type: str
+ type: list
+ settings:
+ description: How Bonjour rules are applied. Can be 'network default', 'ignore'
+ or 'custom'.
+ type: str
+ type: dict
+ contentFiltering:
+ description: The content filtering settings for your group policy.
+ suboptions:
+ allowedUrlPatterns:
+ description: Settings for allowed URL patterns.
+ suboptions:
+ patterns:
+ description: A list of URL patterns that are allowed.
+ elements: str
+ type: list
+ settings:
+ description: How URL patterns are applied. Can be 'network default', 'append'
+ or 'override'.
+ type: str
+ type: dict
+ blockedUrlCategories:
+ description: Settings for blocked URL categories.
+ suboptions:
+ categories:
+ description: A list of URL categories to block.
+ elements: str
+ type: list
+ settings:
+ description: How URL categories are applied. Can be 'network default', 'append'
+ or 'override'.
+ type: str
+ type: dict
+ blockedUrlPatterns:
+ description: Settings for blocked URL patterns.
+ suboptions:
+ patterns:
+ description: A list of URL patterns that are blocked.
+ elements: str
+ type: list
+ settings:
+ description: How URL patterns are applied. Can be 'network default', 'append'
+ or 'override'.
+ type: str
+ type: dict
+ type: dict
+ firewallAndTrafficShaping:
+ description: The firewall and traffic shaping rules and settings for your policy.
+ suboptions:
+ l3FirewallRules:
+ description: An ordered array of the L3 firewall rules.
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ destCidr:
+ description: Destination IP address (in IP or CIDR notation), a fully-qualified
+ domain name (FQDN, if your network supports it) or 'any'.
+ type: str
+ destPort:
+ description: Destination port (integer in the range 1-65535), a port range
+ (e.g. 8080-9090), or 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6'
+ or 'any').
+ type: str
+ type: list
+ l7FirewallRules:
+ description: An ordered array of L7 firewall rules.
+ elements: dict
+ suboptions:
+ policy:
+ description: The policy applied to matching traffic. Must be 'deny'.
+ type: str
+ type:
+ description: Type of the L7 Rule. Must be 'application', 'applicationCategory',
+ 'host', 'port' or 'ipRange'.
+ type: str
+ value:
+ description: The 'value' of what you want to block. If 'type' is 'host',
+ 'port' or 'ipRange', 'value' must be a string matching either a hostname
+ (e.g. Somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16).
+ If 'type' is 'application' or 'applicationCategory', then 'value' must
+ be an object with an ID for the application.
+ type: str
+ type: list
+ settings:
+ description: How firewall and traffic shaping rules are enforced. Can be 'network
+ default', 'ignore' or 'custom'.
+ type: str
+ trafficShapingRules:
+ description: An array of traffic shaping rules. Rules are applied in the order
+ that they are specified in. An empty list (or null) means no rules. Note that
+ you are allowed a maximum of 8 rules.
+ elements: dict
+ suboptions:
+ definitions:
+ description: A list of objects describing the definitions of your traffic
+ shaping rule. At least one definition is required.
+ elements: dict
+ suboptions:
+ type:
+ description: The type of definition. Can be one of 'application', 'applicationCategory',
+ 'host', 'port', 'ipRange' or 'localNet'.
+ type: str
+ value:
+ description: If "type" is 'host', 'port', 'ipRange' or 'localNet', then
+ "value" must be a string, matching either a hostname (e.g. "somesite.com"),
+ a port (e.g. 8080), or an IP range ("192.1.0.0", "192.1.0.0/16", or
+ "10.1.0.0/16 80"). 'localNet' also supports CIDR notation, excluding
+ custom ports. If "type" is 'application' or 'applicationCategory',
+ then "value" must be an object with the structure { "id" "meraki layer7/..."
+ }, where "id" is the application category or application ID (for a
+ list of IDs for your network, use the trafficShaping/applicationCategories
+ endpoint).
+ type: str
+ type: list
+ dscpTagValue:
+ description: The DSCP tag applied by your rule. Null means 'Do not change
+ DSCP tag'. For a list of possible tag values, use the trafficShaping/dscpTaggingOptions
+ endpoint.
+ type: int
+ pcpTagValue:
+ description: The PCP tag applied by your rule. Can be 0 (lowest priority)
+ through 7 (highest priority). Null means 'Do not set PCP tag'.
+ type: int
+ perClientBandwidthLimits:
+ description: An object describing the bandwidth settings for your rule.
+ suboptions:
+ bandwidthLimits:
+ description: The bandwidth limits object, specifying the upload ('limitUp')
+ and download ('limitDown') speed in Kbps. These are only enforced
+ if 'settings' is set to 'custom'.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps).
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps).
+ type: int
+ type: dict
+ settings:
+ description: How bandwidth limits are applied by your rule. Can be one
+ of 'network default', 'ignore' or 'custom'.
+ type: str
+ type: dict
+ priority:
+ description: A string, indicating the priority level for packets bound to
+ your rule. Can be 'low', 'normal' or 'high'.
+ type: str
+ type: list
+ type: dict
+ groupPolicyId:
+ description: GroupPolicyId path parameter. Group policy ID.
+ type: str
+ name:
+ description: The name for your group policy. Required.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ scheduling:
+ description: The schedule for the group policy. Schedules are applied to days of
+ the week.
+ suboptions:
+ enabled:
+ description: Whether scheduling is enabled (true) or disabled (false). Defaults
+ to false. If true, the schedule objects for each day of the week (monday -
+ sunday) are parsed.
+ type: bool
+ friday:
+ description: The schedule object for Friday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ monday:
+ description: The schedule object for Monday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ saturday:
+ description: The schedule object for Saturday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ sunday:
+ description: The schedule object for Sunday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ thursday:
+ description: The schedule object for Thursday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ tuesday:
+ description: The schedule object for Tuesday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ wednesday:
+ description: The schedule object for Wednesday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ type: dict
+ splashAuthSettings:
+ description: Whether clients bound to your policy will bypass splash authorization
+ or behave according to the network's rules. Can be one of 'network default' or
+ 'bypass'. Only available if your network has a wireless configuration.
+ type: str
+ vlanTagging:
+ description: The VLAN tagging settings for your group policy. Only available if
+ your network has a wireless configuration.
+ suboptions:
+ settings:
+ description: How VLAN tagging is applied. Can be 'network default', 'ignore'
+ or 'custom'.
+ type: str
+ vlanId:
+ description: The ID of the vlan you want to tag. This only applies if 'settings'
+ is set to 'custom'.
+ type: str
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkGroupPolicy
+ description: Complete reference of the createNetworkGroupPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-group-policy
+- name: Cisco Meraki documentation for networks deleteNetworkGroupPolicy
+ description: Complete reference of the deleteNetworkGroupPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-group-policy
+- name: Cisco Meraki documentation for networks updateNetworkGroupPolicy
+ description: Complete reference of the updateNetworkGroupPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-group-policy
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_group_policy,
+ networks.Networks.delete_network_group_policy,
+ networks.Networks.update_network_group_policy,
+
+ - Paths used are
+ post /networks/{networkId}/groupPolicies,
+ delete /networks/{networkId}/groupPolicies/{groupPolicyId},
+ put /networks/{networkId}/groupPolicies/{groupPolicyId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_group_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bandwidth:
+ bandwidthLimits:
+ limitDown: 1000000
+ limitUp: 1000000
+ settings: custom
+ bonjourForwarding:
+ rules:
+ - description: A simple bonjour rule
+ services:
+ - All Services
+ vlanId: '1'
+ settings: custom
+ contentFiltering:
+ allowedUrlPatterns:
+ patterns: []
+ settings: network default
+ blockedUrlCategories:
+ categories:
+ - meraki:contentFiltering/category/1
+ - meraki:contentFiltering/category/7
+ settings: override
+ blockedUrlPatterns:
+ patterns:
+ - http://www.example.com
+ - http://www.betting.com
+ settings: append
+ firewallAndTrafficShaping:
+ l3FirewallRules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+ l7FirewallRules:
+ - policy: deny
+ type: host
+ value: google.com
+ - policy: deny
+ type: port
+ value: '23'
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24:5555
+ settings: custom
+ trafficShapingRules:
+ - definitions:
+ - type: host
+ value: google.com
+ - type: port
+ value: '9090'
+ - type: ipRange
+ value: 192.1.0.0
+ - type: ipRange
+ value: 192.1.0.0/16
+ - type: ipRange
+ value: 10.1.0.0/16:80
+ - type: localNet
+ value: 192.168.0.0/16
+ dscpTagValue: 0
+ pcpTagValue: 0
+ perClientBandwidthLimits:
+ bandwidthLimits:
+ limitDown: 1000000
+ limitUp: 1000000
+ settings: custom
+ name: No video streaming
+ networkId: string
+ scheduling:
+ enabled: true
+ friday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ monday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ saturday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ sunday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ thursday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ tuesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ wednesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ splashAuthSettings: bypass
+ vlanTagging:
+ settings: custom
+ vlanId: '1'
+
+- name: Update by id
+ cisco.meraki.networks_group_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bandwidth:
+ bandwidthLimits:
+ limitDown: 1000000
+ limitUp: 1000000
+ settings: custom
+ bonjourForwarding:
+ rules:
+ - description: A simple bonjour rule
+ services:
+ - All Services
+ vlanId: '1'
+ settings: custom
+ contentFiltering:
+ allowedUrlPatterns:
+ patterns: []
+ settings: network default
+ blockedUrlCategories:
+ categories:
+ - meraki:contentFiltering/category/1
+ - meraki:contentFiltering/category/7
+ settings: override
+ blockedUrlPatterns:
+ patterns:
+ - http://www.example.com
+ - http://www.betting.com
+ settings: append
+ firewallAndTrafficShaping:
+ l3FirewallRules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+ l7FirewallRules:
+ - policy: deny
+ type: host
+ value: google.com
+ - policy: deny
+ type: port
+ value: '23'
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24:5555
+ settings: custom
+ trafficShapingRules:
+ - definitions:
+ - type: host
+ value: google.com
+ - type: port
+ value: '9090'
+ - type: ipRange
+ value: 192.1.0.0
+ - type: ipRange
+ value: 192.1.0.0/16
+ - type: ipRange
+ value: 10.1.0.0/16:80
+ - type: localNet
+ value: 192.168.0.0/16
+ dscpTagValue: 0
+ pcpTagValue: 0
+ perClientBandwidthLimits:
+ bandwidthLimits:
+ limitDown: 1000000
+ limitUp: 1000000
+ settings: custom
+ groupPolicyId: string
+ name: No video streaming
+ networkId: string
+ scheduling:
+ enabled: true
+ friday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ monday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ saturday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ sunday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ thursday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ tuesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ wednesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ splashAuthSettings: bypass
+ vlanTagging:
+ settings: custom
+ vlanId: '1'
+
+- name: Delete by id
+ cisco.meraki.networks_group_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ groupPolicyId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_group_policies_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_group_policies_info.py
new file mode 100644
index 000000000..29bb06cbe
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_group_policies_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_group_policies_info
+short_description: Information module for networks _grouppolicies
+description:
+- Get all networks _grouppolicies.
+- Get networks _grouppolicies by id.
+- Display a group policy.
+- List the group policies in a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ groupPolicyId:
+ description:
+ - GroupPolicyId path parameter. Group policy ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkGroupPolicies
+ description: Complete reference of the getNetworkGroupPolicies API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-group-policies
+- name: Cisco Meraki documentation for networks getNetworkGroupPolicy
+ description: Complete reference of the getNetworkGroupPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-group-policy
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_group_policies,
+ networks.Networks.get_network_group_policy,
+
+ - Paths used are
+ get /networks/{networkId}/groupPolicies,
+ get /networks/{networkId}/groupPolicies/{groupPolicyId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _grouppolicies
+ cisco.meraki.networks_group_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _grouppolicies by id
+ cisco.meraki.networks_group_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ groupPolicyId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_health_alerts_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_health_alerts_info.py
new file mode 100644
index 000000000..1bae1b67b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_health_alerts_info.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_health_alerts_info
+short_description: Information module for networks _health _alerts
+description:
+- Get all networks _health _alerts.
+- Return all global alerts on this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkHealthAlerts
+ description: Complete reference of the getNetworkHealthAlerts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-health-alerts
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_health_alerts,
+
+ - Paths used are
+ get /networks/{networkId}/health/alerts,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _health _alerts
+ cisco.meraki.networks_health_alerts_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "category": "string",
+ "type": "string",
+ "severity": "string",
+ "scope": {
+ "devices": [
+ {
+ "url": "string",
+ "name": "string",
+ "productType": "string",
+ "serial": "string",
+ "mac": "string",
+ "lldp": {
+ "portId": "string"
+ },
+ "clients": [
+ {
+ "mac": "string"
+ }
+ ]
+ }
+ ],
+ "applications": [
+ {
+ "url": "string",
+ "name": "string"
+ }
+ ],
+ "peers": [
+ {
+ "url": "string",
+ "network": {
+ "name": "string",
+ "id": "string"
+ }
+ }
+ ]
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_info.py
new file mode 100644
index 000000000..2d4b88cb4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_info.py
@@ -0,0 +1,180 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_info
+short_description: Information module for networks
+description:
+- Get all networks.
+- Get networks by id.
+- List the networks that the user has privileges on in an organization.
+- Return a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ configTemplateId:
+ description:
+ - >
+ ConfigTemplateId query parameter. An optional parameter that is the ID of a config template. Will return all
+ networks bound to that template.
+ type: str
+ isBoundToConfigTemplate:
+ description:
+ - >
+ IsBoundToConfigTemplate query parameter. An optional parameter to filter config template bound networks. If
+ configTemplateId is set, this cannot be false.
+ type: bool
+ tags:
+ description:
+ - >
+ Tags query parameter. An optional parameter to filter networks by tags. The filtering is case-sensitive. If
+ tags are included, 'tagsFilterType' should also be included (see below).
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return networks which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 100000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations,networks getNetwork
+ description: Complete reference of the getNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network
+- name: Cisco Meraki documentation for organizations,networks getOrganizationNetworks
+ description: Complete reference of the getOrganizationNetworks API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-networks
+notes:
+ - SDK Method used are
+ organizationsnetworks.Organizationsnetworks.get_network,
+ organizationsnetworks.Organizationsnetworks.get_organization_networks,
+
+ - Paths used are
+ get /networks/{networkId},
+ get /organizations/{organizationId}/networks,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks
+ cisco.meraki.networks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ configTemplateId: string
+ isBoundToConfigTemplate: True
+ tags: []
+ tagsFilterType: string
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+- name: Get networks by id
+ cisco.meraki.networks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "organizationId": "string",
+ "name": "string",
+ "productTypes": [
+ "string"
+ ],
+ "timeZone": "string",
+ "tags": [
+ "string"
+ ],
+ "enrollmentString": "string",
+ "url": "string",
+ "notes": "string",
+ "isBoundToConfigTemplate": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_insight_applications_health_by_time_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_insight_applications_health_by_time_info.py
new file mode 100644
index 000000000..955f5beee
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_insight_applications_health_by_time_info.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_insight_applications_health_by_time_info
+short_description: Information module for networks _insight _applications _healthbytime
+description:
+- Get all networks _insight _applications _healthbytime.
+- Get application health by time.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ applicationId:
+ description:
+ - ApplicationId path parameter. Application ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 7 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days. The
+ default is 2 hours.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 60,
+ 300, 3600, 86400. The default is 300.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for insight getNetworkInsightApplicationHealthByTime
+ description: Complete reference of the getNetworkInsightApplicationHealthByTime API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-insight-application-health-by-time
+notes:
+ - SDK Method used are
+ insight.Insight.get_network_insight_application_health_by_time,
+
+ - Paths used are
+ get /networks/{networkId}/insight/applications/{applicationId}/healthByTime,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _insight _applications _healthbytime
+ cisco.meraki.networks_insight_applications_health_by_time_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ networkId: string
+ applicationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "wanGoodput": 0,
+ "lanGoodput": 0,
+ "wanLatencyMs": 0,
+ "lanLatencyMs": 0,
+ "wanLossPercent": 0,
+ "lanLossPercent": 0,
+ "responseDuration": 0,
+ "sent": 0,
+ "recv": 0,
+ "numClients": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users.py b/ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users.py
new file mode 100644
index 000000000..41f61c823
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users.py
@@ -0,0 +1,209 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_meraki_auth_users
+short_description: Resource module for networks _merakiauthusers
+description:
+- Manage operations create, update and delete of the resource networks _merakiauthusers.
+- >
+ Authorize a user configured with Meraki Authentication for a network currently supports 802.1X, splash guest, and
+ client VPN users, and currently, organizations have a 50,000 user cap .
+- >
+ Deauthorize a user. To reauthorize a user after deauthorizing them, POST to this endpoint. Currently, 802.1X
+ RADIUS, splash guest, and client VPN users can be deauthorized. .
+- >
+ Update a user configured with Meraki Authentication currently, 802.1X RADIUS, splash guest, and client VPN users
+ can be updated .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accountType:
+ description: Authorization type for user. Can be 'Guest' or '802.1X' for wireless
+ networks, or 'Client VPN' for wired networks. Defaults to '802.1X'.
+ type: str
+ authorizations:
+ description: Authorization zones and expiration dates for the user.
+ elements: dict
+ suboptions:
+ expiresAt:
+ description: Date for authorization to expire. Set to 'Never' for the authorization
+ to not expire, which is the default.
+ type: str
+ ssidNumber:
+ description: Required for wireless networks. The SSID for which the user is
+ being authorized, which must be configured for the user's given accountType.
+ type: int
+ type: list
+ email:
+ description: Email address of the user.
+ type: str
+ emailPasswordToUser:
+ description: Whether or not Meraki should email the password to user. Default is
+ false.
+ type: bool
+ isAdmin:
+ description: Whether or not the user is a Dashboard administrator.
+ type: bool
+ merakiAuthUserId:
+ description: MerakiAuthUserId path parameter. Meraki auth user ID.
+ type: str
+ name:
+ description: Name of the user. Only required If the user is not a Dashboard administrator.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ password:
+ description: The password for this user account. Only required If the user is not
+ a Dashboard administrator.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkMerakiAuthUser
+ description: Complete reference of the createNetworkMerakiAuthUser API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-meraki-auth-user
+- name: Cisco Meraki documentation for networks deleteNetworkMerakiAuthUser
+ description: Complete reference of the deleteNetworkMerakiAuthUser API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-meraki-auth-user
+- name: Cisco Meraki documentation for networks updateNetworkMerakiAuthUser
+ description: Complete reference of the updateNetworkMerakiAuthUser API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-meraki-auth-user
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_meraki_auth_user,
+ networks.Networks.delete_network_meraki_auth_user,
+ networks.Networks.update_network_meraki_auth_user,
+
+ - Paths used are
+ post /networks/{networkId}/merakiAuthUsers,
+ delete /networks/{networkId}/merakiAuthUsers/{merakiAuthUserId},
+ put /networks/{networkId}/merakiAuthUsers/{merakiAuthUserId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_meraki_auth_users:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accountType: 802.1X
+ authorizations:
+ - expiresAt: '2018-03-13T00:00:00.090210Z'
+ ssidNumber: 1
+ email: miles@meraki.com
+ emailPasswordToUser: false
+ isAdmin: false
+ name: Miles Meraki
+ networkId: string
+ password: secret
+
+- name: Update by id
+ cisco.meraki.networks_meraki_auth_users:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ authorizations:
+ - expiresAt: '2018-03-13T00:00:00.090210Z'
+ ssidNumber: 1
+ emailPasswordToUser: false
+ merakiAuthUserId: string
+ name: Miles Meraki
+ networkId: string
+ password: secret
+
+- name: Delete by id
+ cisco.meraki.networks_meraki_auth_users:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ merakiAuthUserId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "email": "string",
+ "name": "string",
+ "createdAt": "string",
+ "accountType": "string",
+ "isAdmin": true,
+ "authorizations": [
+ {
+ "ssidNumber": 0,
+ "authorizedZone": "string",
+ "expiresAt": "string",
+ "authorizedByName": "string",
+ "authorizedByEmail": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users_info.py
new file mode 100644
index 000000000..5d1e15e3d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_meraki_auth_users_info.py
@@ -0,0 +1,130 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_meraki_auth_users_info
+short_description: Information module for networks _merakiauthusers
+description:
+- Get all networks _merakiauthusers.
+- Get networks _merakiauthusers by id.
+- >
+ List the users configured under Meraki Authentication for a network splash guest or RADIUS users for a wireless
+ network, or client VPN users for a wired network .
+- Return the Meraki Auth splash guest, RADIUS, or client VPN user.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ merakiAuthUserId:
+ description:
+ - MerakiAuthUserId path parameter. Meraki auth user ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkMerakiAuthUser
+ description: Complete reference of the getNetworkMerakiAuthUser API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-meraki-auth-user
+- name: Cisco Meraki documentation for networks getNetworkMerakiAuthUsers
+ description: Complete reference of the getNetworkMerakiAuthUsers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-meraki-auth-users
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_meraki_auth_user,
+ networks.Networks.get_network_meraki_auth_users,
+
+ - Paths used are
+ get /networks/{networkId}/merakiAuthUsers,
+ get /networks/{networkId}/merakiAuthUsers/{merakiAuthUserId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _merakiauthusers
+ cisco.meraki.networks_meraki_auth_users_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _merakiauthusers by id
+ cisco.meraki.networks_meraki_auth_users_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ merakiAuthUserId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "email": "string",
+ "name": "string",
+ "createdAt": "string",
+ "accountType": "string",
+ "isAdmin": true,
+ "authorizations": [
+ {
+ "ssidNumber": 0,
+ "authorizedZone": "string",
+ "expiresAt": "string",
+ "authorizedByName": "string",
+ "authorizedByEmail": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_mqtt_brokers.py b/ansible_collections/cisco/meraki/plugins/modules/networks_mqtt_brokers.py
new file mode 100644
index 000000000..a5c897a17
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_mqtt_brokers.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_mqtt_brokers
+short_description: Resource module for networks _mqttbrokers
+description:
+- Manage operation create of the resource networks _mqttbrokers.
+- Add an MQTT broker.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ authentication:
+ description: Authentication settings of the MQTT broker.
+ type: dict
+ host:
+ description: Host name/IP address where the MQTT broker runs.
+ type: str
+ name:
+ description: Name of the MQTT broker.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ port:
+ description: Host port though which the MQTT broker can be reached.
+ type: int
+ security:
+ description: Security settings of the MQTT broker.
+ suboptions:
+ mode:
+ description: Security protocol of the MQTT broker.
+ type: str
+ security:
+ description: TLS settings of the MQTT broker.
+ suboptions:
+ caCertificate:
+ description: CA Certificate of the MQTT broker.
+ type: str
+ verifyHostnames:
+ description: Whether the TLS hostname verification is enabled for the MQTT
+ broker.
+ type: bool
+ type: dict
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkMqttBroker
+ description: Complete reference of the createNetworkMqttBroker API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-mqtt-broker
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_mqtt_broker,
+
+ - Paths used are
+ post /networks/{networkId}/mqttBrokers,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_mqtt_brokers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ authentication:
+ username: Username
+ host: 1.1.1.1
+ name: MQTT_Broker_1
+ networkId: string
+ port: 1234
+ security:
+ mode: tls
+ tls:
+ hasCaCertificate: true
+ verifyHostnames: true
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_netflow.py b/ansible_collections/cisco/meraki/plugins/modules/networks_netflow.py
new file mode 100644
index 000000000..e3bc1b646
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_netflow.py
@@ -0,0 +1,94 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_netflow
+short_description: Resource module for networks _netflow
+description:
+- Manage operation update of the resource networks _netflow.
+- Update the NetFlow traffic reporting settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ collectorIp:
+ description: The IPv4 address of the NetFlow collector.
+ type: str
+ collectorPort:
+ description: The port that the NetFlow collector will be listening on.
+ type: int
+ etaDstPort:
+ description: The port that the Encrypted Traffic Analytics collector will be listening
+ on.
+ type: int
+ etaEnabled:
+ description: Boolean indicating whether Encrypted Traffic Analytics is enabled (true)
+ or disabled (false).
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ reportingEnabled:
+ description: Boolean indicating whether NetFlow traffic reporting is enabled (true)
+ or disabled (false).
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkNetflow
+ description: Complete reference of the updateNetworkNetflow API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-netflow
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_netflow,
+
+ - Paths used are
+ put /networks/{networkId}/netflow,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_netflow:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ collectorIp: 1.2.3.4
+ collectorPort: 443
+ etaDstPort: 443
+ etaEnabled: true
+ networkId: string
+ reportingEnabled: true
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_netflow_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_netflow_info.py
new file mode 100644
index 000000000..d5fb5dcc9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_netflow_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_netflow_info
+short_description: Information module for networks _netflow
+description:
+- Get all networks _netflow.
+- Return the NetFlow traffic reporting settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkNetflow
+ description: Complete reference of the getNetworkNetflow API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-netflow
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_netflow,
+
+ - Paths used are
+ get /networks/{networkId}/netflow,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _netflow
+ cisco.meraki.networks_netflow_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_pii_pii_keys_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_pii_keys_info.py
new file mode 100644
index 000000000..a96737ef0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_pii_keys_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_pii_pii_keys_info
+short_description: Information module for networks _pii _piikeys
+description:
+- Get all networks _pii _piikeys.
+- >
+ List the keys required to access Personally Identifiable Information PII for a given identifier. Exactly one
+ identifier will be accepted. If the organization contains org-wide Systems Manager users matching the key provided
+ then there will be an entry with the key "0" containing the applicable keys.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ username:
+ description:
+ - Username query parameter. The username of a Systems Manager user.
+ type: str
+ email:
+ description:
+ - Email query parameter. The email of a network user account or a Systems Manager device.
+ type: str
+ mac:
+ description:
+ - Mac query parameter. The MAC of a network client device or a Systems Manager device.
+ type: str
+ serial:
+ description:
+ - Serial query parameter. The serial of a Systems Manager device.
+ type: str
+ imei:
+ description:
+ - Imei query parameter. The IMEI of a Systems Manager device.
+ type: str
+ bluetoothMac:
+ description:
+ - BluetoothMac query parameter. The MAC of a Bluetooth client.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkPiiPiiKeys
+ description: Complete reference of the getNetworkPiiPiiKeys API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-pii-pii-keys
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_pii_pii_keys,
+
+ - Paths used are
+ get /networks/{networkId}/pii/piiKeys,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _pii _piikeys
+ cisco.meraki.networks_pii_pii_keys_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ username: string
+ email: string
+ mac: string
+ serial: string
+ imei: string
+ bluetoothMac: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_delete.py b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_delete.py
new file mode 100644
index 000000000..5d28450cc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_delete.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_pii_requests_delete
+short_description: Resource module for networks _pii _requests _delete
+description:
+- Manage operation delete of the resource networks _pii _requests _delete.
+- Delete a restrict processing PII request.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ requestId:
+ description: RequestId path parameter. Request ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks deleteNetworkPiiRequest
+ description: Complete reference of the deleteNetworkPiiRequest API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-pii-request
+notes:
+ - SDK Method used are
+ networks.Networks.delete_network_pii_request,
+
+ - Paths used are
+ delete /networks/{networkId}/pii/requests/{requestId},
+"""
+
+EXAMPLES = r"""
+- name: Delete by id
+ cisco.meraki.networks_pii_requests_delete:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ requestId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_info.py
new file mode 100644
index 000000000..6536069b6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_requests_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_pii_requests_info
+short_description: Information module for networks _pii _requests
+description:
+- Get all networks _pii _requests.
+- Get networks _pii _requests by id.
+- List the PII requests for this network or organization.
+- Return a PII request.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ requestId:
+ description:
+ - RequestId path parameter. Request ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkPiiRequest
+ description: Complete reference of the getNetworkPiiRequest API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-pii-request
+- name: Cisco Meraki documentation for networks getNetworkPiiRequests
+ description: Complete reference of the getNetworkPiiRequests API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-pii-requests
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_pii_request,
+ networks.Networks.get_network_pii_requests,
+
+ - Paths used are
+ get /networks/{networkId}/pii/requests,
+ get /networks/{networkId}/pii/requests/{requestId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _pii _requests
+ cisco.meraki.networks_pii_requests_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _pii _requests by id
+ cisco.meraki.networks_pii_requests_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ requestId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_devices_for_key_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_devices_for_key_info.py
new file mode 100644
index 000000000..488dd4d24
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_devices_for_key_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_pii_sm_devices_for_key_info
+short_description: Information module for networks _pii _smdevicesforkey
+description:
+- Get all networks _pii _smdevicesforkey.
+- >
+ Given a piece of Personally Identifiable Information PII , return the Systems Manager device IDs associated with
+ that identifier. These device IDs can be used with the Systems Manager API endpoints to retrieve device details.
+ Exactly one identifier will be accepted.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ username:
+ description:
+ - Username query parameter. The username of a Systems Manager user.
+ type: str
+ email:
+ description:
+ - Email query parameter. The email of a network user account or a Systems Manager device.
+ type: str
+ mac:
+ description:
+ - Mac query parameter. The MAC of a network client device or a Systems Manager device.
+ type: str
+ serial:
+ description:
+ - Serial query parameter. The serial of a Systems Manager device.
+ type: str
+ imei:
+ description:
+ - Imei query parameter. The IMEI of a Systems Manager device.
+ type: str
+ bluetoothMac:
+ description:
+ - BluetoothMac query parameter. The MAC of a Bluetooth client.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkPiiSmDevicesForKey
+ description: Complete reference of the getNetworkPiiSmDevicesForKey API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-pii-sm-devices-for-key
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_pii_sm_devices_for_key,
+
+ - Paths used are
+ get /networks/{networkId}/pii/smDevicesForKey,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _pii _smdevicesforkey
+ cisco.meraki.networks_pii_sm_devices_for_key_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ username: string
+ email: string
+ mac: string
+ serial: string
+ imei: string
+ bluetoothMac: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_owners_for_key_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_owners_for_key_info.py
new file mode 100644
index 000000000..1387ce301
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_pii_sm_owners_for_key_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_pii_sm_owners_for_key_info
+short_description: Information module for networks _pii _smownersforkey
+description:
+- Get all networks _pii _smownersforkey.
+- >
+ Given a piece of Personally Identifiable Information PII , return the Systems Manager owner IDs associated with
+ that identifier. These owner IDs can be used with the Systems Manager API endpoints to retrieve owner details.
+ Exactly one identifier will be accepted.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ username:
+ description:
+ - Username query parameter. The username of a Systems Manager user.
+ type: str
+ email:
+ description:
+ - Email query parameter. The email of a network user account or a Systems Manager device.
+ type: str
+ mac:
+ description:
+ - Mac query parameter. The MAC of a network client device or a Systems Manager device.
+ type: str
+ serial:
+ description:
+ - Serial query parameter. The serial of a Systems Manager device.
+ type: str
+ imei:
+ description:
+ - Imei query parameter. The IMEI of a Systems Manager device.
+ type: str
+ bluetoothMac:
+ description:
+ - BluetoothMac query parameter. The MAC of a Bluetooth client.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkPiiSmOwnersForKey
+ description: Complete reference of the getNetworkPiiSmOwnersForKey API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-pii-sm-owners-for-key
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_pii_sm_owners_for_key,
+
+ - Paths used are
+ get /networks/{networkId}/pii/smOwnersForKey,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _pii _smownersforkey
+ cisco.meraki.networks_pii_sm_owners_for_key_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ username: string
+ email: string
+ mac: string
+ serial: string
+ imei: string
+ bluetoothMac: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_policies_by_client_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_policies_by_client_info.py
new file mode 100644
index 000000000..36c8ca8fd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_policies_by_client_info.py
@@ -0,0 +1,130 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_policies_by_client_info
+short_description: Information module for networks _policies _byclient
+description:
+- Get all networks _policies _byclient.
+- Get policies for all clients with policies.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is
+ 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkPoliciesByClient
+ description: Complete reference of the getNetworkPoliciesByClient API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-policies-by-client
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_policies_by_client,
+
+ - Paths used are
+ get /networks/{networkId}/policies/byClient,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _policies _byclient
+ cisco.meraki.networks_policies_by_client_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ t0: string
+ timespan: 0
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "clientId": "string",
+ "assigned": [
+ {
+ "name": "string",
+ "type": "string",
+ "groupPolicyId": "string",
+ "ssid": [
+ {
+ "ssidNumber": 0
+ }
+ ]
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_current_overview_by_metric_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_current_overview_by_metric_info.py
new file mode 100644
index 000000000..252fccc0d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_current_overview_by_metric_info.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_alerts_current_overview_by_metric_info
+short_description: Information module for networks _sensor _alerts _current _overview _bymetric
+description:
+- Get all networks _sensor _alerts _current _overview _bymetric.
+- Return an overview of currently alerting sensors by metric.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getNetworkSensorAlertsCurrentOverviewByMetric
+ description: Complete reference of the getNetworkSensorAlertsCurrentOverviewByMetric API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-alerts-current-overview-by-metric
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_network_sensor_alerts_current_overview_by_metric,
+
+ - Paths used are
+ get /networks/{networkId}/sensor/alerts/current/overview/byMetric,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sensor _alerts _current _overview _bymetric
+ cisco.meraki.networks_sensor_alerts_current_overview_by_metric_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "supportedMetrics": [
+ "string"
+ ],
+ "counts": {
+ "door": 0,
+ "humidity": 0,
+ "indoorAirQuality": 0,
+ "noise": {
+ "ambient": 0
+ },
+ "pm25": 0,
+ "temperature": 0,
+ "tvoc": 0,
+ "water": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_overview_by_metric_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_overview_by_metric_info.py
new file mode 100644
index 000000000..591800095
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_overview_by_metric_info.py
@@ -0,0 +1,118 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_alerts_overview_by_metric_info
+short_description: Information module for networks _sensor _alerts _overview _bymetric
+description:
+- Get all networks _sensor _alerts _overview _bymetric.
+- Return an overview of alert occurrences over a timespan, by metric.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 365 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ interval:
+ description:
+ - >
+ Interval query parameter. The time interval in seconds for returned data. The valid intervals are 86400,
+ 604800. The default is 604800.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getNetworkSensorAlertsOverviewByMetric
+ description: Complete reference of the getNetworkSensorAlertsOverviewByMetric API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-alerts-overview-by-metric
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_network_sensor_alerts_overview_by_metric,
+
+ - Paths used are
+ get /networks/{networkId}/sensor/alerts/overview/byMetric,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sensor _alerts _overview _bymetric
+ cisco.meraki.networks_sensor_alerts_overview_by_metric_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ interval: 0
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "counts": {
+ "door": 0,
+ "humidity": 0,
+ "indoorAirQuality": 0,
+ "noise": {
+ "ambient": 0
+ },
+ "pm25": 0,
+ "temperature": 0,
+ "tvoc": 0,
+ "water": 0
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles.py
new file mode 100644
index 000000000..67b7f3c87
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles.py
@@ -0,0 +1,437 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_alerts_profiles
+short_description: Resource module for networks _sensor _alerts _profiles
+description:
+- Manage operations create, update and delete of the resource networks _sensor _alerts _profiles.
+- Creates a sensor alert profile for a network.
+- Deletes a sensor alert profile from a network.
+- Updates a sensor alert profile for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ conditions:
+ description: List of conditions that will cause the profile to send an alert.
+ elements: dict
+ suboptions:
+ direction:
+ description: If 'above', an alert will be sent when a sensor reads above the
+ threshold. If 'below', an alert will be sent when a sensor reads below the
+ threshold. Only applicable for temperature and humidity thresholds.
+ type: str
+ duration:
+ description: Length of time in seconds that the triggering state must persist
+ before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes,
+ 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, and 1
+ hour. Default is 0.
+ type: int
+ metric:
+ description: The type of sensor metric that will be monitored for changes. Available
+ metrics are door, humidity, indoorAirQuality, noise, pm25, temperature, tvoc,
+ and water.
+ type: str
+ threshold:
+ description: Threshold for sensor readings that will cause an alert to be sent.
+ This object should contain a single property key matching the condition's
+ 'metric' value.
+ suboptions:
+ door:
+ description: Door open threshold. 'open' must be provided and set to true.
+ suboptions:
+ open:
+ description: Alerting threshold for a door open event. Must be set to
+ true.
+ type: bool
+ type: dict
+ humidity:
+ description: Humidity threshold. One of 'relativePercentage' or 'quality'
+ must be provided.
+ suboptions:
+ quality:
+ description: Alerting threshold as a qualitative humidity level.
+ type: str
+ relativePercentage:
+ description: Alerting threshold in %RH.
+ type: int
+ type: dict
+ indoorAirQuality:
+ description: Indoor air quality score threshold. One of 'score' or 'quality'
+ must be provided.
+ suboptions:
+ quality:
+ description: Alerting threshold as a qualitative indoor air quality
+ level.
+ type: str
+ score:
+ description: Alerting threshold as indoor air quality score.
+ type: int
+ type: dict
+ noise:
+ description: Noise threshold. 'ambient' must be provided.
+ suboptions:
+ ambient:
+ description: Ambient noise threshold. One of 'level' or 'quality' must
+ be provided.
+ suboptions:
+ level:
+ description: Alerting threshold as adjusted decibels.
+ type: int
+ quality:
+ description: Alerting threshold as a qualitative ambient noise level.
+ type: str
+ type: dict
+ type: dict
+ pm25:
+ description: PM2.5 concentration threshold. One of 'concentration' or 'quality'
+ must be provided.
+ suboptions:
+ concentration:
+ description: Alerting threshold as PM2.5 parts per million.
+ type: int
+ quality:
+ description: Alerting threshold as a qualitative PM2.5 level.
+ type: str
+ type: dict
+ temperature:
+ description: Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality'
+ must be provided.
+ suboptions:
+ celsius:
+ description: Alerting threshold in degrees Celsius.
+ type: float
+ fahrenheit:
+ description: Alerting threshold in degrees Fahrenheit.
+ type: float
+ quality:
+ description: Alerting threshold as a qualitative temperature level.
+ type: str
+ type: dict
+ tvoc:
+ description: TVOC concentration threshold. One of 'concentration' or 'quality'
+ must be provided.
+ suboptions:
+ concentration:
+ description: Alerting threshold as TVOC micrograms per cubic meter.
+ type: int
+ quality:
+ description: Alerting threshold as a qualitative TVOC level.
+ type: str
+ type: dict
+ water:
+ description: Water detection threshold. 'present' must be provided and set
+ to true.
+ suboptions:
+ present:
+ description: Alerting threshold for a water detection event. Must be
+ set to true.
+ type: bool
+ type: dict
+ type: dict
+ type: list
+ id:
+ description: Id path parameter.
+ type: str
+ name:
+ description: Name of the sensor alert profile.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ recipients:
+ description: List of recipients that will recieve the alert.
+ suboptions:
+ emails:
+ description: A list of emails that will receive information about the alert.
+ elements: str
+ type: list
+ httpServerIds:
+ description: A list of webhook endpoint IDs that will receive information about
+ the alert.
+ elements: str
+ type: list
+ smsNumbers:
+ description: A list of SMS numbers that will receive information about the alert.
+ elements: str
+ type: list
+ type: dict
+ schedule:
+ description: The sensor schedule to use with the alert profile.
+ suboptions:
+ id:
+ description: ID of the sensor schedule to use with the alert profile. If not
+ defined, the alert profile will be active at all times.
+ type: str
+ type: dict
+ serials:
+ description: List of device serials assigned to this sensor alert profile.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor createNetworkSensorAlertsProfile
+ description: Complete reference of the createNetworkSensorAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-sensor-alerts-profile
+- name: Cisco Meraki documentation for sensor deleteNetworkSensorAlertsProfile
+ description: Complete reference of the deleteNetworkSensorAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-sensor-alerts-profile
+- name: Cisco Meraki documentation for sensor updateNetworkSensorAlertsProfile
+ description: Complete reference of the updateNetworkSensorAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-sensor-alerts-profile
+notes:
+ - SDK Method used are
+ sensor.Sensor.create_network_sensor_alerts_profile,
+ sensor.Sensor.delete_network_sensor_alerts_profile,
+ sensor.Sensor.update_network_sensor_alerts_profile,
+
+ - Paths used are
+ post /networks/{networkId}/sensor/alerts/profiles,
+ delete /networks/{networkId}/sensor/alerts/profiles/{id},
+ put /networks/{networkId}/sensor/alerts/profiles/{id},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sensor_alerts_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ conditions:
+ - direction: above
+ duration: 60
+ metric: temperature
+ threshold:
+ door:
+ open: true
+ humidity:
+ quality: inadequate
+ relativePercentage: 65
+ indoorAirQuality:
+ quality: fair
+ score: 80
+ noise:
+ ambient:
+ level: 120
+ quality: poor
+ pm25:
+ concentration: 90
+ quality: fair
+ temperature:
+ celsius: 20.5
+ fahrenheit: 70
+ quality: good
+ tvoc:
+ concentration: 400
+ quality: poor
+ water:
+ present: true
+ name: My Sensor Alert Profile
+ networkId: string
+ recipients:
+ emails:
+ - miles@meraki.com
+ httpServerIds:
+ - aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=
+ smsNumbers:
+ - '+15555555555'
+ schedule:
+ id: '5'
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+
+- name: Update by id
+ cisco.meraki.networks_sensor_alerts_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ conditions:
+ - direction: above
+ duration: 60
+ metric: temperature
+ threshold:
+ door:
+ open: true
+ humidity:
+ quality: inadequate
+ relativePercentage: 65
+ indoorAirQuality:
+ quality: fair
+ score: 80
+ noise:
+ ambient:
+ level: 120
+ quality: poor
+ pm25:
+ concentration: 90
+ quality: fair
+ temperature:
+ celsius: 20.5
+ fahrenheit: 70
+ quality: good
+ tvoc:
+ concentration: 400
+ quality: poor
+ water:
+ present: true
+ id: string
+ name: My Sensor Alert Profile
+ networkId: string
+ recipients:
+ emails:
+ - miles@meraki.com
+ httpServerIds:
+ - aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=
+ smsNumbers:
+ - '+15555555555'
+ schedule:
+ id: '5'
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+
+- name: Delete by id
+ cisco.meraki.networks_sensor_alerts_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ id: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "profileId": "string",
+ "name": "string",
+ "schedule": {
+ "id": "string",
+ "name": "string"
+ },
+ "conditions": [
+ {
+ "metric": "string",
+ "threshold": {
+ "temperature": {
+ "celsius": 0,
+ "fahrenheit": 0,
+ "quality": "string"
+ },
+ "humidity": {
+ "relativePercentage": 0,
+ "quality": "string"
+ },
+ "water": {
+ "present": true
+ },
+ "door": {
+ "open": true
+ },
+ "tvoc": {
+ "concentration": 0,
+ "quality": "string"
+ },
+ "pm25": {
+ "concentration": 0,
+ "quality": "string"
+ },
+ "noise": {
+ "ambient": {
+ "level": 0,
+ "quality": "string"
+ }
+ },
+ "indoorAirQuality": {
+ "score": 0,
+ "quality": "string"
+ }
+ },
+ "direction": "string",
+ "duration": 0
+ }
+ ],
+ "recipients": {
+ "emails": [
+ "string"
+ ],
+ "smsNumbers": [
+ "string"
+ ],
+ "httpServerIds": [
+ "string"
+ ]
+ },
+ "serials": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles_info.py
new file mode 100644
index 000000000..151433194
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_alerts_profiles_info.py
@@ -0,0 +1,175 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_alerts_profiles_info
+short_description: Information module for networks _sensor _alerts _profiles
+description:
+- Get all networks _sensor _alerts _profiles.
+- Get networks _sensor _alerts _profiles by id.
+- Lists all sensor alert profiles for a network.
+- Show details of a sensor alert profile for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ id:
+ description:
+ - Id path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getNetworkSensorAlertsProfile
+ description: Complete reference of the getNetworkSensorAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-alerts-profile
+- name: Cisco Meraki documentation for sensor getNetworkSensorAlertsProfiles
+ description: Complete reference of the getNetworkSensorAlertsProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-alerts-profiles
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_network_sensor_alerts_profile,
+ sensor.Sensor.get_network_sensor_alerts_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/sensor/alerts/profiles,
+ get /networks/{networkId}/sensor/alerts/profiles/{id},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sensor _alerts _profiles
+ cisco.meraki.networks_sensor_alerts_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _sensor _alerts _profiles by id
+ cisco.meraki.networks_sensor_alerts_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ id: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "profileId": "string",
+ "name": "string",
+ "schedule": {
+ "id": "string",
+ "name": "string"
+ },
+ "conditions": [
+ {
+ "metric": "string",
+ "threshold": {
+ "temperature": {
+ "celsius": 0,
+ "fahrenheit": 0,
+ "quality": "string"
+ },
+ "humidity": {
+ "relativePercentage": 0,
+ "quality": "string"
+ },
+ "water": {
+ "present": true
+ },
+ "door": {
+ "open": true
+ },
+ "tvoc": {
+ "concentration": 0,
+ "quality": "string"
+ },
+ "pm25": {
+ "concentration": 0,
+ "quality": "string"
+ },
+ "noise": {
+ "ambient": {
+ "level": 0,
+ "quality": "string"
+ }
+ },
+ "indoorAirQuality": {
+ "score": 0,
+ "quality": "string"
+ }
+ },
+ "direction": "string",
+ "duration": 0
+ }
+ ],
+ "recipients": {
+ "emails": [
+ "string"
+ ],
+ "smsNumbers": [
+ "string"
+ ],
+ "httpServerIds": [
+ "string"
+ ]
+ },
+ "serials": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers.py
new file mode 100644
index 000000000..7503606ba
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_mqtt_brokers
+short_description: Resource module for networks _sensor _mqttbrokers
+description:
+- Manage operation update of the resource networks _sensor _mqttbrokers.
+- >
+ Update the sensor settings of an MQTT broker. To update the broker itself, use
+ /networks/{networkId}/mqttBrokers/{mqttBrokerId}.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: Set to true to enable MQTT broker for sensor network.
+ type: bool
+ mqttBrokerId:
+ description: Networks Sensor Mqtt Brokers's mqttBrokerId.
+ type: null
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor updateNetworkSensorMqttBroker
+ description: Complete reference of the updateNetworkSensorMqttBroker API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-sensor-mqtt-broker
+notes:
+ - SDK Method used are
+ sensor.Sensor.update_network_sensor_mqtt_broker,
+
+ - Paths used are
+ put /networks/{networkId}/sensor/mqttBrokers/{mqttBrokerId},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.networks_sensor_mqtt_brokers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ mqttBrokerId: '1234'
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "mqttBrokerId": "string",
+ "enabled": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers_info.py
new file mode 100644
index 000000000..e4bf71113
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_mqtt_brokers_info.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_mqtt_brokers_info
+short_description: Information module for networks _sensor _mqttbrokers
+description:
+- Get all networks _sensor _mqttbrokers.
+- Get networks _sensor _mqttbrokers by id.
+- >
+ List the sensor settings of all MQTT brokers for this network. To get the brokers themselves, use
+ /networks/{networkId}/mqttBrokers.
+- >
+ Return the sensor settings of an MQTT broker. To get the broker itself, use
+ /networks/{networkId}/mqttBrokers/{mqttBrokerId}.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ mqttBrokerId:
+ description:
+ - MqttBrokerId path parameter. Mqtt broker ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getNetworkSensorMqttBroker
+ description: Complete reference of the getNetworkSensorMqttBroker API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-mqtt-broker
+- name: Cisco Meraki documentation for sensor getNetworkSensorMqttBrokers
+ description: Complete reference of the getNetworkSensorMqttBrokers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-mqtt-brokers
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_network_sensor_mqtt_broker,
+ sensor.Sensor.get_network_sensor_mqtt_brokers,
+
+ - Paths used are
+ get /networks/{networkId}/sensor/mqttBrokers,
+ get /networks/{networkId}/sensor/mqttBrokers/{mqttBrokerId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sensor _mqttbrokers
+ cisco.meraki.networks_sensor_mqtt_brokers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _sensor _mqttbrokers by id
+ cisco.meraki.networks_sensor_mqtt_brokers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ mqttBrokerId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "mqttBrokerId": "string",
+ "enabled": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_relationships_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_relationships_info.py
new file mode 100644
index 000000000..759d7ecc1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sensor_relationships_info.py
@@ -0,0 +1,94 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sensor_relationships_info
+short_description: Information module for networks _sensor _relationships
+description:
+- Get all networks _sensor _relationships.
+- List the sensor roles for devices in a given network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getNetworkSensorRelationships
+ description: Complete reference of the getNetworkSensorRelationships API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sensor-relationships
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_network_sensor_relationships,
+
+ - Paths used are
+ get /networks/{networkId}/sensor/relationships,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sensor _relationships
+ cisco.meraki.networks_sensor_relationships_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "device": {
+ "name": "string",
+ "serial": "string",
+ "productType": "string"
+ },
+ "relationships": {
+ "livestream": {
+ "relatedDevices": [
+ {
+ "serial": "string",
+ "productType": "string"
+ }
+ ]
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_settings.py
new file mode 100644
index 000000000..06a298a59
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_settings.py
@@ -0,0 +1,137 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_settings
+short_description: Resource module for networks _settings
+description:
+- Manage operation update of the resource networks _settings.
+- Update the settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ localStatusPage:
+ description: A hash of Local Status page(s)' authentication options applied to the
+ Network.
+ suboptions:
+ authentication:
+ description: A hash of Local Status page(s)' authentication options applied
+ to the Network.
+ suboptions:
+ enabled:
+ description: Enables / disables the authentication on Local Status page(s).
+ type: bool
+ password:
+ description: The password used for Local Status Page(s). Set this to null
+ to clear the password.
+ type: str
+ type: dict
+ type: dict
+ localStatusPageEnabled:
+ description: Enables / disables the local device status pages (<a target='_blank'
+ href='http //my.meraki.com/'>my.meraki.com, </a><a target='_blank' href='http
+ //ap.meraki.com/'>ap.meraki.com, </a><a target='_blank' href='http //switch.meraki.com/'>switch.meraki.com,
+ </a><a target='_blank' href='http //wired.meraki.com/'>wired.meraki.com</a>).
+ Optional (defaults to false).
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ remoteStatusPageEnabled:
+ description: Enables / disables access to the device status page (<a target='_blank'>http
+ //device's LAN IP)</a>. Optional. Can only be set if localStatusPageEnabled is
+ set to true.
+ type: bool
+ securePort:
+ description: A hash of SecureConnect options applied to the Network.
+ suboptions:
+ enabled:
+ description: Enables / disables SecureConnect on the network. Optional.
+ type: bool
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkSettings
+ description: Complete reference of the updateNetworkSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-settings
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_settings,
+
+ - Paths used are
+ put /networks/{networkId}/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ localStatusPage:
+ authentication:
+ enabled: false
+ password: miles123
+ localStatusPageEnabled: true
+ networkId: string
+ remoteStatusPageEnabled: true
+ securePort:
+ enabled: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "localStatusPageEnabled": true,
+ "remoteStatusPageEnabled": true,
+ "localStatusPage": {
+ "authentication": {
+ "enabled": true,
+ "username": "string"
+ }
+ },
+ "securePort": {
+ "enabled": true
+ },
+ "fips": {
+ "enabled": true
+ },
+ "namedVlans": {
+ "enabled": true
+ },
+ "clientPrivacy": {
+ "expireDataOlderThan": 0,
+ "expireDataBefore": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_settings_info.py
new file mode 100644
index 000000000..981f935ef
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_settings_info.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_settings_info
+short_description: Information module for networks _settings
+description:
+- Get all networks _settings.
+- Return the settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkSettings
+ description: Complete reference of the getNetworkSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-settings
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_settings,
+
+ - Paths used are
+ get /networks/{networkId}/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _settings
+ cisco.meraki.networks_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "localStatusPageEnabled": true,
+ "remoteStatusPageEnabled": true,
+ "localStatusPage": {
+ "authentication": {
+ "enabled": true,
+ "username": "string"
+ }
+ },
+ "securePort": {
+ "enabled": true
+ },
+ "fips": {
+ "enabled": true
+ },
+ "namedVlans": {
+ "enabled": true
+ },
+ "clientPrivacy": {
+ "expireDataOlderThan": 0,
+ "expireDataBefore": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts.py
new file mode 100644
index 000000000..7282d7e63
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts.py
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_bypass_activation_lock_attempts
+short_description: Resource module for networks _sm _bypassactivationlockattempts
+description:
+- Manage operation create of the resource networks _sm _bypassactivationlockattempts.
+- Bypass activation lock attempt.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ids:
+ description: The ids of the devices to attempt activation lock bypass.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm createNetworkSmBypassActivationLockAttempt
+ description: Complete reference of the createNetworkSmBypassActivationLockAttempt API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-sm-bypass-activation-lock-attempt
+notes:
+ - SDK Method used are
+ sm.Sm.create_network_sm_bypass_activation_lock_attempt,
+
+ - Paths used are
+ post /networks/{networkId}/sm/bypassActivationLockAttempts,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_bypass_activation_lock_attempts:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ ids:
+ - '1284392014819'
+ - '2983092129865'
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts_info.py
new file mode 100644
index 000000000..a0ced3278
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_bypass_activation_lock_attempts_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_bypass_activation_lock_attempts_info
+short_description: Information module for networks _sm _bypassactivationlockattempts
+description:
+- Get networks _sm _bypassactivationlockattempts by id.
+- Bypass activation lock attempt status.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ attemptId:
+ description:
+ - AttemptId path parameter. Attempt ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmBypassActivationLockAttempt
+ description: Complete reference of the getNetworkSmBypassActivationLockAttempt API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-bypass-activation-lock-attempt
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_bypass_activation_lock_attempt,
+
+ - Paths used are
+ get /networks/{networkId}/sm/bypassActivationLockAttempts/{attemptId},
+"""
+
+EXAMPLES = r"""
+- name: Get networks _sm _bypassactivationlockattempts by id
+ cisco.meraki.networks_sm_bypass_activation_lock_attempts_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ attemptId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_cellular_usage_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_cellular_usage_history_info.py
new file mode 100644
index 000000000..5023705ea
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_cellular_usage_history_info.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_cellular_usage_history_info
+short_description: Information module for networks _sm _devices _cellularusagehistory
+description:
+- Get all networks _sm _devices _cellularusagehistory.
+- Return the client's daily cellular data usage history. Usage data is in kilobytes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceCellularUsageHistory
+ description: Complete reference of the getNetworkSmDeviceCellularUsageHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-cellular-usage-history
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_cellular_usage_history,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/cellularUsageHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _cellularusagehistory
+ cisco.meraki.networks_sm_devices_cellular_usage_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ deviceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "received": 0,
+ "sent": 0,
+ "ts": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_certs_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_certs_info.py
new file mode 100644
index 000000000..2a220ae72
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_certs_info.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_certs_info
+short_description: Information module for networks _sm _devices _certs
+description:
+- Get all networks _sm _devices _certs.
+- List the certs on a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceCerts
+ description: Complete reference of the getNetworkSmDeviceCerts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-certs
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_certs,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/certs,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _certs
+ cisco.meraki.networks_sm_devices_certs_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ deviceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "notValidAfter": "string",
+ "notValidBefore": "string",
+ "certPem": "string",
+ "deviceId": "string",
+ "issuer": "string",
+ "subject": "string",
+ "id": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_checkin.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_checkin.py
new file mode 100644
index 000000000..1dfc1c63b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_checkin.py
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_checkin
+short_description: Resource module for networks _sm _devices _checkin
+description:
+- Manage operation create of the resource networks _sm _devices _checkin.
+- Force check-in a set of devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ids:
+ description: The ids of the devices to be checked-in.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ scope:
+ description: The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll)
+ and a set of tags of the devices to be checked-in.
+ elements: str
+ type: list
+ serials:
+ description: The serials of the devices to be checked-in.
+ elements: str
+ type: list
+ wifiMacs:
+ description: The wifiMacs of the devices to be checked-in.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm checkinNetworkSmDevices
+ description: Complete reference of the checkinNetworkSmDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!checkin-network-sm-devices
+notes:
+ - SDK Method used are
+ sm.Sm.checkin_network_sm_devices,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/checkin,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_checkin:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ ids:
+ - '1284392014819'
+ - '2983092129865'
+ networkId: string
+ scope:
+ - withAny
+ - tag1
+ - tag2
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ wifiMacs:
+ - 00:11:22:33:44:55
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "ids": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_connectivity_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_connectivity_info.py
new file mode 100644
index 000000000..94462c559
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_connectivity_info.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_connectivity_info
+short_description: Information module for networks _sm _devices _connectivity
+description:
+- Get all networks _sm _devices _connectivity.
+- Returns historical connectivity data whether a device is regularly checking in to Dashboard .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceConnectivity
+ description: Complete reference of the getNetworkSmDeviceConnectivity API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-connectivity
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_connectivity,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/connectivity,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _connectivity
+ cisco.meraki.networks_sm_devices_connectivity_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ deviceId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "firstSeenAt": "string",
+ "lastSeenAt": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_desktop_logs_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_desktop_logs_info.py
new file mode 100644
index 000000000..0b90c88b4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_desktop_logs_info.py
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_desktop_logs_info
+short_description: Information module for networks _sm _devices _desktoplogs
+description:
+- Get all networks _sm _devices _desktoplogs.
+- Return historical records of various Systems Manager network connection details for desktop devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceDesktopLogs
+ description: Complete reference of the getNetworkSmDeviceDesktopLogs API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-desktop-logs
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_desktop_logs,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/desktopLogs,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _desktoplogs
+ cisco.meraki.networks_sm_devices_desktop_logs_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ deviceId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "measuredAt": "string",
+ "user": "string",
+ "networkDevice": "string",
+ "networkDriver": "string",
+ "wifiChannel": "string",
+ "wifiAuth": "string",
+ "wifiBssid": "string",
+ "wifiSsid": "string",
+ "wifiRssi": "string",
+ "wifiNoise": "string",
+ "dhcpServer": "string",
+ "ip": "string",
+ "networkMTU": "string",
+ "subnet": "string",
+ "gateway": "string",
+ "publicIP": "string",
+ "dnsServer": "string",
+ "ts": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_command_logs_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_command_logs_info.py
new file mode 100644
index 000000000..255e05013
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_command_logs_info.py
@@ -0,0 +1,116 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_device_command_logs_info
+short_description: Information module for networks _sm _devices _devicecommandlogs
+description:
+- Get all networks _sm _devices _devicecommandlogs.
+- >
+ Return historical records of commands sent to Systems Manager devices. Note that this will include the name of the
+ Dashboard user who initiated the command if it was generated by a Dashboard admin rather than the automatic
+ behavior of the system; you may wish to filter this out of any reports.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceDeviceCommandLogs
+ description: Complete reference of the getNetworkSmDeviceDeviceCommandLogs API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-device-command-logs
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_device_command_logs,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/deviceCommandLogs,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _devicecommandlogs
+ cisco.meraki.networks_sm_devices_device_command_logs_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ deviceId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "action": "string",
+ "name": "string",
+ "details": "string",
+ "dashboardUser": "string",
+ "ts": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_profiles_info.py
new file mode 100644
index 000000000..fe6883bb9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_device_profiles_info.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_device_profiles_info
+short_description: Information module for networks _sm _devices _deviceprofiles
+description:
+- Get all networks _sm _devices _deviceprofiles.
+- Get the installed profiles associated with a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceDeviceProfiles
+ description: Complete reference of the getNetworkSmDeviceDeviceProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-device-profiles
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_device_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/deviceProfiles,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _deviceprofiles
+ cisco.meraki.networks_sm_devices_device_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ deviceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "deviceId": "string",
+ "id": "string",
+ "isEncrypted": true,
+ "isManaged": true,
+ "profileData": "string",
+ "profileIdentifier": "string",
+ "name": "string",
+ "version": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_fields.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_fields.py
new file mode 100644
index 000000000..57b97c54f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_fields.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_fields
+short_description: Resource module for networks _sm _devices _fields
+description:
+- Manage operation update of the resource networks _sm _devices _fields.
+- Modify the fields of a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ deviceFields:
+ description: The new fields of the device. Each field of this object is optional.
+ suboptions:
+ name:
+ description: New name for the device.
+ type: str
+ notes:
+ description: New notes for the device.
+ type: str
+ type: dict
+ id:
+ description: The id of the device to be modified.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ serial:
+ description: The serial of the device to be modified.
+ type: str
+ wifiMac:
+ description: The wifiMac of the device to be modified.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm updateNetworkSmDevicesFields
+ description: Complete reference of the updateNetworkSmDevicesFields API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-sm-devices-fields
+notes:
+ - SDK Method used are
+ sm.Sm.update_network_sm_devices_fields,
+
+ - Paths used are
+ put /networks/{networkId}/sm/devices/fields,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_sm_devices_fields:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ deviceFields:
+ name: Miles's phone
+ notes: Here's some info about my device
+ id: '1284392014819'
+ networkId: string
+ serial: Q234-ABCD-5678
+ wifiMac: 00:11:22:33:44:55
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "wifiMac": "string",
+ "serial": "string",
+ "notes": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_info.py
new file mode 100644
index 000000000..ca4a080e0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_info.py
@@ -0,0 +1,158 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_info
+short_description: Information module for networks _sm _devices
+description:
+- Get all networks _sm _devices.
+- List the devices enrolled in an SM network with various specified fields and filters.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ fields:
+ description:
+ - >
+ Fields query parameter. Additional fields that will be displayed for each device. The default fields are id,
+ name, tags, ssid, wifiMac, osName, systemModel, uuid, and serialNumber. The additional fields are ip,
+ systemType, availableDeviceCapacity, kioskAppName, biosVersion, lastConnected, missingAppsCount,
+ userSuppliedAddress, location, lastUser, ownerEmail, ownerUsername, osBuild, publicIp, phoneNumber,
+ diskInfoJson, deviceCapacity, isManaged, hadMdm, isSupervised, meid, imei, iccid, simCarrierNetwork,
+ cellularDataUsed, isHotspotEnabled, createdAt, batteryEstCharge, quarantined, avName, avRunning, asName,
+ fwName, isRooted, loginRequired, screenLockEnabled, screenLockDelay, autoLoginDisabled, autoTags, hasMdm,
+ hasDesktopAgent, diskEncryptionEnabled, hardwareEncryptionCaps, passCodeLock, usesHardwareKeystore,
+ androidSecurityPatchVersion, and url.
+ elements: str
+ type: list
+ wifiMacs:
+ description:
+ - WifiMacs query parameter. Filter devices by wifi mac(s).
+ elements: str
+ type: list
+ serials:
+ description:
+ - Serials query parameter. Filter devices by serial(s).
+ elements: str
+ type: list
+ ids:
+ description:
+ - Ids query parameter. Filter devices by id(s).
+ elements: str
+ type: list
+ scope:
+ description:
+ - >
+ Scope query parameter. Specify a scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a
+ set of tags.
+ elements: str
+ type: list
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDevices
+ description: Complete reference of the getNetworkSmDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-devices
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_devices,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices
+ cisco.meraki.networks_sm_devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ fields: []
+ wifiMacs: []
+ serials: []
+ ids: []
+ scope: []
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "tags": [
+ "string"
+ ],
+ "ssid": "string",
+ "wifiMac": "string",
+ "osName": "string",
+ "systemModel": "string",
+ "uuid": "string",
+ "serialNumber": "string",
+ "serial": "string",
+ "ip": "string",
+ "notes": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_lock.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_lock.py
new file mode 100644
index 000000000..9f4c7c560
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_lock.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_lock
+short_description: Resource module for networks _sm _devices _lock
+description:
+- Manage operation create of the resource networks _sm _devices _lock.
+- Lock a set of devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ids:
+ description: The ids of the devices to be locked.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ pin:
+ description: The pin number for locking macOS devices (a six digit number). Required
+ only for macOS devices.
+ type: int
+ scope:
+ description: The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll)
+ and a set of tags of the devices to be wiped.
+ elements: str
+ type: list
+ serials:
+ description: The serials of the devices to be locked.
+ elements: str
+ type: list
+ wifiMacs:
+ description: The wifiMacs of the devices to be locked.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm lockNetworkSmDevices
+ description: Complete reference of the lockNetworkSmDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!lock-network-sm-devices
+notes:
+ - SDK Method used are
+ sm.Sm.lock_network_sm_devices,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/lock,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_lock:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ ids:
+ - '1284392014819'
+ - '2983092129865'
+ networkId: string
+ pin: 123456
+ scope:
+ - withAny
+ - tag1
+ - tag2
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ wifiMacs:
+ - 00:11:22:33:44:55
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "ids": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_modify_tags.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_modify_tags.py
new file mode 100644
index 000000000..a67885428
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_modify_tags.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_modify_tags
+short_description: Resource module for networks _sm _devices _modifytags
+description:
+- Manage operation create of the resource networks _sm _devices _modifytags.
+- Add, delete, or update the tags of a set of devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ids:
+ description: The ids of the devices to be modified.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ scope:
+ description: The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll)
+ and a set of tags of the devices to be modified.
+ elements: str
+ type: list
+ serials:
+ description: The serials of the devices to be modified.
+ elements: str
+ type: list
+ tags:
+ description: The tags to be added, deleted, or updated.
+ elements: str
+ type: list
+ updateAction:
+ description: One of add, delete, or update. Only devices that have been modified
+ will be returned.
+ type: str
+ wifiMacs:
+ description: The wifiMacs of the devices to be modified.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm modifyNetworkSmDevicesTags
+ description: Complete reference of the modifyNetworkSmDevicesTags API.
+ link: https://developer.cisco.com/meraki/api-v1/#!modify-network-sm-devices-tags
+notes:
+ - SDK Method used are
+ sm.Sm.modify_network_sm_devices_tags,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/modifyTags,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_modify_tags:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ ids:
+ - '1284392014819'
+ - '2983092129865'
+ networkId: string
+ scope:
+ - withAny, old_tag
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ tags:
+ - tag1
+ - tag2
+ updateAction: add
+ wifiMacs:
+ - 00:11:22:33:44:55
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ sample: >
+ [
+ {
+ "id": "string",
+ "tags": [
+ "string"
+ ],
+ "wifiMac": "string",
+ "serial": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_move.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_move.py
new file mode 100644
index 000000000..822eb7715
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_move.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_move
+short_description: Resource module for networks _sm _devices _move
+description:
+- Manage operation create of the resource networks _sm _devices _move.
+- Move a set of devices to a new network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ids:
+ description: The ids of the devices to be moved.
+ elements: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ newNetwork:
+ description: The new network to which the devices will be moved.
+ type: str
+ scope:
+ description: The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll)
+ and a set of tags of the devices to be moved.
+ elements: str
+ type: list
+ serials:
+ description: The serials of the devices to be moved.
+ elements: str
+ type: list
+ wifiMacs:
+ description: The wifiMacs of the devices to be moved.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm moveNetworkSmDevices
+ description: Complete reference of the moveNetworkSmDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!move-network-sm-devices
+notes:
+ - SDK Method used are
+ sm.Sm.move_network_sm_devices,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/move,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_move:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ ids:
+ - '1284392014819'
+ - '2983092129865'
+ networkId: string
+ newNetwork: '1284392014819'
+ scope:
+ - withAny
+ - tag1
+ - tag2
+ serials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ wifiMacs:
+ - 00:11:22:33:44:55
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "ids": [
+ "string"
+ ],
+ "newNetwork": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_network_adapters_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_network_adapters_info.py
new file mode 100644
index 000000000..99b048a12
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_network_adapters_info.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_network_adapters_info
+short_description: Information module for networks _sm _devices _networkadapters
+description:
+- Get all networks _sm _devices _networkadapters.
+- List the network adapters of a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceNetworkAdapters
+ description: Complete reference of the getNetworkSmDeviceNetworkAdapters API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-network-adapters
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_network_adapters,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/networkAdapters,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _networkadapters
+ cisco.meraki.networks_sm_devices_network_adapters_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ deviceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "dhcpServer": "string",
+ "dnsServer": "string",
+ "gateway": "string",
+ "id": "string",
+ "ip": "string",
+ "mac": "string",
+ "name": "string",
+ "subnet": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_performance_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_performance_history_info.py
new file mode 100644
index 000000000..08ce482cf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_performance_history_info.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_performance_history_info
+short_description: Information module for networks _sm _devices _performancehistory
+description:
+- Get all networks _sm _devices _performancehistory.
+- Return historical records of various Systems Manager client metrics for desktop devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDevicePerformanceHistory
+ description: Complete reference of the getNetworkSmDevicePerformanceHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-performance-history
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_performance_history,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/performanceHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _performancehistory
+ cisco.meraki.networks_sm_devices_performance_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ deviceId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "cpuPercentUsed": 0,
+ "memFree": 0,
+ "memWired": 0,
+ "memActive": 0,
+ "memInactive": 0,
+ "networkSent": 0,
+ "networkReceived": 0,
+ "swapUsed": 0,
+ "diskUsage": {
+ "c": {
+ "used": 0,
+ "space": 0
+ }
+ },
+ "ts": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_refresh_details.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_refresh_details.py
new file mode 100644
index 000000000..743b25541
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_refresh_details.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_refresh_details
+short_description: Resource module for networks _sm _devices _refreshdetails
+description:
+- Manage operation create of the resource networks _sm _devices _refreshdetails.
+- Refresh the details of a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ deviceId:
+ description: DeviceId path parameter. Device ID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm refreshNetworkSmDeviceDetails
+ description: Complete reference of the refreshNetworkSmDeviceDetails API.
+ link: https://developer.cisco.com/meraki/api-v1/#!refresh-network-sm-device-details
+notes:
+ - SDK Method used are
+ sm.Sm.refresh_network_sm_device_details,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/{deviceId}/refreshDetails,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_refresh_details:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ deviceId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_security_centers_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_security_centers_info.py
new file mode 100644
index 000000000..0b375bccf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_security_centers_info.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_security_centers_info
+short_description: Information module for networks _sm _devices _securitycenters
+description:
+- Get all networks _sm _devices _securitycenters.
+- Get a list of softwares associated with a device.
+- List the security centers on a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceSecurityCenters
+ description: Complete reference of the getNetworkSmDeviceSecurityCenters API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-security-centers
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceSoftwares
+ description: Complete reference of the getNetworkSmDeviceSoftwares API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-softwares
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_softwares,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/securityCenters,
+ get /networks/{networkId}/sm/devices/{deviceId}/softwares,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _securitycenters
+ cisco.meraki.networks_sm_devices_security_centers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ deviceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "appId": "string",
+ "bundleSize": 0,
+ "createdAt": "string",
+ "deviceId": "string",
+ "dynamicSize": 0,
+ "id": "string",
+ "identifier": "string",
+ "installedAt": "string",
+ "toInstall": true,
+ "iosRedemptionCode": true,
+ "isManaged": true,
+ "itunesId": "string",
+ "licenseKey": "string",
+ "name": "string",
+ "path": "string",
+ "redemptionCode": 0,
+ "shortVersion": "string",
+ "status": "string",
+ "toUninstall": true,
+ "uninstalledAt": "string",
+ "updatedAt": "string",
+ "vendor": "string",
+ "version": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_unenroll.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_unenroll.py
new file mode 100644
index 000000000..aa23004df
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_unenroll.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_unenroll
+short_description: Resource module for networks _sm _devices _unenroll
+description:
+- Manage operation create of the resource networks _sm _devices _unenroll.
+- Unenroll a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ deviceId:
+ description: DeviceId path parameter. Device ID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm unenrollNetworkSmDevice
+ description: Complete reference of the unenrollNetworkSmDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!unenroll-network-sm-device
+notes:
+ - SDK Method used are
+ sm.Sm.unenroll_network_sm_device,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/{deviceId}/unenroll,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_unenroll:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ deviceId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wipe.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wipe.py
new file mode 100644
index 000000000..898ef5533
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wipe.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_wipe
+short_description: Resource module for networks _sm _devices _wipe
+description:
+- Manage operation create of the resource networks _sm _devices _wipe.
+- Wipe a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ id:
+ description: The id of the device to be wiped.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ pin:
+ description: The pin number (a six digit value) for wiping a macOS device. Required
+ only for macOS devices.
+ type: int
+ serial:
+ description: The serial of the device to be wiped.
+ type: str
+ wifiMac:
+ description: The wifiMac of the device to be wiped.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm wipeNetworkSmDevices
+ description: Complete reference of the wipeNetworkSmDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!wipe-network-sm-devices
+notes:
+ - SDK Method used are
+ sm.Sm.wipe_network_sm_devices,
+
+ - Paths used are
+ post /networks/{networkId}/sm/devices/wipe,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_devices_wipe:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ id: '1284392014819'
+ networkId: string
+ pin: 123456
+ serial: Q234-ABCD-5678
+ wifiMac: 00:11:22:33:44:55
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wlan_lists_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wlan_lists_info.py
new file mode 100644
index 000000000..89d7e7c51
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_devices_wlan_lists_info.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_devices_wlan_lists_info
+short_description: Information module for networks _sm _devices _wlanlists
+description:
+- Get all networks _sm _devices _wlanlists.
+- List the saved SSID names on a device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ deviceId:
+ description:
+ - DeviceId path parameter. Device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmDeviceWlanLists
+ description: Complete reference of the getNetworkSmDeviceWlanLists API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-device-wlan-lists
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_device_wlan_lists,
+
+ - Paths used are
+ get /networks/{networkId}/sm/devices/{deviceId}/wlanLists,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _devices _wlanlists
+ cisco.meraki.networks_sm_devices_wlan_lists_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ deviceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "createdAt": "string",
+ "id": "string",
+ "xml": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_profiles_info.py
new file mode 100644
index 000000000..d604680c3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_profiles_info.py
@@ -0,0 +1,86 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_profiles_info
+short_description: Information module for networks _sm _profiles
+description:
+- Get all networks _sm _profiles.
+- List all profiles in a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmProfiles
+ description: Complete reference of the getNetworkSmProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-profiles
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/sm/profiles,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _profiles
+ cisco.meraki.networks_sm_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "description": "string",
+ "scope": "string",
+ "tags": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups.py
new file mode 100644
index 000000000..d9f5747d0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups.py
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_target_groups
+short_description: Resource module for networks _sm _targetgroups
+description:
+- Manage operations create, update and delete of the resource networks _sm _targetgroups.
+- Add a target group.
+- Delete a target group from a network.
+- Update a target group.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ name:
+ description: The name of this target group.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ scope:
+ description: The scope and tag options of the target group. Comma separated values
+ beginning with one of withAny, withAll, withoutAny, withoutAll, all, none, followed
+ by tags. Default to none if empty.
+ type: str
+ targetGroupId:
+ description: TargetGroupId path parameter. Target group ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm createNetworkSmTargetGroup
+ description: Complete reference of the createNetworkSmTargetGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-sm-target-group
+- name: Cisco Meraki documentation for sm deleteNetworkSmTargetGroup
+ description: Complete reference of the deleteNetworkSmTargetGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-sm-target-group
+- name: Cisco Meraki documentation for sm updateNetworkSmTargetGroup
+ description: Complete reference of the updateNetworkSmTargetGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-sm-target-group
+notes:
+ - SDK Method used are
+ sm.Sm.create_network_sm_target_group,
+ sm.Sm.delete_network_sm_target_group,
+ sm.Sm.update_network_sm_target_group,
+
+ - Paths used are
+ post /networks/{networkId}/sm/targetGroups,
+ delete /networks/{networkId}/sm/targetGroups/{targetGroupId},
+ put /networks/{networkId}/sm/targetGroups/{targetGroupId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_sm_target_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: My target group
+ networkId: string
+ scope: none
+ tags: '[]'
+ type: devices
+
+- name: Update by id
+ cisco.meraki.networks_sm_target_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: My target group
+ networkId: string
+ scope: none
+ tags: '[]'
+ targetGroupId: string
+ type: devices
+
+- name: Delete by id
+ cisco.meraki.networks_sm_target_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ targetGroupId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups_info.py
new file mode 100644
index 000000000..89fdccd5b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_target_groups_info.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_target_groups_info
+short_description: Information module for networks _sm _targetgroups
+description:
+- Get all networks _sm _targetgroups.
+- Get networks _sm _targetgroups by id.
+- List the target groups in this network.
+- Return a target group.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ withDetails:
+ description:
+ - >
+ WithDetails query parameter. Boolean indicating if the the ids of the devices or users scoped by the target
+ group should be included in the response.
+ type: bool
+ targetGroupId:
+ description:
+ - TargetGroupId path parameter. Target group ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmTargetGroup
+ description: Complete reference of the getNetworkSmTargetGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-target-group
+- name: Cisco Meraki documentation for sm getNetworkSmTargetGroups
+ description: Complete reference of the getNetworkSmTargetGroups API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-target-groups
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_target_group,
+ sm.Sm.get_network_sm_target_groups,
+
+ - Paths used are
+ get /networks/{networkId}/sm/targetGroups,
+ get /networks/{networkId}/sm/targetGroups/{targetGroupId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _targetgroups
+ cisco.meraki.networks_sm_target_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ withDetails: True
+ networkId: string
+ register: result
+
+- name: Get networks _sm _targetgroups by id
+ cisco.meraki.networks_sm_target_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ withDetails: True
+ networkId: string
+ targetGroupId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_trusted_access_configs_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_trusted_access_configs_info.py
new file mode 100644
index 000000000..186fadc18
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_trusted_access_configs_info.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_trusted_access_configs_info
+short_description: Information module for networks _sm _trustedaccessconfigs
+description:
+- Get all networks _sm _trustedaccessconfigs.
+- List Trusted Access Configs.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmTrustedAccessConfigs
+ description: Complete reference of the getNetworkSmTrustedAccessConfigs API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-trusted-access-configs
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_trusted_access_configs,
+
+ - Paths used are
+ get /networks/{networkId}/sm/trustedAccessConfigs,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _trustedaccessconfigs
+ cisco.meraki.networks_sm_trusted_access_configs_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "ssidName": "string",
+ "name": "string",
+ "scope": "string",
+ "tags": [
+ "string"
+ ],
+ "timeboundType": "string",
+ "accessStartAt": "string",
+ "accessEndAt": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_delete.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_delete.py
new file mode 100644
index 000000000..348337a74
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_delete.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_user_access_devices_delete
+short_description: Resource module for networks _sm _useraccessdevices _delete
+description:
+- Manage operation delete of the resource networks _sm _useraccessdevices _delete.
+- Delete a User Access Device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ userAccessDeviceId:
+ description: UserAccessDeviceId path parameter. User access device ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm deleteNetworkSmUserAccessDevice
+ description: Complete reference of the deleteNetworkSmUserAccessDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-sm-user-access-device
+notes:
+ - SDK Method used are
+ sm.Sm.delete_network_sm_user_access_device,
+
+ - Paths used are
+ delete /networks/{networkId}/sm/userAccessDevices/{userAccessDeviceId},
+"""
+
+EXAMPLES = r"""
+- name: Delete by id
+ cisco.meraki.networks_sm_user_access_devices_delete:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ userAccessDeviceId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_info.py
new file mode 100644
index 000000000..8062c6c51
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_user_access_devices_info.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_user_access_devices_info
+short_description: Information module for networks _sm _useraccessdevices
+description:
+- Get all networks _sm _useraccessdevices.
+- List User Access Devices and its Trusted Access Connections.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmUserAccessDevices
+ description: Complete reference of the getNetworkSmUserAccessDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-user-access-devices
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_user_access_devices,
+
+ - Paths used are
+ get /networks/{networkId}/sm/userAccessDevices,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _useraccessdevices
+ cisco.meraki.networks_sm_user_access_devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "systemType": "string",
+ "mac": "string",
+ "username": "string",
+ "email": "string",
+ "tags": [
+ "string"
+ ],
+ "trustedAccessConnections": [
+ {
+ "trustedAccessConfigId": "string",
+ "downloadedAt": "string",
+ "scepCompletedAt": "string",
+ "lastConnectedAt": "string"
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_device_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_device_profiles_info.py
new file mode 100644
index 000000000..c431cc0f7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_device_profiles_info.py
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_users_device_profiles_info
+short_description: Information module for networks _sm _users _deviceprofiles
+description:
+- Get all networks _sm _users _deviceprofiles.
+- Get the profiles associated with a user.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ userId:
+ description:
+ - UserId path parameter. User ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmUserDeviceProfiles
+ description: Complete reference of the getNetworkSmUserDeviceProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-user-device-profiles
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_user_device_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/sm/users/{userId}/deviceProfiles,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _users _deviceprofiles
+ cisco.meraki.networks_sm_users_device_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ userId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "deviceId": "string",
+ "id": "string",
+ "isEncrypted": true,
+ "isManaged": true,
+ "profileData": "string",
+ "profileIdentifier": "string",
+ "name": "string",
+ "version": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_info.py
new file mode 100644
index 000000000..415e8595f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_info.py
@@ -0,0 +1,127 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_users_info
+short_description: Information module for networks _sm _users
+description:
+- Get all networks _sm _users.
+- List the owners in an SM network with various specified fields and filters.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ ids:
+ description:
+ - Ids query parameter. Filter users by id(s).
+ elements: str
+ type: list
+ usernames:
+ description:
+ - Usernames query parameter. Filter users by username(s).
+ elements: str
+ type: list
+ emails:
+ description:
+ - Emails query parameter. Filter users by email(s).
+ elements: str
+ type: list
+ scope:
+ description:
+ - >
+ Scope query parameter. Specifiy a scope (one of all, none, withAny, withAll, withoutAny, withoutAll) and a
+ set of tags.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmUsers
+ description: Complete reference of the getNetworkSmUsers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-users
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_users,
+
+ - Paths used are
+ get /networks/{networkId}/sm/users,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _users
+ cisco.meraki.networks_sm_users_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ ids: []
+ usernames: []
+ emails: []
+ scope: []
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "email": "string",
+ "fullName": "string",
+ "username": "string",
+ "hasPassword": true,
+ "tags": "string",
+ "adGroups": [
+ "string"
+ ],
+ "azureAdGroups": [
+ "string"
+ ],
+ "samlGroups": [
+ "string"
+ ],
+ "asmGroups": [
+ "string"
+ ],
+ "isExternal": true,
+ "displayName": "string",
+ "hasIdentityCertificate": true,
+ "userThumbnail": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_softwares_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_softwares_info.py
new file mode 100644
index 000000000..03f436cc1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_sm_users_softwares_info.py
@@ -0,0 +1,107 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_sm_users_softwares_info
+short_description: Information module for networks _sm _users _softwares
+description:
+- Get all networks _sm _users _softwares.
+- Get a list of softwares associated with a user.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ userId:
+ description:
+ - UserId path parameter. User ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getNetworkSmUserSoftwares
+ description: Complete reference of the getNetworkSmUserSoftwares API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-sm-user-softwares
+notes:
+ - SDK Method used are
+ sm.Sm.get_network_sm_user_softwares,
+
+ - Paths used are
+ get /networks/{networkId}/sm/users/{userId}/softwares,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _sm _users _softwares
+ cisco.meraki.networks_sm_users_softwares_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ userId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "appId": "string",
+ "bundleSize": 0,
+ "createdAt": "string",
+ "deviceId": "string",
+ "dynamicSize": 0,
+ "id": "string",
+ "identifier": "string",
+ "installedAt": "string",
+ "toInstall": true,
+ "iosRedemptionCode": true,
+ "isManaged": true,
+ "itunesId": "string",
+ "licenseKey": "string",
+ "name": "string",
+ "path": "string",
+ "redemptionCode": 0,
+ "shortVersion": "string",
+ "status": "string",
+ "toUninstall": true,
+ "uninstalledAt": "string",
+ "updatedAt": "string",
+ "vendor": "string",
+ "version": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_snmp.py b/ansible_collections/cisco/meraki/plugins/modules/networks_snmp.py
new file mode 100644
index 000000000..5c17335a7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_snmp.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_snmp
+short_description: Resource module for networks _snmp
+description:
+- Manage operation update of the resource networks _snmp.
+- Update the SNMP settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ access:
+ description: The type of SNMP access. Can be one of 'none' (disabled), 'community'
+ (V1/V2c), or 'users' (V3).
+ type: str
+ communityString:
+ description: The SNMP community string. Only relevant if 'access' is set to 'community'.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ users:
+ description: The list of SNMP users. Only relevant if 'access' is set to 'users'.
+ elements: dict
+ suboptions:
+ passphrase:
+ description: The passphrase for the SNMP user. Required.
+ type: str
+ username:
+ description: The username for the SNMP user. Required.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkSnmp
+ description: Complete reference of the updateNetworkSnmp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-snmp
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_snmp,
+
+ - Paths used are
+ put /networks/{networkId}/snmp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_snmp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ access: users
+ networkId: string
+ users:
+ - passphrase: hunter2
+ username: AzureDiamond
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_snmp_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_snmp_info.py
new file mode 100644
index 000000000..4ca9958df
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_snmp_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_snmp_info
+short_description: Information module for networks _snmp
+description:
+- Get all networks _snmp.
+- Return the SNMP settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkSnmp
+ description: Complete reference of the getNetworkSnmp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-snmp
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_snmp,
+
+ - Paths used are
+ get /networks/{networkId}/snmp,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _snmp
+ cisco.meraki.networks_snmp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_split.py b/ansible_collections/cisco/meraki/plugins/modules/networks_split.py
new file mode 100644
index 000000000..9eda61958
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_split.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_split
+short_description: Resource module for networks _split
+description:
+- Manage operation create of the resource networks _split.
+- Split a combined network into individual networks for each type of device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks splitNetwork
+ description: Complete reference of the splitNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!split-network
+notes:
+ - SDK Method used are
+ networks.Networks.split_network,
+
+ - Paths used are
+ post /networks/{networkId}/split,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_split:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "resultingNetworks": [
+ {
+ "id": "string",
+ "organizationId": "string",
+ "name": "string",
+ "productTypes": [
+ "string"
+ ],
+ "timeZone": "string",
+ "tags": [
+ "string"
+ ],
+ "enrollmentString": "string",
+ "url": "string",
+ "notes": "string",
+ "isBoundToConfigTemplate": true
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists.py
new file mode 100644
index 000000000..fac22efdb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists.py
@@ -0,0 +1,130 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_access_control_lists
+short_description: Resource module for networks _switch _accesscontrollists
+description:
+- Manage operation update of the resource networks _switch _accesscontrollists.
+- Update the access control lists for a MS network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rules:
+ description: An ordered array of the access control list rules (not including the
+ default rule). An empty array will clear the rules.
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ dstCidr:
+ description: Destination IP address (in IP or CIDR notation) or 'any'.
+ type: str
+ dstPort:
+ description: Destination port. Must be in the range of 1-65535 or 'any'. Default
+ is 'any'.
+ type: str
+ ipVersion:
+ description: IP address version (must be 'any', 'ipv4' or 'ipv6'). Applicable
+ only if network supports IPv6. Default value is 'ipv4'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', or 'any').
+ type: str
+ srcCidr:
+ description: Source IP address (in IP or CIDR notation) or 'any'.
+ type: str
+ srcPort:
+ description: Source port. Must be in the range of 1-65535 or 'any'. Default
+ is 'any'.
+ type: str
+ vlan:
+ description: Incoming traffic VLAN. Must be in the range of 1-4095 or 'any'.
+ Default is 'any'.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchAccessControlLists
+ description: Complete reference of the updateNetworkSwitchAccessControlLists API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-access-control-lists
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_access_control_lists,
+
+ - Paths used are
+ put /networks/{networkId}/switch/accessControlLists,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_access_control_lists:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rules:
+ - comment: Deny SSH
+ dstCidr: 172.16.30/24
+ dstPort: '22'
+ ipVersion: ipv4
+ policy: deny
+ protocol: tcp
+ srcCidr: 10.1.10.0/24
+ srcPort: any
+ vlan: '10'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ [
+ {
+ "comment": "string",
+ "policy": "string",
+ "ipVersion": "string",
+ "protocol": "string",
+ "srcCidr": "string",
+ "srcPort": "string",
+ "dstCidr": "string",
+ "dstPort": "string",
+ "vlan": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists_info.py
new file mode 100644
index 000000000..782199ed5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_control_lists_info.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_access_control_lists_info
+short_description: Information module for networks _switch _accesscontrollists
+description:
+- Get all networks _switch _accesscontrollists.
+- Return the access control lists for a MS network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchAccessControlLists
+ description: Complete reference of the getNetworkSwitchAccessControlLists API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-access-control-lists
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_access_control_lists,
+
+ - Paths used are
+ get /networks/{networkId}/switch/accessControlLists,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _accesscontrollists
+ cisco.meraki.networks_switch_access_control_lists_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "comment": "string",
+ "policy": "string",
+ "ipVersion": "string",
+ "protocol": "string",
+ "srcCidr": "string",
+ "srcPort": "string",
+ "dstCidr": "string",
+ "dstPort": "string",
+ "vlan": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies.py
new file mode 100644
index 000000000..6362763ed
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies.py
@@ -0,0 +1,362 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_access_policies
+short_description: Resource module for networks _switch _accesspolicies
+description:
+- Manage operations create, update and delete of the resource networks _switch _accesspolicies.
+- >
+ Create an access policy for a switch network. If you would like to enable Meraki Authentication, set radiusServers
+ to empty array.
+- Delete an access policy for a switch network.
+- >
+ Update an access policy for a switch network. If you would like to enable Meraki Authentication, set radiusServers
+ to empty array.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accessPolicyNumber:
+ description: AccessPolicyNumber path parameter. Access policy number.
+ type: str
+ accessPolicyType:
+ description: Access Type of the policy. Automatically 'Hybrid authentication' when
+ hostMode is 'Multi-Domain'.
+ type: str
+ dot1x:
+ description: 802.1x Settings.
+ suboptions:
+ controlDirection:
+ description: Supports either 'both' or 'inbound'. Set to 'inbound' to allow
+ unauthorized egress on the switchport. Set to 'both' to control both traffic
+ directions with authorization. Defaults to 'both'.
+ type: str
+ type: dict
+ guestPortBouncing:
+ description: If enabled, Meraki devices will periodically send access-request messages
+ to these RADIUS servers.
+ type: bool
+ guestVlanId:
+ description: ID for the guest VLAN allow unauthorized devices access to limited
+ network resources.
+ type: int
+ hostMode:
+ description: Choose the Host Mode for the access policy.
+ type: str
+ increaseAccessSpeed:
+ description: Enabling this option will make switches execute 802.1X and MAC-bypass
+ authentication simultaneously so that clients authenticate faster. Only required
+ when accessPolicyType is 'Hybrid Authentication.
+ type: bool
+ name:
+ description: Name of the access policy.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ radius:
+ description: Object for RADIUS Settings.
+ suboptions:
+ criticalAuth:
+ description: Critical auth settings for when authentication is rejected by the
+ RADIUS server.
+ suboptions:
+ dataVlanId:
+ description: VLAN that clients who use data will be placed on when RADIUS
+ authentication fails. Will be null if hostMode is Multi-Auth.
+ type: int
+ suspendPortBounce:
+ description: Enable to suspend port bounce when RADIUS servers are unreachable.
+ type: bool
+ voiceVlanId:
+ description: VLAN that clients who use voice will be placed on when RADIUS
+ authentication fails. Will be null if hostMode is Multi-Auth.
+ type: int
+ type: dict
+ failedAuthVlanId:
+ description: VLAN that clients will be placed on when RADIUS authentication
+ fails. Will be null if hostMode is Multi-Auth.
+ type: int
+ reAuthenticationInterval:
+ description: Re-authentication period in seconds. Will be null if hostMode is
+ Multi-Auth.
+ type: int
+ type: dict
+ radiusAccountingEnabled:
+ description: Enable to send start, interim-update and stop messages to a configured
+ RADIUS accounting server for tracking connected clients.
+ type: bool
+ radiusAccountingServers:
+ description: List of RADIUS accounting servers to require connecting devices to
+ authenticate against before granting network access.
+ elements: dict
+ suboptions:
+ host:
+ description: Public IP address of the RADIUS accounting server.
+ type: str
+ port:
+ description: UDP port that the RADIUS Accounting server listens on for access
+ requests.
+ type: int
+ secret:
+ description: RADIUS client shared secret.
+ type: str
+ type: list
+ radiusCoaSupportEnabled:
+ description: Change of authentication for RADIUS re-authentication and disconnection.
+ type: bool
+ radiusGroupAttribute:
+ description: Acceptable values are `""` for None, or `"11"` for Group Policies ACL.
+ type: str
+ radiusServers:
+ description: List of RADIUS servers to require connecting devices to authenticate
+ against before granting network access.
+ elements: dict
+ suboptions:
+ host:
+ description: Public IP address of the RADIUS server.
+ type: str
+ port:
+ description: UDP port that the RADIUS server listens on for access requests.
+ type: int
+ secret:
+ description: RADIUS client shared secret.
+ type: str
+ type: list
+ radiusTestingEnabled:
+ description: If enabled, Meraki devices will periodically send access-request messages
+ to these RADIUS servers.
+ type: bool
+ urlRedirectWalledGardenEnabled:
+ description: Enable to restrict access for clients to a specific set of IP addresses
+ or hostnames prior to authentication.
+ type: bool
+ urlRedirectWalledGardenRanges:
+ description: IP address ranges, in CIDR notation, to restrict access for clients
+ to a specific set of IP addresses or hostnames prior to authentication.
+ elements: str
+ type: list
+ voiceVlanClients:
+ description: CDP/LLDP capable voice clients will be able to use this VLAN. Automatically
+ true when hostMode is 'Multi-Domain'.
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchAccessPolicy
+ description: Complete reference of the createNetworkSwitchAccessPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-access-policy
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchAccessPolicy
+ description: Complete reference of the deleteNetworkSwitchAccessPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-access-policy
+- name: Cisco Meraki documentation for switch updateNetworkSwitchAccessPolicy
+ description: Complete reference of the updateNetworkSwitchAccessPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-access-policy
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_access_policy,
+ switch.Switch.delete_network_switch_access_policy,
+ switch.Switch.update_network_switch_access_policy,
+
+ - Paths used are
+ post /networks/{networkId}/switch/accessPolicies,
+ delete /networks/{networkId}/switch/accessPolicies/{accessPolicyNumber},
+ put /networks/{networkId}/switch/accessPolicies/{accessPolicyNumber},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_access_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accessPolicyType: Hybrid authentication
+ dot1x:
+ controlDirection: inbound
+ guestPortBouncing: false
+ guestVlanId: 100
+ hostMode: Single-Host
+ increaseAccessSpeed: false
+ name: 'Access policy #1'
+ networkId: string
+ radius:
+ criticalAuth:
+ dataVlanId: 100
+ suspendPortBounce: true
+ voiceVlanId: 100
+ failedAuthVlanId: 100
+ reAuthenticationInterval: 120
+ radiusAccountingEnabled: true
+ radiusAccountingServers:
+ - host: 1.2.3.4
+ port: 22
+ secret: secret
+ radiusCoaSupportEnabled: false
+ radiusGroupAttribute: '11'
+ radiusServers:
+ - host: 1.2.3.4
+ port: 22
+ secret: secret
+ radiusTestingEnabled: false
+ urlRedirectWalledGardenEnabled: true
+ urlRedirectWalledGardenRanges:
+ - 192.168.1.0/24
+ voiceVlanClients: true
+
+- name: Update by id
+ cisco.meraki.networks_switch_access_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accessPolicyNumber: string
+ accessPolicyType: Hybrid authentication
+ dot1x:
+ controlDirection: inbound
+ guestPortBouncing: false
+ guestVlanId: 100
+ hostMode: Single-Host
+ increaseAccessSpeed: false
+ name: 'Access policy #1'
+ networkId: string
+ radius:
+ criticalAuth:
+ dataVlanId: 100
+ suspendPortBounce: true
+ voiceVlanId: 100
+ failedAuthVlanId: 100
+ reAuthenticationInterval: 120
+ radiusAccountingEnabled: true
+ radiusAccountingServers:
+ - host: 1.2.3.4
+ port: 22
+ secret: secret
+ radiusCoaSupportEnabled: false
+ radiusGroupAttribute: '11'
+ radiusServers:
+ - host: 1.2.3.4
+ port: 22
+ secret: secret
+ radiusTestingEnabled: false
+ urlRedirectWalledGardenEnabled: true
+ urlRedirectWalledGardenRanges:
+ - 192.168.1.0/24
+ voiceVlanClients: true
+
+- name: Delete by id
+ cisco.meraki.networks_switch_access_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ accessPolicyNumber: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "radiusServers": [
+ {
+ "host": "string",
+ "port": 0
+ }
+ ],
+ "radius": {
+ "criticalAuth": {
+ "dataVlanId": 0,
+ "voiceVlanId": 0,
+ "suspendPortBounce": true
+ },
+ "failedAuthVlanId": 0,
+ "reAuthenticationInterval": 0
+ },
+ "guestPortBouncing": true,
+ "radiusTestingEnabled": true,
+ "radiusCoaSupportEnabled": true,
+ "radiusAccountingEnabled": true,
+ "radiusAccountingServers": [
+ {
+ "host": "string",
+ "port": 0
+ }
+ ],
+ "radiusGroupAttribute": "string",
+ "hostMode": "string",
+ "accessPolicyType": "string",
+ "increaseAccessSpeed": true,
+ "guestVlanId": 0,
+ "dot1x": {
+ "controlDirection": "string"
+ },
+ "voiceVlanClients": true,
+ "urlRedirectWalledGardenEnabled": true,
+ "urlRedirectWalledGardenRanges": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies_info.py
new file mode 100644
index 000000000..fe1c7310e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_access_policies_info.py
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_access_policies_info
+short_description: Information module for networks _switch _accesspolicies
+description:
+- Get all networks _switch _accesspolicies.
+- Get networks _switch _accesspolicies by id.
+- >
+ List the access policies for a switch network. Only returns access policies with 'my RADIUS server' as
+ authentication method.
+- Return a specific access policy for a switch network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ accessPolicyNumber:
+ description:
+ - AccessPolicyNumber path parameter. Access policy number.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchAccessPolicies
+ description: Complete reference of the getNetworkSwitchAccessPolicies API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-access-policies
+- name: Cisco Meraki documentation for switch getNetworkSwitchAccessPolicy
+ description: Complete reference of the getNetworkSwitchAccessPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-access-policy
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_access_policies,
+ switch.Switch.get_network_switch_access_policy,
+
+ - Paths used are
+ get /networks/{networkId}/switch/accessPolicies,
+ get /networks/{networkId}/switch/accessPolicies/{accessPolicyNumber},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _accesspolicies
+ cisco.meraki.networks_switch_access_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _switch _accesspolicies by id
+ cisco.meraki.networks_switch_access_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ accessPolicyNumber: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "radiusServers": [
+ {
+ "host": "string",
+ "port": 0
+ }
+ ],
+ "radius": {
+ "criticalAuth": {
+ "dataVlanId": 0,
+ "voiceVlanId": 0,
+ "suspendPortBounce": true
+ },
+ "failedAuthVlanId": 0,
+ "reAuthenticationInterval": 0
+ },
+ "guestPortBouncing": true,
+ "radiusTestingEnabled": true,
+ "radiusCoaSupportEnabled": true,
+ "radiusAccountingEnabled": true,
+ "radiusAccountingServers": [
+ {
+ "host": "string",
+ "port": 0
+ }
+ ],
+ "radiusGroupAttribute": "string",
+ "hostMode": "string",
+ "accessPolicyType": "string",
+ "increaseAccessSpeed": true,
+ "guestVlanId": 0,
+ "dot1x": {
+ "controlDirection": "string"
+ },
+ "voiceVlanClients": true,
+ "urlRedirectWalledGardenEnabled": true,
+ "urlRedirectWalledGardenRanges": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface.py
new file mode 100644
index 000000000..e8119b2f1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface.py
@@ -0,0 +1,116 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_alternate_management_interface
+short_description: Resource module for networks _switch _alternatemanagementinterface
+description:
+- Manage operation update of the resource networks _switch _alternatemanagementinterface.
+- Update the switch alternate management interface for the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: Boolean value to enable or disable AMI configuration. If enabled, VLAN
+ and protocols must be set.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ protocols:
+ description: Can be one or more of the following values 'radius', 'snmp' or 'syslog'.
+ elements: str
+ type: list
+ switches:
+ description: Array of switch serial number and IP assignment. If parameter is present,
+ it cannot have empty body. Note switches parameter is not applicable for template
+ networks, in other words, do not put 'switches' in the body when updating template
+ networks. Also, an empty 'switches' array will remove all previous assignments.
+ elements: dict
+ suboptions:
+ alternateManagementIp:
+ description: Switch alternative management IP. To remove a prior IP setting,
+ provide an empty string.
+ type: str
+ gateway:
+ description: Switch gateway must be in IP format. Only and must be specified
+ for Polaris switches.
+ type: str
+ serial:
+ description: Switch serial number.
+ type: str
+ subnetMask:
+ description: Switch subnet mask must be in IP format. Only and must be specified
+ for Polaris switches.
+ type: str
+ type: list
+ vlanId:
+ description: Alternate management VLAN, must be between 1 and 4094.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchAlternateManagementInterface
+ description: Complete reference of the updateNetworkSwitchAlternateManagementInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-alternate-management-interface
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_alternate_management_interface,
+
+ - Paths used are
+ put /networks/{networkId}/switch/alternateManagementInterface,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_alternate_management_interface:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ networkId: string
+ protocols:
+ - radius
+ - snmp
+ - syslog
+ switches:
+ - alternateManagementIp: 1.2.3.4
+ gateway: 1.2.3.5
+ serial: Q234-ABCD-5678
+ subnetMask: 255.255.255.0
+ vlanId: 100
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface_info.py
new file mode 100644
index 000000000..a576b95ec
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_alternate_management_interface_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_alternate_management_interface_info
+short_description: Information module for networks _switch _alternatemanagementinterface
+description:
+- Get all networks _switch _alternatemanagementinterface.
+- Return the switch alternate management interface for the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchAlternateManagementInterface
+ description: Complete reference of the getNetworkSwitchAlternateManagementInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-alternate-management-interface
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_alternate_management_interface,
+
+ - Paths used are
+ get /networks/{networkId}/switch/alternateManagementInterface,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _alternatemanagementinterface
+ cisco.meraki.networks_switch_alternate_management_interface_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy.py
new file mode 100644
index 000000000..b381c0d4a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy.py
@@ -0,0 +1,118 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dhcp_server_policy
+short_description: Resource module for networks _switch _dhcpserverpolicy
+description:
+- Manage operation update of the resource networks _switch _dhcpserverpolicy.
+- >
+ Update the DHCP server settings. Blocked/allowed servers are only applied when default policy is allow/block,
+ respectively.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ alerts:
+ description: Alert settings for DHCP servers.
+ suboptions:
+ email:
+ description: Email alert settings for DHCP servers.
+ suboptions:
+ enabled:
+ description: When enabled, send an email if a new DHCP server is seen. Default
+ value is false.
+ type: bool
+ type: dict
+ type: dict
+ allowedServers:
+ description: List the MAC addresses of DHCP servers to permit on the network when
+ defaultPolicy is set to block. An empty array will clear the entries.
+ elements: str
+ type: list
+ arpInspection:
+ description: Dynamic ARP Inspection settings.
+ suboptions:
+ enabled:
+ description: Enable or disable Dynamic ARP Inspection on the network. Default
+ value is false.
+ type: bool
+ type: dict
+ blockedServers:
+ description: List the MAC addresses of DHCP servers to block on the network when
+ defaultPolicy is set to allow. An empty array will clear the entries.
+ elements: str
+ type: list
+ defaultPolicy:
+ description: '''allow'' or ''block'' new DHCP servers. Default value is ''allow''.'
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchDhcpServerPolicy
+ description: Complete reference of the updateNetworkSwitchDhcpServerPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-dhcp-server-policy
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_dhcp_server_policy,
+
+ - Paths used are
+ put /networks/{networkId}/switch/dhcpServerPolicy,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_dhcp_server_policy:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ alerts:
+ email:
+ enabled: false
+ allowedServers:
+ - 00:50:56:00:00:01
+ - 00:50:56:00:00:02
+ arpInspection:
+ enabled: false
+ blockedServers:
+ - 00:50:56:00:00:03
+ - 00:50:56:00:00:04
+ defaultPolicy: block
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers.py
new file mode 100644
index 000000000..b44011380
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers.py
@@ -0,0 +1,167 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dhcp_server_policy_arp_inspection_trusted_servers
+short_description: Resource module for networks _switch _dhcpserverpolicy _arpinspection _trustedservers
+description:
+- Manage operations create, update and delete of the resource networks _switch _dhcpserverpolicy _arpinspection _trustedservers.
+- Add a server to be trusted by Dynamic ARP Inspection on this network.
+- Remove a server from being trusted by Dynamic ARP Inspection on this network.
+- Update a server that is trusted by Dynamic ARP Inspection on this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ipv4:
+ description: The IPv4 attributes of the trusted server being added.
+ suboptions:
+ address:
+ description: The IPv4 address of the trusted server being added.
+ type: str
+ type: dict
+ mac:
+ description: The mac address of the trusted server being added.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ trustedServerId:
+ description: TrustedServerId path parameter. Trusted server ID.
+ type: str
+ vlan:
+ description: The VLAN of the trusted server being added. It must be between 1 and
+ 4094.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer
+ description: Complete reference of the createNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-dhcp-server-policy-arp-inspection-trusted-server
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer
+ description: Complete reference of the deleteNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-dhcp-server-policy-arp-inspection-trusted-server
+- name: Cisco Meraki documentation for switch updateNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer
+ description: Complete reference of the updateNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-dhcp-server-policy-arp-inspection-trusted-server
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_dhcp_server_policy_arp_inspection_trusted_server,
+ switch.Switch.delete_network_switch_dhcp_server_policy_arp_inspection_trusted_server,
+ switch.Switch.update_network_switch_dhcp_server_policy_arp_inspection_trusted_server,
+
+ - Paths used are
+ post /networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers,
+ delete /networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers/{trustedServerId},
+ put /networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers/{trustedServerId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_dhcp_server_policy_arp_inspection_trusted_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ ipv4:
+ address: 1.2.3.4
+ mac: 00:11:22:33:44:55
+ networkId: string
+ vlan: 100
+
+- name: Update by id
+ cisco.meraki.networks_switch_dhcp_server_policy_arp_inspection_trusted_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ ipv4:
+ address: 1.2.3.4
+ mac: 00:11:22:33:44:55
+ networkId: string
+ trustedServerId: string
+ vlan: 100
+
+- name: Delete by id
+ cisco.meraki.networks_switch_dhcp_server_policy_arp_inspection_trusted_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ trustedServerId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "trustedServerId": "string",
+ "mac": "string",
+ "vlan": 0,
+ "ipv4": {
+ "address": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info.py
new file mode 100644
index 000000000..e654b5159
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info.py
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info
+short_description: Information module for networks _switch _dhcpserverpolicy _arpinspection _trustedservers
+description:
+- Get all networks _switch _dhcpserverpolicy _arpinspection _trustedservers.
+- >
+ Return the list of servers trusted by Dynamic ARP Inspection on this network. These are also known as allow listed
+ snoop entries.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchDhcpServerPolicyArpInspectionTrustedServers
+ description: Complete reference of the getNetworkSwitchDhcpServerPolicyArpInspectionTrustedServers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-dhcp-server-policy-arp-inspection-trusted-servers
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_dhcp_server_policy_arp_inspection_trusted_servers,
+
+ - Paths used are
+ get /networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _dhcpserverpolicy _arpinspection _trustedservers
+ cisco.meraki.networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "trustedServerId": "string",
+ "mac": "string",
+ "vlan": 0,
+ "ipv4": {
+ "address": "string"
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info.py
new file mode 100644
index 000000000..ea6429340
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info
+short_description: Information module for networks _switch _dhcpserverpolicy _arpinspection _warnings _bydevice
+description:
+- Get all networks _switch _dhcpserverpolicy _arpinspection _warnings _bydevice.
+- Return the devices that have a Dynamic ARP Inspection warning and their warnings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchDhcpServerPolicyArpInspectionWarningsByDevice
+ description: Complete reference of the getNetworkSwitchDhcpServerPolicyArpInspectionWarningsByDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-dhcp-server-policy-arp-inspection-warnings-by-device
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_dhcp_server_policy_arp_inspection_warnings_by_device,
+
+ - Paths used are
+ get /networks/{networkId}/switch/dhcpServerPolicy/arpInspection/warnings/byDevice,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _dhcpserverpolicy _arpinspection _warnings _bydevice
+ cisco.meraki.networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "serial": "string",
+ "name": "string",
+ "url": "string",
+ "supportsInspection": true,
+ "hasTrustedPort": true
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_info.py
new file mode 100644
index 000000000..471741bc3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_server_policy_info.py
@@ -0,0 +1,77 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dhcp_server_policy_info
+short_description: Information module for networks _switch _dhcpserverpolicy
+description:
+- Get all networks _switch _dhcpserverpolicy.
+- >
+ Return the DHCP server settings. Blocked/allowed servers are only applied when default policy is allow/block,
+ respectively.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchDhcpServerPolicy
+ description: Complete reference of the getNetworkSwitchDhcpServerPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-dhcp-server-policy
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_dhcp_server_policy,
+
+ - Paths used are
+ get /networks/{networkId}/switch/dhcpServerPolicy,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _dhcpserverpolicy
+ cisco.meraki.networks_switch_dhcp_server_policy_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_v4_servers_seen_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_v4_servers_seen_info.py
new file mode 100644
index 000000000..824bbceea
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dhcp_v4_servers_seen_info.py
@@ -0,0 +1,208 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dhcp_v4_servers_seen_info
+short_description: Information module for networks _switch _dhcp v4 _servers _seen
+description:
+- Get all networks _switch _dhcp v4 _servers _seen.
+- Return the network's DHCPv4 servers seen within the selected timeframe default 1 day .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is
+ 1 day.
+ type: float
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchDhcpV4ServersSeen
+ description: Complete reference of the getNetworkSwitchDhcpV4ServersSeen API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-dhcp-v4-servers-seen
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_dhcp_v4_servers_seen,
+
+ - Paths used are
+ get /networks/{networkId}/switch/dhcp/v4/servers/seen,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _dhcp v4 _servers _seen
+ cisco.meraki.networks_switch_dhcp_v4_servers_seen_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ timespan: 0
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "mac": "string",
+ "vlan": 0,
+ "clientId": "string",
+ "isAllowed": true,
+ "lastSeenAt": "string",
+ "seenBy": [
+ {
+ "serial": "string",
+ "name": "string",
+ "url": "string"
+ }
+ ],
+ "type": "string",
+ "device": {
+ "serial": "string",
+ "name": "string",
+ "url": "string",
+ "interface": {
+ "name": "string",
+ "url": "string"
+ }
+ },
+ "ipv4": {
+ "address": "string",
+ "subnet": "string",
+ "gateway": "string"
+ },
+ "isConfigured": true,
+ "lastAck": {
+ "ts": "string",
+ "ipv4": {
+ "address": "string"
+ }
+ },
+ "lastPacket": {
+ "source": {
+ "mac": "string",
+ "ipv4": {
+ "address": "string"
+ },
+ "port": 0
+ },
+ "destination": {
+ "mac": "string",
+ "ipv4": {
+ "address": "string"
+ },
+ "port": 0
+ },
+ "type": "string",
+ "ethernet": {
+ "type": "string"
+ },
+ "ip": {
+ "id": "string",
+ "version": 0,
+ "length": 0,
+ "headerLength": 0,
+ "protocol": 0,
+ "ttl": 0,
+ "dscp": {
+ "tag": 0,
+ "ecn": 0
+ }
+ },
+ "udp": {
+ "length": 0,
+ "checksum": "string"
+ },
+ "fields": {
+ "op": 0,
+ "htype": 0,
+ "hlen": 0,
+ "hops": 0,
+ "xid": "string",
+ "secs": 0,
+ "flags": "string",
+ "ciaddr": "string",
+ "yiaddr": "string",
+ "siaddr": "string",
+ "giaddr": "string",
+ "chaddr": "string",
+ "sname": "string",
+ "magicCookie": "string",
+ "options": [
+ {
+ "name": "string",
+ "value": "string"
+ }
+ ]
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings.py
new file mode 100644
index 000000000..55001b4ab
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dscp_to_cos_mappings
+short_description: Resource module for networks _switch _dscptocosmappings
+description:
+- Manage operation update of the resource networks _switch _dscptocosmappings.
+- Update the DSCP to CoS mappings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ mappings:
+ description: An array of DSCP to CoS mappings. An empty array will reset the mappings
+ to default.
+ elements: dict
+ suboptions:
+ cos:
+ description: The actual layer-2 CoS queue the DSCP value is mapped to. These
+ are not bits set on outgoing frames. Value can be in the range of 0 to 5 inclusive.
+ type: int
+ dscp:
+ description: The Differentiated Services Code Point (DSCP) tag in the IP header
+ that will be mapped to a particular Class-of-Service (CoS) queue. Value can
+ be in the range of 0 to 63 inclusive.
+ type: int
+ title:
+ description: Label for the mapping (optional).
+ type: str
+ type: list
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchDscpToCosMappings
+ description: Complete reference of the updateNetworkSwitchDscpToCosMappings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-dscp-to-cos-mappings
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_dscp_to_cos_mappings,
+
+ - Paths used are
+ put /networks/{networkId}/switch/dscpToCosMappings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_dscp_to_cos_mappings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ mappings:
+ - cos: 1
+ dscp: 1
+ title: Video
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings_info.py
new file mode 100644
index 000000000..b13cc894c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_dscp_to_cos_mappings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_dscp_to_cos_mappings_info
+short_description: Information module for networks _switch _dscptocosmappings
+description:
+- Get all networks _switch _dscptocosmappings.
+- Return the DSCP to CoS mappings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchDscpToCosMappings
+ description: Complete reference of the getNetworkSwitchDscpToCosMappings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-dscp-to-cos-mappings
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_dscp_to_cos_mappings,
+
+ - Paths used are
+ get /networks/{networkId}/switch/dscpToCosMappings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _dscptocosmappings
+ cisco.meraki.networks_switch_dscp_to_cos_mappings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations.py
new file mode 100644
index 000000000..297dc628a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations.py
@@ -0,0 +1,201 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_link_aggregations
+short_description: Resource module for networks _switch _linkaggregations
+description:
+- Manage operations create, update and delete of the resource networks _switch _linkaggregations.
+- Create a link aggregation group.
+- Split a link aggregation group into separate ports.
+- Update a link aggregation group.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ linkAggregationId:
+ description: LinkAggregationId path parameter. Link aggregation ID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ switchPorts:
+ description: Array of switch or stack ports for creating aggregation group. Minimum
+ 2 and maximum 8 ports are supported.
+ elements: dict
+ suboptions:
+ portId:
+ description: Port identifier of switch port. For modules, the identifier is
+ "SlotNumber_ModuleType_PortNumber" (Ex "1_8X10G_1"), otherwise it is just
+ the port number (Ex "8").
+ type: str
+ serial:
+ description: Serial number of the switch.
+ type: str
+ type: list
+ switchProfilePorts:
+ description: Array of switch profile ports for creating aggregation group. Minimum
+ 2 and maximum 8 ports are supported.
+ elements: dict
+ suboptions:
+ portId:
+ description: Port identifier of switch port. For modules, the identifier is
+ "SlotNumber_ModuleType_PortNumber" (Ex "1_8X10G_1"), otherwise it is just
+ the port number (Ex "8").
+ type: str
+ profile:
+ description: Profile identifier.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchLinkAggregation
+ description: Complete reference of the createNetworkSwitchLinkAggregation API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-link-aggregation
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchLinkAggregation
+ description: Complete reference of the deleteNetworkSwitchLinkAggregation API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-link-aggregation
+- name: Cisco Meraki documentation for switch updateNetworkSwitchLinkAggregation
+ description: Complete reference of the updateNetworkSwitchLinkAggregation API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-link-aggregation
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_link_aggregation,
+ switch.Switch.delete_network_switch_link_aggregation,
+ switch.Switch.update_network_switch_link_aggregation,
+
+ - Paths used are
+ post /networks/{networkId}/switch/linkAggregations,
+ delete /networks/{networkId}/switch/linkAggregations/{linkAggregationId},
+ put /networks/{networkId}/switch/linkAggregations/{linkAggregationId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_link_aggregations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ switchPorts:
+ - portId: '1'
+ serial: Q234-ABCD-0001
+ - portId: '2'
+ serial: Q234-ABCD-0002
+ - portId: '3'
+ serial: Q234-ABCD-0003
+ - portId: '4'
+ serial: Q234-ABCD-0004
+ - portId: '5'
+ serial: Q234-ABCD-0005
+ - portId: '6'
+ serial: Q234-ABCD-0006
+ - portId: '7'
+ serial: Q234-ABCD-0007
+ - portId: '8'
+ serial: Q234-ABCD-0008
+
+- name: Update by id
+ cisco.meraki.networks_switch_link_aggregations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ id: NDU2N18yXzM=
+ linkAggregationId: string
+ networkId: string
+ switchPorts:
+ - portId: '1'
+ serial: Q234-ABCD-0001
+ - portId: '2'
+ serial: Q234-ABCD-0002
+ - portId: '3'
+ serial: Q234-ABCD-0003
+ - portId: '4'
+ serial: Q234-ABCD-0004
+ - portId: '5'
+ serial: Q234-ABCD-0005
+ - portId: '6'
+ serial: Q234-ABCD-0006
+ - portId: '7'
+ serial: Q234-ABCD-0007
+ - portId: '8'
+ serial: Q234-ABCD-0008
+
+- name: Delete by id
+ cisco.meraki.networks_switch_link_aggregations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ linkAggregationId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations_info.py
new file mode 100644
index 000000000..5b2d93fe6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_link_aggregations_info.py
@@ -0,0 +1,86 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_link_aggregations_info
+short_description: Information module for networks _switch _linkaggregations
+description:
+- Get all networks _switch _linkaggregations.
+- List link aggregation groups.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchLinkAggregations
+ description: Complete reference of the getNetworkSwitchLinkAggregations API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-link-aggregations
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_link_aggregations,
+
+ - Paths used are
+ get /networks/{networkId}/switch/linkAggregations,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _linkaggregations
+ cisco.meraki.networks_switch_link_aggregations_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "switchPorts": [
+ {
+ "serial": "string",
+ "portId": "string"
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu.py
new file mode 100644
index 000000000..1d981d779
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_mtu
+short_description: Resource module for networks _switch _mtu
+description:
+- Manage operation update of the resource networks _switch _mtu.
+- Update the MTU configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ defaultMtuSize:
+ description: MTU size for the entire network. Default value is 9578.
+ type: int
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ overrides:
+ description: Override MTU size for individual switches or switch profiles. An empty
+ array will clear overrides.
+ elements: dict
+ suboptions:
+ mtuSize:
+ description: MTU size for the switches or switch profiles.
+ type: int
+ switchProfiles:
+ description: List of switch profile IDs. Applicable only for template network.
+ elements: str
+ type: list
+ switches:
+ description: List of switch serials. Applicable only for switch network.
+ elements: str
+ type: list
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchMtu
+ description: Complete reference of the updateNetworkSwitchMtu API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-mtu
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_mtu,
+
+ - Paths used are
+ put /networks/{networkId}/switch/mtu,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_mtu:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultMtuSize: 9578
+ networkId: string
+ overrides:
+ - mtuSize: 1500
+ switches:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ - mtuSize: 1600
+ switchProfiles:
+ - '1284392014819'
+ - '2983092129865'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu_info.py
new file mode 100644
index 000000000..1cc1be9bf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_mtu_info.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_mtu_info
+short_description: Information module for networks _switch _mtu
+description:
+- Get all networks _switch _mtu.
+- Return the MTU configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchMtu
+ description: Complete reference of the getNetworkSwitchMtu API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-mtu
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_mtu,
+
+ - Paths used are
+ get /networks/{networkId}/switch/mtu,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _mtu
+ cisco.meraki.networks_switch_mtu_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "defaultMtuSize": 0,
+ "overrides": [
+ {
+ "switches": [
+ "string"
+ ],
+ "switchProfiles": [
+ "string"
+ ],
+ "mtuSize": 0
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules.py
new file mode 100644
index 000000000..9b714e198
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules.py
@@ -0,0 +1,334 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_port_schedules
+short_description: Resource module for networks _switch _portschedules
+description:
+- Manage operations create, update and delete of the resource networks _switch _portschedules.
+- Add a switch port schedule.
+- Delete a switch port schedule.
+- Update a switch port schedule.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ name:
+ description: The name for your port schedule. Required.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ portSchedule:
+ description: The schedule for switch port scheduling. Schedules are applied to days
+ of the week. When it's empty, default schedule with all days of a week are configured.
+ Any unspecified day in the schedule is added as a default schedule configuration
+ of the day.
+ suboptions:
+ friday:
+ description: The schedule object for Friday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ monday:
+ description: The schedule object for Monday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ saturday:
+ description: The schedule object for Saturday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ sunday:
+ description: The schedule object for Sunday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ thursday:
+ description: The schedule object for Thursday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ tuesday:
+ description: The schedule object for Tuesday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ wednesday:
+ description: The schedule object for Wednesday.
+ suboptions:
+ active:
+ description: Whether the schedule is active (true) or inactive (false) during
+ the time specified between 'from' and 'to'. Defaults to true.
+ type: bool
+ from:
+ description: The time, from '00 00' to '24 00'. Must be less than the time
+ specified in 'to'. Defaults to '00 00'. Only 30 minute increments are
+ allowed.
+ type: str
+ to:
+ description: The time, from '00 00' to '24 00'. Must be greater than the
+ time specified in 'from'. Defaults to '24 00'. Only 30 minute increments
+ are allowed.
+ type: str
+ type: dict
+ type: dict
+ portScheduleId:
+ description: PortScheduleId path parameter. Port schedule ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchPortSchedule
+ description: Complete reference of the createNetworkSwitchPortSchedule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-port-schedule
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchPortSchedule
+ description: Complete reference of the deleteNetworkSwitchPortSchedule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-port-schedule
+- name: Cisco Meraki documentation for switch updateNetworkSwitchPortSchedule
+ description: Complete reference of the updateNetworkSwitchPortSchedule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-port-schedule
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_port_schedule,
+ switch.Switch.delete_network_switch_port_schedule,
+ switch.Switch.update_network_switch_port_schedule,
+
+ - Paths used are
+ post /networks/{networkId}/switch/portSchedules,
+ delete /networks/{networkId}/switch/portSchedules/{portScheduleId},
+ put /networks/{networkId}/switch/portSchedules/{portScheduleId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_port_schedules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: Weekdays schedule
+ networkId: string
+ portSchedule:
+ friday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ monday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ saturday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ sunday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ thursday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ tuesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ wednesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+
+- name: Update by id
+ cisco.meraki.networks_switch_port_schedules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: Weekdays schedule
+ networkId: string
+ portSchedule:
+ friday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ monday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ saturday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ sunday:
+ active: false
+ from: 0:00
+ to: '24:00'
+ thursday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ tuesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ wednesday:
+ active: true
+ from: '9:00'
+ to: '17:00'
+ portScheduleId: string
+
+- name: Delete by id
+ cisco.meraki.networks_switch_port_schedules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ portScheduleId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules_info.py
new file mode 100644
index 000000000..8a409eb51
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_port_schedules_info.py
@@ -0,0 +1,118 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_port_schedules_info
+short_description: Information module for networks _switch _portschedules
+description:
+- Get all networks _switch _portschedules.
+- List switch port schedules.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchPortSchedules
+ description: Complete reference of the getNetworkSwitchPortSchedules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-port-schedules
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_port_schedules,
+
+ - Paths used are
+ get /networks/{networkId}/switch/portSchedules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _portschedules
+ cisco.meraki.networks_switch_port_schedules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "portSchedule": {
+ "monday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ },
+ "tuesday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ },
+ "wednesday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ },
+ "thursday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ },
+ "friday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ },
+ "saturday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ },
+ "sunday": {
+ "active": true,
+ "from": "string",
+ "to": "string"
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order.py
new file mode 100644
index 000000000..f3bddd377
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order.py
@@ -0,0 +1,178 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_qos_rules_order
+short_description: Resource module for networks _switch _qosrules _order
+description:
+- Manage operations create, update and delete of the resource networks _switch _qosrules _order.
+- Add a quality of service rule.
+- Delete a quality of service rule.
+- Update a quality of service rule.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ dscp:
+ description: DSCP tag. Set this to -1 to trust incoming DSCP. Default value is 0.
+ type: int
+ dstPort:
+ description: The destination port of the incoming packet. Applicable only if protocol
+ is TCP or UDP.
+ type: int
+ dstPortRange:
+ description: The destination port range of the incoming packet. Applicable only
+ if protocol is set to TCP or UDP. Example 70-80.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ protocol:
+ description: The protocol of the incoming packet. Can be one of "ANY", "TCP" or
+ "UDP". Default value is "ANY".
+ type: str
+ qosRuleId:
+ description: QosRuleId path parameter. Qos rule ID.
+ type: str
+ srcPort:
+ description: The source port of the incoming packet. Applicable only if protocol
+ is TCP or UDP.
+ type: int
+ srcPortRange:
+ description: The source port range of the incoming packet. Applicable only if protocol
+ is set to TCP or UDP. Example 70-80.
+ type: str
+ vlan:
+ description: The VLAN of the incoming packet. A null value will match any VLAN.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchQosRule
+ description: Complete reference of the createNetworkSwitchQosRule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-qos-rule
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchQosRule
+ description: Complete reference of the deleteNetworkSwitchQosRule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-qos-rule
+- name: Cisco Meraki documentation for switch updateNetworkSwitchQosRule
+ description: Complete reference of the updateNetworkSwitchQosRule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-qos-rule
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_qos_rule,
+ switch.Switch.delete_network_switch_qos_rule,
+ switch.Switch.update_network_switch_qos_rule,
+
+ - Paths used are
+ post /networks/{networkId}/switch/qosRules,
+ delete /networks/{networkId}/switch/qosRules/{qosRuleId},
+ put /networks/{networkId}/switch/qosRules/{qosRuleId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_qos_rules_order:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ dscp: 0
+ dstPort: 3000
+ dstPortRange: 3000-3100
+ networkId: string
+ protocol: TCP
+ srcPort: 2000
+ srcPortRange: 70-80
+ vlan: 100
+
+- name: Update by id
+ cisco.meraki.networks_switch_qos_rules_order:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ dscp: 0
+ dstPort: 3000
+ dstPortRange: 3000-3100
+ networkId: string
+ protocol: TCP
+ qosRuleId: string
+ srcPort: 2000
+ srcPortRange: 70-80
+ vlan: 100
+
+- name: Delete by id
+ cisco.meraki.networks_switch_qos_rules_order:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ qosRuleId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order_info.py
new file mode 100644
index 000000000..653bfd482
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_qos_rules_order_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_qos_rules_order_info
+short_description: Information module for networks _switch _qosrules _order
+description:
+- Get all networks _switch _qosrules _order.
+- Get networks _switch _qosrules _order by id.
+- List quality of service rules.
+- Return a quality of service rule.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ qosRuleId:
+ description:
+ - QosRuleId path parameter. Qos rule ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchQosRule
+ description: Complete reference of the getNetworkSwitchQosRule API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-qos-rule
+- name: Cisco Meraki documentation for switch getNetworkSwitchQosRules
+ description: Complete reference of the getNetworkSwitchQosRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-qos-rules
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_qos_rule,
+ switch.Switch.get_network_switch_qos_rules,
+
+ - Paths used are
+ get /networks/{networkId}/switch/qosRules,
+ get /networks/{networkId}/switch/qosRules/{qosRuleId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _qosrules _order
+ cisco.meraki.networks_switch_qos_rules_order_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _switch _qosrules _order by id
+ cisco.meraki.networks_switch_qos_rules_order_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ qosRuleId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast.py
new file mode 100644
index 000000000..11f4d4269
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_routing_multicast
+short_description: Resource module for networks _switch _routing _multicast
+description:
+- Manage operation update of the resource networks _switch _routing _multicast.
+- Update multicast settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ defaultSettings:
+ description: Default multicast setting for entire network. IGMP snooping and Flood
+ unknown multicast traffic settings are enabled by default.
+ suboptions:
+ floodUnknownMulticastTrafficEnabled:
+ description: Flood unknown multicast traffic setting for entire network.
+ type: bool
+ igmpSnoopingEnabled:
+ description: IGMP snooping setting for entire network.
+ type: bool
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ overrides:
+ description: Array of paired switches/stacks/profiles and corresponding multicast
+ settings. An empty array will clear the multicast settings.
+ elements: dict
+ suboptions:
+ floodUnknownMulticastTrafficEnabled:
+ description: Flood unknown multicast traffic setting for switches, switch stacks
+ or switch profiles.
+ type: bool
+ igmpSnoopingEnabled:
+ description: IGMP snooping setting for switches, switch stacks or switch profiles.
+ type: bool
+ stacks:
+ description: List of switch stack ids for non-template network.
+ elements: str
+ type: list
+ switchProfiles:
+ description: List of switch profiles ids for template network.
+ elements: str
+ type: list
+ switches:
+ description: List of switch serials for non-template network.
+ elements: str
+ type: list
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchRoutingMulticast
+ description: Complete reference of the updateNetworkSwitchRoutingMulticast API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-routing-multicast
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_routing_multicast,
+
+ - Paths used are
+ put /networks/{networkId}/switch/routing/multicast,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_routing_multicast:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultSettings:
+ floodUnknownMulticastTrafficEnabled: true
+ igmpSnoopingEnabled: true
+ networkId: string
+ overrides:
+ - floodUnknownMulticastTrafficEnabled: true
+ igmpSnoopingEnabled: true
+ switches:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ - floodUnknownMulticastTrafficEnabled: true
+ igmpSnoopingEnabled: true
+ stacks:
+ - '789102'
+ - '123456'
+ - '129102'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_info.py
new file mode 100644
index 000000000..85afebe2e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_routing_multicast_info
+short_description: Information module for networks _switch _routing _multicast
+description:
+- Get all networks _switch _routing _multicast.
+- Return multicast settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchRoutingMulticast
+ description: Complete reference of the getNetworkSwitchRoutingMulticast API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-routing-multicast
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_routing_multicast,
+
+ - Paths used are
+ get /networks/{networkId}/switch/routing/multicast,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _routing _multicast
+ cisco.meraki.networks_switch_routing_multicast_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points.py
new file mode 100644
index 000000000..77e3eb80d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points.py
@@ -0,0 +1,148 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_routing_multicast_rendezvous_points
+short_description: Resource module for networks _switch _routing _multicast _rendezvouspoints
+description:
+- Manage operations create, update and delete of the resource networks _switch _routing _multicast _rendezvouspoints.
+- Create a multicast rendezvous point.
+- Delete a multicast rendezvous point.
+- Update a multicast rendezvous point.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ interfaceIp:
+ description: The IP address of the interface where the RP needs to be created.
+ type: str
+ multicastGroup:
+ description: '''Any'', or the IP address of a multicast group.'
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rendezvousPointId:
+ description: RendezvousPointId path parameter. Rendezvous point ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchRoutingMulticastRendezvousPoint
+ description: Complete reference of the createNetworkSwitchRoutingMulticastRendezvousPoint API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-routing-multicast-rendezvous-point
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchRoutingMulticastRendezvousPoint
+ description: Complete reference of the deleteNetworkSwitchRoutingMulticastRendezvousPoint API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-routing-multicast-rendezvous-point
+- name: Cisco Meraki documentation for switch updateNetworkSwitchRoutingMulticastRendezvousPoint
+ description: Complete reference of the updateNetworkSwitchRoutingMulticastRendezvousPoint API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-routing-multicast-rendezvous-point
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_routing_multicast_rendezvous_point,
+ switch.Switch.delete_network_switch_routing_multicast_rendezvous_point,
+ switch.Switch.update_network_switch_routing_multicast_rendezvous_point,
+
+ - Paths used are
+ post /networks/{networkId}/switch/routing/multicast/rendezvousPoints,
+ delete /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId},
+ put /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_routing_multicast_rendezvous_points:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ interfaceIp: 192.168.1.2
+ multicastGroup: 192.168.128.0/24
+ networkId: string
+
+- name: Update by id
+ cisco.meraki.networks_switch_routing_multicast_rendezvous_points:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ interfaceIp: 192.168.1.2
+ multicastGroup: 192.168.128.0/24
+ networkId: string
+ rendezvousPointId: string
+
+- name: Delete by id
+ cisco.meraki.networks_switch_routing_multicast_rendezvous_points:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ rendezvousPointId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points_info.py
new file mode 100644
index 000000000..de278e2bb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_multicast_rendezvous_points_info.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_routing_multicast_rendezvous_points_info
+short_description: Information module for networks _switch _routing _multicast _rendezvouspoints
+description:
+- Get all networks _switch _routing _multicast _rendezvouspoints.
+- Get networks _switch _routing _multicast _rendezvouspoints by id.
+- List multicast rendezvous points.
+- Return a multicast rendezvous point.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ rendezvousPointId:
+ description:
+ - RendezvousPointId path parameter. Rendezvous point ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchRoutingMulticastRendezvousPoint
+ description: Complete reference of the getNetworkSwitchRoutingMulticastRendezvousPoint API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-routing-multicast-rendezvous-point
+- name: Cisco Meraki documentation for switch getNetworkSwitchRoutingMulticastRendezvousPoints
+ description: Complete reference of the getNetworkSwitchRoutingMulticastRendezvousPoints API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-routing-multicast-rendezvous-points
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_routing_multicast_rendezvous_point,
+ switch.Switch.get_network_switch_routing_multicast_rendezvous_points,
+
+ - Paths used are
+ get /networks/{networkId}/switch/routing/multicast/rendezvousPoints,
+ get /networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _routing _multicast _rendezvouspoints
+ cisco.meraki.networks_switch_routing_multicast_rendezvous_points_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _switch _routing _multicast _rendezvouspoints by id
+ cisco.meraki.networks_switch_routing_multicast_rendezvous_points_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ rendezvousPointId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: list
+ sample: >
+ [
+ [
+ {}
+ ]
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf.py
new file mode 100644
index 000000000..d18cd938d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf.py
@@ -0,0 +1,163 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_routing_ospf
+short_description: Resource module for networks _switch _routing _ospf
+description:
+- Manage operation update of the resource networks _switch _routing _ospf.
+- Update layer 3 OSPF routing configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ areas:
+ description: OSPF areas.
+ elements: dict
+ suboptions:
+ areaId:
+ description: OSPF area ID.
+ type: str
+ areaName:
+ description: Name of the OSPF area.
+ type: str
+ areaType:
+ description: Area types in OSPF. Must be one of "normal", "stub", "nssa".
+ type: str
+ type: list
+ deadTimerInSeconds:
+ description: Time interval to determine when the peer will be declared inactive/dead.
+ Value must be between 1 and 65535.
+ type: int
+ enabled:
+ description: Boolean value to enable or disable OSPF routing. OSPF routing is disabled
+ by default.
+ type: bool
+ helloTimerInSeconds:
+ description: Time interval in seconds at which hello packet will be sent to OSPF
+ neighbors to maintain connectivity. Value must be between 1 and 255. Default is
+ 10 seconds.
+ type: int
+ md5AuthenticationEnabled:
+ description: Boolean value to enable or disable MD5 authentication. MD5 authentication
+ is disabled by default.
+ type: bool
+ md5AuthenticationKey:
+ description: MD5 authentication credentials. This param is only relevant if md5AuthenticationEnabled
+ is true.
+ suboptions:
+ id:
+ description: MD5 authentication key index. Key index must be between 1 to 255.
+ type: int
+ passphrase:
+ description: MD5 authentication passphrase.
+ type: str
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ v3:
+ description: OSPF v3 configuration.
+ suboptions:
+ areas:
+ description: OSPF v3 areas.
+ elements: dict
+ suboptions:
+ areaId:
+ description: OSPF area ID.
+ type: str
+ areaName:
+ description: Name of the OSPF area.
+ type: str
+ areaType:
+ description: Area types in OSPF. Must be one of "normal", "stub", "nssa".
+ type: str
+ type: list
+ deadTimerInSeconds:
+ description: Time interval to determine when the peer will be declared inactive/dead.
+ Value must be between 1 and 65535.
+ type: int
+ enabled:
+ description: Boolean value to enable or disable V3 OSPF routing. OSPF V3 routing
+ is disabled by default.
+ type: bool
+ helloTimerInSeconds:
+ description: Time interval in seconds at which hello packet will be sent to
+ OSPF neighbors to maintain connectivity. Value must be between 1 and 255.
+ Default is 10 seconds.
+ type: int
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchRoutingOspf
+ description: Complete reference of the updateNetworkSwitchRoutingOspf API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-routing-ospf
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_routing_ospf,
+
+ - Paths used are
+ put /networks/{networkId}/switch/routing/ospf,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_routing_ospf:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ areas:
+ - areaId: '1284392014819'
+ areaName: Backbone
+ areaType: normal
+ deadTimerInSeconds: 40
+ enabled: true
+ helloTimerInSeconds: 10
+ md5AuthenticationEnabled: true
+ md5AuthenticationKey:
+ id: 1234
+ passphrase: abc1234
+ networkId: string
+ v3:
+ areas:
+ - areaId: '1284392014819'
+ areaName: V3 Backbone
+ areaType: normal
+ deadTimerInSeconds: 40
+ enabled: true
+ helloTimerInSeconds: 10
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf_info.py
new file mode 100644
index 000000000..e8a33c356
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_routing_ospf_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_routing_ospf_info
+short_description: Information module for networks _switch _routing _ospf
+description:
+- Get all networks _switch _routing _ospf.
+- Return layer 3 OSPF routing configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchRoutingOspf
+ description: Complete reference of the getNetworkSwitchRoutingOspf API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-routing-ospf
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_routing_ospf,
+
+ - Paths used are
+ get /networks/{networkId}/switch/routing/ospf,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _routing _ospf
+ cisco.meraki.networks_switch_routing_ospf_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings.py
new file mode 100644
index 000000000..61bff048d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_settings
+short_description: Resource module for networks _switch _settings
+description:
+- Manage operation update of the resource networks _switch _settings.
+- Update switch network settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ powerExceptions:
+ description: Exceptions on a per switch basis to "useCombinedPower".
+ elements: dict
+ suboptions:
+ powerType:
+ description: Per switch exception (combined, redundant, useNetworkSetting).
+ type: str
+ serial:
+ description: Serial number of the switch.
+ type: str
+ type: list
+ useCombinedPower:
+ description: The use Combined Power as the default behavior of secondary power supplies
+ on supported devices.
+ type: bool
+ vlan:
+ description: Management VLAN.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchSettings
+ description: Complete reference of the updateNetworkSwitchSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-settings
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_settings,
+
+ - Paths used are
+ put /networks/{networkId}/switch/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ powerExceptions:
+ - powerType: string
+ serial: string
+ useCombinedPower: true
+ vlan: 0
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "vlan": 0,
+ "useCombinedPower": true,
+ "powerExceptions": [
+ {
+ "serial": "string",
+ "powerType": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings_info.py
new file mode 100644
index 000000000..5328f4b5f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_settings_info.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_settings_info
+short_description: Information module for networks _switch _settings
+description:
+- Get all networks _switch _settings.
+- Returns the switch network settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchSettings
+ description: Complete reference of the getNetworkSwitchSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-settings
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_settings,
+
+ - Paths used are
+ get /networks/{networkId}/switch/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _settings
+ cisco.meraki.networks_switch_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "vlan": 0,
+ "useCombinedPower": true,
+ "powerExceptions": [
+ {
+ "serial": "string",
+ "powerType": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks.py
new file mode 100644
index 000000000..7d6303ed6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks
+short_description: Resource module for networks _switch _stacks
+description:
+- Manage operations create and delete of the resource networks _switch _stacks.
+- Create a stack.
+- Delete a stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ name:
+ description: The name of the new stack.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ serials:
+ description: An array of switch serials to be added into the new stack.
+ elements: str
+ type: list
+ switchStackId:
+ description: SwitchStackId path parameter. Switch stack ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchStack
+ description: Complete reference of the createNetworkSwitchStack API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-stack
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchStack
+ description: Complete reference of the deleteNetworkSwitchStack API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-stack
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_stack,
+ switch.Switch.delete_network_switch_stack,
+
+ - Paths used are
+ post /networks/{networkId}/switch/stacks,
+ delete /networks/{networkId}/switch/stacks/{switchStackId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_stacks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: A cool stack
+ networkId: string
+ serials:
+ - QBZY-XWVU-TSRQ
+ - QBAB-CDEF-GHIJ
+
+- name: Delete by id
+ cisco.meraki.networks_switch_stacks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ switchStackId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_add.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_add.py
new file mode 100644
index 000000000..08dddbdcf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_add.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_add
+short_description: Resource module for networks _switch _stacks _add
+description:
+- Manage operation create of the resource networks _switch _stacks _add.
+- Add a switch to a stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ serial:
+ description: The serial of the switch to be added.
+ type: str
+ switchStackId:
+ description: SwitchStackId path parameter. Switch stack ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch addNetworkSwitchStack
+ description: Complete reference of the addNetworkSwitchStack API.
+ link: https://developer.cisco.com/meraki/api-v1/#!add-network-switch-stack
+notes:
+ - SDK Method used are
+ switch.Switch.add_network_switch_stack,
+
+ - Paths used are
+ post /networks/{networkId}/switch/stacks/{switchStackId}/add,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_stacks_add:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ serial: QBZY-XWVU-TSRQ
+ switchStackId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "serials": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_info.py
new file mode 100644
index 000000000..e72f89fba
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_info.py
@@ -0,0 +1,118 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_info
+short_description: Information module for networks _switch _stacks
+description:
+- Get all networks _switch _stacks.
+- Get networks _switch _stacks by id.
+- List the switch stacks in a network.
+- Show a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ switchStackId:
+ description:
+ - SwitchStackId path parameter. Switch stack ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchStack
+ description: Complete reference of the getNetworkSwitchStack API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stack
+- name: Cisco Meraki documentation for switch getNetworkSwitchStacks
+ description: Complete reference of the getNetworkSwitchStacks API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stacks
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_stack,
+ switch.Switch.get_network_switch_stacks,
+
+ - Paths used are
+ get /networks/{networkId}/switch/stacks,
+ get /networks/{networkId}/switch/stacks/{switchStackId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _stacks
+ cisco.meraki.networks_switch_stacks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _switch _stacks by id
+ cisco.meraki.networks_switch_stacks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ switchStackId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "serials": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_remove.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_remove.py
new file mode 100644
index 000000000..3eb4a79b7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_remove.py
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_remove
+short_description: Resource module for networks _switch _stacks _remove
+description:
+- Manage operation create of the resource networks _switch _stacks _remove.
+- Remove a switch from a stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ serial:
+ description: The serial of the switch to be removed.
+ type: str
+ switchStackId:
+ description: SwitchStackId path parameter. Switch stack ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch removeNetworkSwitchStack
+ description: Complete reference of the removeNetworkSwitchStack API.
+ link: https://developer.cisco.com/meraki/api-v1/#!remove-network-switch-stack
+notes:
+ - SDK Method used are
+ switch.Switch.remove_network_switch_stack,
+
+ - Paths used are
+ post /networks/{networkId}/switch/stacks/{switchStackId}/remove,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_stacks_remove:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ serial: QBZY-XWVU-TSRQ
+ switchStackId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces.py
new file mode 100644
index 000000000..7fad46342
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces.py
@@ -0,0 +1,239 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_routing_interfaces
+short_description: Resource module for networks _switch _stacks _routing _interfaces
+description:
+- Manage operations create, update and delete of the resource networks _switch _stacks _routing _interfaces.
+- Create a layer 3 interface for a switch stack.
+- Delete a layer 3 interface from a switch stack.
+- Update a layer 3 interface for a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ defaultGateway:
+ description: The next hop for any traffic that isn't going to a directly connected
+ subnet or over a static route. This IP address must exist in a subnet with a routed
+ interface.
+ type: str
+ interfaceId:
+ description: InterfaceId path parameter. Interface ID.
+ type: str
+ interfaceIp:
+ description: The IP address this switch stack will use for layer 3 routing on this
+ VLAN or subnet. This cannot be the same as the switch's management IP.
+ type: str
+ ipv6:
+ description: The IPv6 settings of the interface.
+ suboptions:
+ address:
+ description: The IPv6 address of the interface. Required if assignmentMode is
+ 'static'. Must not be included if assignmentMode is 'eui-64'.
+ type: str
+ assignmentMode:
+ description: The IPv6 assignment mode for the interface. Can be either 'eui-64'
+ or 'static'.
+ type: str
+ gateway:
+ description: The IPv6 default gateway of the interface. Required if prefix is
+ defined and this is the first interface with IPv6 configured for the stack.
+ type: str
+ prefix:
+ description: The IPv6 prefix of the interface. Required if IPv6 object is included.
+ type: str
+ type: dict
+ multicastRouting:
+ description: Enable multicast support if, multicast routing between VLANs is required.
+ Options are, 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'.
+ type: str
+ name:
+ description: A friendly name or description for the interface or VLAN.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ ospfSettings:
+ description: The OSPF routing settings of the interface.
+ suboptions:
+ area:
+ description: The OSPF area to which this interface should belong. Can be either
+ 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'.
+ type: str
+ cost:
+ description: The path cost for this interface. Defaults to 1, but can be increased
+ up to 65535 to give lower priority.
+ type: int
+ isPassiveEnabled:
+ description: When enabled, OSPF will not run on the interface, but the subnet
+ will still be advertised.
+ type: bool
+ type: dict
+ subnet:
+ description: The network that this routed interface is on, in CIDR notation (ex.
+ 10.1.1.0/24).
+ type: str
+ switchStackId:
+ description: SwitchStackId path parameter. Switch stack ID.
+ type: str
+ vlanId:
+ description: The VLAN this routed interface is on. VLAN must be between 1 and 4094.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchStackRoutingInterface
+ description: Complete reference of the createNetworkSwitchStackRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-stack-routing-interface
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchStackRoutingInterface
+ description: Complete reference of the deleteNetworkSwitchStackRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-stack-routing-interface
+- name: Cisco Meraki documentation for switch updateNetworkSwitchStackRoutingInterface
+ description: Complete reference of the updateNetworkSwitchStackRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-stack-routing-interface
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_stack_routing_interface,
+ switch.Switch.delete_network_switch_stack_routing_interface,
+ switch.Switch.update_network_switch_stack_routing_interface,
+
+ - Paths used are
+ post /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces,
+ delete /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId},
+ put /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_stacks_routing_interfaces:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultGateway: 192.168.1.1
+ interfaceIp: 192.168.1.2
+ ipv6:
+ address: 1:2:3:4::1
+ assignmentMode: static
+ gateway: 1:2:3:4::2
+ prefix: 1:2:3:4::/48
+ multicastRouting: disabled
+ name: L3 interface
+ networkId: string
+ ospfSettings:
+ area: '0'
+ cost: 1
+ isPassiveEnabled: true
+ ospfV3:
+ area: '1'
+ cost: 2
+ isPassiveEnabled: true
+ subnet: 192.168.1.0/24
+ switchStackId: string
+ vlanId: 100
+
+- name: Update by id
+ cisco.meraki.networks_switch_stacks_routing_interfaces:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ interfaceId: string
+ interfaceIp: 192.168.1.2
+ ipv6:
+ address: 1:2:3:4::1
+ assignmentMode: static
+ gateway: 1:2:3:4::2
+ prefix: 1:2:3:4::/48
+ multicastRouting: disabled
+ name: L3 interface
+ networkId: string
+ ospfSettings:
+ area: '0'
+ cost: 1
+ isPassiveEnabled: true
+ ospfV3:
+ area: '1'
+ cost: 2
+ isPassiveEnabled: true
+ subnet: 192.168.1.0/24
+ switchStackId: string
+ vlanId: 100
+
+- name: Delete by id
+ cisco.meraki.networks_switch_stacks_routing_interfaces:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ interfaceId: string
+ networkId: string
+ switchStackId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp.py
new file mode 100644
index 000000000..1e4601086
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp.py
@@ -0,0 +1,179 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_routing_interfaces_dhcp
+short_description: Resource module for networks _switch _stacks _routing _interfaces _dhcp
+description:
+- Manage operation update of the resource networks _switch _stacks _routing _interfaces _dhcp.
+- Update a layer 3 interface DHCP configuration for a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ bootFileName:
+ description: The PXE boot server file name for the DHCP server running on the switch
+ stack interface.
+ type: str
+ bootNextServer:
+ description: The PXE boot server IP for the DHCP server running on the switch stack
+ interface.
+ type: str
+ bootOptionsEnabled:
+ description: Enable DHCP boot options to provide PXE boot options configs for the
+ dhcp server running on the switch stack interface.
+ type: bool
+ dhcpLeaseTime:
+ description: The DHCP lease time config for the dhcp server running on switch stack
+ interface ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week').
+ type: str
+ dhcpMode:
+ description: The DHCP mode options for the switch stack interface ('dhcpDisabled',
+ 'dhcpRelay' or 'dhcpServer').
+ type: str
+ dhcpOptions:
+ description: Array of DHCP options consisting of code, type and value for the DHCP
+ server running on the switch stack interface.
+ elements: dict
+ suboptions:
+ code:
+ description: The code for DHCP option which should be from 2 to 254.
+ type: str
+ type:
+ description: The type of the DHCP option which should be one of ('text', 'ip',
+ 'integer' or 'hex').
+ type: str
+ value:
+ description: The value of the DHCP option.
+ type: str
+ type: list
+ dhcpRelayServerIps:
+ description: The DHCP relay server IPs to which DHCP packets would get relayed for
+ the switch stack interface.
+ elements: str
+ type: list
+ dnsCustomNameservers:
+ description: The DHCP name server IPs when DHCP name server option is 'custom'.
+ elements: str
+ type: list
+ dnsNameserversOption:
+ description: The DHCP name server option for the dhcp server running on the switch
+ stack interface ('googlePublicDns', 'openDns' or 'custom').
+ type: str
+ fixedIpAssignments:
+ description: Array of DHCP fixed IP assignments for the DHCP server running on the
+ switch stack interface.
+ elements: dict
+ suboptions:
+ ip:
+ description: The IP address of the client which has fixed IP address assigned
+ to it.
+ type: str
+ mac:
+ description: The MAC address of the client which has fixed IP address.
+ type: str
+ name:
+ description: The name of the client which has fixed IP address.
+ type: str
+ type: list
+ interfaceId:
+ description: InterfaceId path parameter. Interface ID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ reservedIpRanges:
+ description: Array of DHCP reserved IP assignments for the DHCP server running on
+ the switch stack interface.
+ elements: dict
+ suboptions:
+ comment:
+ description: The comment for the reserved IP range.
+ type: str
+ end:
+ description: The ending IP address of the reserved IP range.
+ type: str
+ start:
+ description: The starting IP address of the reserved IP range.
+ type: str
+ type: list
+ switchStackId:
+ description: SwitchStackId path parameter. Switch stack ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchStackRoutingInterfaceDhcp
+ description: Complete reference of the updateNetworkSwitchStackRoutingInterfaceDhcp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-stack-routing-interface-dhcp
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_stack_routing_interface_dhcp,
+
+ - Paths used are
+ put /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_stacks_routing_interfaces_dhcp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ bootFileName: home_boot_file
+ bootNextServer: 1.2.3.4
+ bootOptionsEnabled: true
+ dhcpLeaseTime: 1 day
+ dhcpMode: dhcpServer
+ dhcpOptions:
+ - code: '5'
+ type: text
+ value: five
+ dnsCustomNameservers:
+ - 8.8.8.8, 8.8.4.4
+ dnsNameserversOption: custom
+ fixedIpAssignments:
+ - ip: 192.168.1.12
+ mac: 22:33:44:55:66:77
+ name: Cisco Meraki valued client
+ interfaceId: string
+ networkId: string
+ reservedIpRanges:
+ - comment: A reserved IP range
+ end: 192.168.1.10
+ start: 192.168.1.1
+ switchStackId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp_info.py
new file mode 100644
index 000000000..1ac626503
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_dhcp_info.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_routing_interfaces_dhcp_info
+short_description: Information module for networks _switch _stacks _routing _interfaces _dhcp
+description:
+- Get all networks _switch _stacks _routing _interfaces _dhcp.
+- Return a layer 3 interface DHCP configuration for a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ switchStackId:
+ description:
+ - SwitchStackId path parameter. Switch stack ID.
+ type: str
+ interfaceId:
+ description:
+ - InterfaceId path parameter. Interface ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchStackRoutingInterfaceDhcp
+ description: Complete reference of the getNetworkSwitchStackRoutingInterfaceDhcp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stack-routing-interface-dhcp
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_stack_routing_interface_dhcp,
+
+ - Paths used are
+ get /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _stacks _routing _interfaces _dhcp
+ cisco.meraki.networks_switch_stacks_routing_interfaces_dhcp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ switchStackId: string
+ interfaceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_info.py
new file mode 100644
index 000000000..93cb8ed58
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_interfaces_info.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_routing_interfaces_info
+short_description: Information module for networks _switch _stacks _routing _interfaces
+description:
+- Get all networks _switch _stacks _routing _interfaces.
+- Get networks _switch _stacks _routing _interfaces by id.
+- List layer 3 interfaces for a switch stack.
+- Return a layer 3 interface from a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ switchStackId:
+ description:
+ - SwitchStackId path parameter. Switch stack ID.
+ type: str
+ interfaceId:
+ description:
+ - InterfaceId path parameter. Interface ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchStackRoutingInterface
+ description: Complete reference of the getNetworkSwitchStackRoutingInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stack-routing-interface
+- name: Cisco Meraki documentation for switch getNetworkSwitchStackRoutingInterfaces
+ description: Complete reference of the getNetworkSwitchStackRoutingInterfaces API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stack-routing-interfaces
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_stack_routing_interface,
+ switch.Switch.get_network_switch_stack_routing_interfaces,
+
+ - Paths used are
+ get /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces,
+ get /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _stacks _routing _interfaces
+ cisco.meraki.networks_switch_stacks_routing_interfaces_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ switchStackId: string
+ register: result
+
+- name: Get networks _switch _stacks _routing _interfaces by id
+ cisco.meraki.networks_switch_stacks_routing_interfaces_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ switchStackId: string
+ interfaceId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes.py
new file mode 100644
index 000000000..70f468f0e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes.py
@@ -0,0 +1,171 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_routing_static_routes
+short_description: Resource module for networks _switch _stacks _routing _staticroutes
+description:
+- Manage operations create, update and delete of the resource networks _switch _stacks _routing _staticroutes.
+- Create a layer 3 static route for a switch stack.
+- Delete a layer 3 static route for a switch stack.
+- Update a layer 3 static route for a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ advertiseViaOspfEnabled:
+ description: Option to advertise static route via OSPF.
+ type: bool
+ name:
+ description: Name or description for layer 3 static route.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ nextHopIp:
+ description: IP address of the next hop device to which the device sends its traffic
+ for the subnet.
+ type: str
+ preferOverOspfRoutesEnabled:
+ description: Option to prefer static route over OSPF routes.
+ type: bool
+ staticRouteId:
+ description: StaticRouteId path parameter. Static route ID.
+ type: str
+ subnet:
+ description: The subnet which is routed via this static route and should be specified
+ in CIDR notation (ex. 1.2.3.0/24).
+ type: str
+ switchStackId:
+ description: SwitchStackId path parameter. Switch stack ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch createNetworkSwitchStackRoutingStaticRoute
+ description: Complete reference of the createNetworkSwitchStackRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-switch-stack-routing-static-route
+- name: Cisco Meraki documentation for switch deleteNetworkSwitchStackRoutingStaticRoute
+ description: Complete reference of the deleteNetworkSwitchStackRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-switch-stack-routing-static-route
+- name: Cisco Meraki documentation for switch updateNetworkSwitchStackRoutingStaticRoute
+ description: Complete reference of the updateNetworkSwitchStackRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-stack-routing-static-route
+notes:
+ - SDK Method used are
+ switch.Switch.create_network_switch_stack_routing_static_route,
+ switch.Switch.delete_network_switch_stack_routing_static_route,
+ switch.Switch.update_network_switch_stack_routing_static_route,
+
+ - Paths used are
+ post /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes,
+ delete /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId},
+ put /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_switch_stacks_routing_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ advertiseViaOspfEnabled: false
+ name: My route
+ networkId: string
+ nextHopIp: 1.2.3.4
+ preferOverOspfRoutesEnabled: false
+ subnet: 192.168.1.0/24
+ switchStackId: string
+
+- name: Update by id
+ cisco.meraki.networks_switch_stacks_routing_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ advertiseViaOspfEnabled: false
+ name: My route
+ networkId: string
+ nextHopIp: 1.2.3.4
+ preferOverOspfRoutesEnabled: false
+ staticRouteId: string
+ subnet: 192.168.1.0/24
+ switchStackId: string
+
+- name: Delete by id
+ cisco.meraki.networks_switch_stacks_routing_static_routes:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ staticRouteId: string
+ switchStackId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes_info.py
new file mode 100644
index 000000000..18cda8040
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stacks_routing_static_routes_info.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stacks_routing_static_routes_info
+short_description: Information module for networks _switch _stacks _routing _staticroutes
+description:
+- Get all networks _switch _stacks _routing _staticroutes.
+- Get networks _switch _stacks _routing _staticroutes by id.
+- List layer 3 static routes for a switch stack.
+- Return a layer 3 static route for a switch stack.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ switchStackId:
+ description:
+ - SwitchStackId path parameter. Switch stack ID.
+ type: str
+ staticRouteId:
+ description:
+ - StaticRouteId path parameter. Static route ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchStackRoutingStaticRoute
+ description: Complete reference of the getNetworkSwitchStackRoutingStaticRoute API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stack-routing-static-route
+- name: Cisco Meraki documentation for switch getNetworkSwitchStackRoutingStaticRoutes
+ description: Complete reference of the getNetworkSwitchStackRoutingStaticRoutes API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stack-routing-static-routes
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_stack_routing_static_route,
+ switch.Switch.get_network_switch_stack_routing_static_routes,
+
+ - Paths used are
+ get /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes,
+ get /networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _stacks _routing _staticroutes
+ cisco.meraki.networks_switch_stacks_routing_static_routes_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ switchStackId: string
+ register: result
+
+- name: Get networks _switch _stacks _routing _staticroutes by id
+ cisco.meraki.networks_switch_stacks_routing_static_routes_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ switchStackId: string
+ staticRouteId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control.py
new file mode 100644
index 000000000..403b16840
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_storm_control
+short_description: Resource module for networks _switch _stormcontrol
+description:
+- Manage operation update of the resource networks _switch _stormcontrol.
+- Update the storm control configuration for a switch network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ broadcastThreshold:
+ description: Percentage (1 to 99) of total available port bandwidth for broadcast
+ traffic type. Default value 100 percent rate is to clear the configuration.
+ type: int
+ multicastThreshold:
+ description: Percentage (1 to 99) of total available port bandwidth for multicast
+ traffic type. Default value 100 percent rate is to clear the configuration.
+ type: int
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ unknownUnicastThreshold:
+ description: Percentage (1 to 99) of total available port bandwidth for unknown
+ unicast (dlf-destination lookup failure) traffic type. Default value 100 percent
+ rate is to clear the configuration.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchStormControl
+ description: Complete reference of the updateNetworkSwitchStormControl API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-storm-control
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_storm_control,
+
+ - Paths used are
+ put /networks/{networkId}/switch/stormControl,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_storm_control:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ broadcastThreshold: 30
+ multicastThreshold: 30
+ networkId: string
+ unknownUnicastThreshold: 30
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control_info.py
new file mode 100644
index 000000000..3333a6cf2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_storm_control_info.py
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_storm_control_info
+short_description: Information module for networks _switch _stormcontrol
+description:
+- Get all networks _switch _stormcontrol.
+- Return the storm control configuration for a switch network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchStormControl
+ description: Complete reference of the getNetworkSwitchStormControl API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-storm-control
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_storm_control,
+
+ - Paths used are
+ get /networks/{networkId}/switch/stormControl,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _stormcontrol
+ cisco.meraki.networks_switch_storm_control_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "broadcastThreshold": 0,
+ "multicastThreshold": 0,
+ "unknownUnicastThreshold": 0
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp.py
new file mode 100644
index 000000000..c084f6cc7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp.py
@@ -0,0 +1,107 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stp
+short_description: Resource module for networks _switch _stp
+description:
+- Manage operation update of the resource networks _switch _stp.
+- Updates STP settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ rstpEnabled:
+ description: The spanning tree protocol status in network.
+ type: bool
+ stpBridgePriority:
+ description: STP bridge priority for switches/stacks or switch profiles. An empty
+ array will clear the STP bridge priority settings.
+ elements: dict
+ suboptions:
+ stacks:
+ description: List of stack IDs.
+ elements: str
+ type: list
+ stpPriority:
+ description: STP priority for switch, stacks, or switch profiles.
+ type: int
+ switchProfiles:
+ description: List of switch profile IDs.
+ elements: str
+ type: list
+ switches:
+ description: List of switch serial numbers.
+ elements: str
+ type: list
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateNetworkSwitchStp
+ description: Complete reference of the updateNetworkSwitchStp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-switch-stp
+notes:
+ - SDK Method used are
+ switch.Switch.update_network_switch_stp,
+
+ - Paths used are
+ put /networks/{networkId}/switch/stp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_switch_stp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ rstpEnabled: true
+ stpBridgePriority:
+ - stpPriority: 4096
+ switches:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+ - stacks:
+ - '789102'
+ - '123456'
+ - '129102'
+ stpPriority: 28672
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp_info.py
new file mode 100644
index 000000000..05b82dd34
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_switch_stp_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_switch_stp_info
+short_description: Information module for networks _switch _stp
+description:
+- Get all networks _switch _stp.
+- Returns STP settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getNetworkSwitchStp
+ description: Complete reference of the getNetworkSwitchStp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-stp
+notes:
+ - SDK Method used are
+ switch.Switch.get_network_switch_stp,
+
+ - Paths used are
+ get /networks/{networkId}/switch/stp,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _switch _stp
+ cisco.meraki.networks_switch_stp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py b/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py
new file mode 100644
index 000000000..77cede8de
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_syslog_servers
+short_description: Resource module for networks _syslogservers
+description:
+- Manage operation update of the resource networks _syslogservers.
+- Update the syslog servers for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ servers:
+ description: A list of the syslog servers for this network.
+ elements: dict
+ suboptions:
+ host:
+ description: The IP address of the syslog server.
+ type: str
+ port:
+ description: The port of the syslog server.
+ type: int
+ roles:
+ description: A list of roles for the syslog server. Options (case-insensitive)
+ 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal
+ events', 'Flows', 'URLs', 'IDS alerts', 'Security events'.
+ elements: str
+ type: list
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkSyslogServers
+ description: Complete reference of the updateNetworkSyslogServers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-syslog-servers
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_syslog_servers,
+
+ - Paths used are
+ put /networks/{networkId}/syslogServers,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_syslog_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ servers:
+ - host: 1.2.3.4
+ port: 443
+ roles:
+ - Wireless event log
+ - URLs
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ [
+ {
+ "host": "string",
+ "port": 0,
+ "roles": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers_info.py
new file mode 100644
index 000000000..d7ccf9778
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_syslog_servers_info.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_syslog_servers_info
+short_description: Information module for networks _syslogservers
+description:
+- Get all networks _syslogservers.
+- List the syslog servers for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkSyslogServers
+ description: Complete reference of the getNetworkSyslogServers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-syslog-servers
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_syslog_servers,
+
+ - Paths used are
+ get /networks/{networkId}/syslogServers,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _syslogservers
+ cisco.meraki.networks_syslog_servers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "host": "string",
+ "port": 0,
+ "roles": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_topology_link_layer_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_topology_link_layer_info.py
new file mode 100644
index 000000000..9c32d682a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_topology_link_layer_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_topology_link_layer_info
+short_description: Information module for networks _topology _linklayer
+description:
+- Get all networks _topology _linklayer.
+- List the LLDP and CDP information for all discovered devices and connections in a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkTopologyLinkLayer
+ description: Complete reference of the getNetworkTopologyLinkLayer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-topology-link-layer
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_topology_link_layer,
+
+ - Paths used are
+ get /networks/{networkId}/topology/linkLayer,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _topology _linklayer
+ cisco.meraki.networks_topology_link_layer_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis.py b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis.py
new file mode 100644
index 000000000..52798d642
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_traffic_analysis
+short_description: Resource module for networks _trafficanalysis
+description:
+- Manage operation update of the resource networks _trafficanalysis.
+- Update the traffic analysis settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ customPieChartItems:
+ description: The list of items that make up the custom pie chart for traffic reporting.
+ elements: dict
+ suboptions:
+ name:
+ description: The name of the custom pie chart item.
+ type: str
+ type:
+ description: The signature type for the custom pie chart item. Can be one of
+ 'host', 'port' or 'ipRange'.
+ type: str
+ value:
+ description: The value of the custom pie chart item. Valid syntax depends on
+ the signature type of the chart item (see sample request/response for more
+ details).
+ type: str
+ type: list
+ mode:
+ description: The traffic analysis mode for the network. Can be one of 'disabled'
+ (do not collect traffic types), 'basic' (collect generic traffic categories),
+ or 'detailed' (collect destination hostnames).
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks updateNetworkTrafficAnalysis
+ description: Complete reference of the updateNetworkTrafficAnalysis API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-traffic-analysis
+notes:
+ - SDK Method used are
+ networks.Networks.update_network_traffic_analysis,
+
+ - Paths used are
+ put /networks/{networkId}/trafficAnalysis,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_traffic_analysis:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ customPieChartItems:
+ - name: Item from hostname
+ type: host
+ value: example.com
+ - name: Item from port
+ type: port
+ value: '440'
+ - name: Item from IP
+ type: ipRange
+ value: 192.1.0.0
+ - name: Item from IP range (CIDR)
+ type: ipRange
+ value: 192.2.0.0/16
+ - name: Item from IP range with port
+ type: ipRange
+ value: 192.3.0.0/16:80
+ mode: detailed
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis_info.py
new file mode 100644
index 000000000..a44c639eb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_analysis_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_traffic_analysis_info
+short_description: Information module for networks _trafficanalysis
+description:
+- Get all networks _trafficanalysis.
+- Return the traffic analysis settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkTrafficAnalysis
+ description: Complete reference of the getNetworkTrafficAnalysis API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-traffic-analysis
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_traffic_analysis,
+
+ - Paths used are
+ get /networks/{networkId}/trafficAnalysis,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _trafficanalysis
+ cisco.meraki.networks_traffic_analysis_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_application_categories_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_application_categories_info.py
new file mode 100644
index 000000000..4c39e70cd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_application_categories_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_traffic_shaping_application_categories_info
+short_description: Information module for networks _trafficshaping _applicationcategories
+description:
+- Get all networks _trafficshaping _applicationcategories.
+- Returns the application categories for traffic shaping rules.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkTrafficShapingApplicationCategories
+ description: Complete reference of the getNetworkTrafficShapingApplicationCategories API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-traffic-shaping-application-categories
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_traffic_shaping_application_categories,
+
+ - Paths used are
+ get /networks/{networkId}/trafficShaping/applicationCategories,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _trafficshaping _applicationcategories
+ cisco.meraki.networks_traffic_shaping_application_categories_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_dscp_tagging_options_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_dscp_tagging_options_info.py
new file mode 100644
index 000000000..eba6d516d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_traffic_shaping_dscp_tagging_options_info.py
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_traffic_shaping_dscp_tagging_options_info
+short_description: Information module for networks _trafficshaping _dscptaggingoptions
+description:
+- Get all networks _trafficshaping _dscptaggingoptions.
+- Returns the available DSCP tagging options for your traffic shaping rules.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkTrafficShapingDscpTaggingOptions
+ description: Complete reference of the getNetworkTrafficShapingDscpTaggingOptions API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-traffic-shaping-dscp-tagging-options
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_traffic_shaping_dscp_tagging_options,
+
+ - Paths used are
+ get /networks/{networkId}/trafficShaping/dscpTaggingOptions,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _trafficshaping _dscptaggingoptions
+ cisco.meraki.networks_traffic_shaping_dscp_tagging_options_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_unbind.py b/ansible_collections/cisco/meraki/plugins/modules/networks_unbind.py
new file mode 100644
index 000000000..8abfdb77c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_unbind.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_unbind
+short_description: Resource module for networks _unbind
+description:
+- Manage operation create of the resource networks _unbind.
+- Unbind a network from a template.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ retainConfigs:
+ description: Optional boolean to retain all the current configs given by the template.
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks unbindNetwork
+ description: Complete reference of the unbindNetwork API.
+ link: https://developer.cisco.com/meraki/api-v1/#!unbind-network
+notes:
+ - SDK Method used are
+ networks.Networks.unbind_network,
+
+ - Paths used are
+ post /networks/{networkId}/unbind,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_unbind:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ retainConfigs: true
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "organizationId": "string",
+ "name": "string",
+ "productTypes": [
+ "string"
+ ],
+ "timeZone": "string",
+ "tags": [
+ "string"
+ ],
+ "enrollmentString": "string",
+ "url": "string",
+ "notes": "string",
+ "isBoundToConfigTemplate": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers.py b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers.py
new file mode 100644
index 000000000..5e6bfaa31
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers.py
@@ -0,0 +1,181 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_webhooks_http_servers
+short_description: Resource module for networks _webhooks _httpservers
+description:
+- Manage operations create, update and delete of the resource networks _webhooks _httpservers.
+- Add an HTTP server to a network.
+- Delete an HTTP server from a network.
+- Update an HTTP server. To change a URL, create a new HTTP server.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ httpServerId:
+ description: HttpServerId path parameter. Http server ID.
+ type: str
+ name:
+ description: A name for easy reference to the HTTP server.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ payloadTemplate:
+ description: The payload template to use when posting data to the HTTP server.
+ suboptions:
+ name:
+ description: The name of the payload template.
+ type: str
+ payloadTemplateId:
+ description: The ID of the payload template. Defaults to 'wpt_00001' for the
+ Meraki template. For Meraki-included templates for the Webex (included) template
+ use 'wpt_00002'; for the Slack (included) template use 'wpt_00003'; for the
+ Microsoft Teams (included) template use 'wpt_00004'; for the ServiceNow (included)
+ template use 'wpt_00006'.
+ type: str
+ type: dict
+ sharedSecret:
+ description: A shared secret that will be included in POSTs sent to the HTTP server.
+ This secret can be used to verify that the request was sent by Meraki.
+ type: str
+ url:
+ description: The URL of the HTTP server. Once set, cannot be updated.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkWebhooksHttpServer
+ description: Complete reference of the createNetworkWebhooksHttpServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-webhooks-http-server
+- name: Cisco Meraki documentation for networks deleteNetworkWebhooksHttpServer
+ description: Complete reference of the deleteNetworkWebhooksHttpServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-webhooks-http-server
+- name: Cisco Meraki documentation for networks updateNetworkWebhooksHttpServer
+ description: Complete reference of the updateNetworkWebhooksHttpServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-webhooks-http-server
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_webhooks_http_server,
+ networks.Networks.delete_network_webhooks_http_server,
+ networks.Networks.update_network_webhooks_http_server,
+
+ - Paths used are
+ post /networks/{networkId}/webhooks/httpServers,
+ delete /networks/{networkId}/webhooks/httpServers/{httpServerId},
+ put /networks/{networkId}/webhooks/httpServers/{httpServerId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_webhooks_http_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: Example Webhook Server
+ networkId: string
+ payloadTemplate:
+ name: Meraki (included)
+ payloadTemplateId: wpt_00001
+ sharedSecret: shhh
+ url: https://example.com
+
+- name: Update by id
+ cisco.meraki.networks_webhooks_http_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ httpServerId: string
+ name: Example Webhook Server
+ networkId: string
+ payloadTemplate:
+ payloadTemplateId: wpt_00001
+ sharedSecret: shhh
+
+- name: Delete by id
+ cisco.meraki.networks_webhooks_http_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ httpServerId: string
+ networkId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "url": "string",
+ "networkId": "string",
+ "payloadTemplate": {
+ "payloadTemplateId": "string",
+ "name": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers_info.py
new file mode 100644
index 000000000..d28736f47
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_http_servers_info.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_webhooks_http_servers_info
+short_description: Information module for networks _webhooks _httpservers
+description:
+- Get all networks _webhooks _httpservers.
+- Get networks _webhooks _httpservers by id.
+- List the HTTP servers for a network.
+- Return an HTTP server for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ httpServerId:
+ description:
+ - HttpServerId path parameter. Http server ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkWebhooksHttpServer
+ description: Complete reference of the getNetworkWebhooksHttpServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-webhooks-http-server
+- name: Cisco Meraki documentation for networks getNetworkWebhooksHttpServers
+ description: Complete reference of the getNetworkWebhooksHttpServers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-webhooks-http-servers
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_webhooks_http_server,
+ networks.Networks.get_network_webhooks_http_servers,
+
+ - Paths used are
+ get /networks/{networkId}/webhooks/httpServers,
+ get /networks/{networkId}/webhooks/httpServers/{httpServerId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _webhooks _httpservers
+ cisco.meraki.networks_webhooks_http_servers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _webhooks _httpservers by id
+ cisco.meraki.networks_webhooks_http_servers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ httpServerId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "url": "string",
+ "networkId": "string",
+ "payloadTemplate": {
+ "payloadTemplateId": "string",
+ "name": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates.py b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates.py
new file mode 100644
index 000000000..971a6651f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates.py
@@ -0,0 +1,195 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_webhooks_payload_templates
+short_description: Resource module for networks _webhooks _payloadtemplates
+description:
+- Manage operations create, update and delete of the resource networks _webhooks _payloadtemplates.
+- Create a webhook payload template for a network.
+- >
+ Destroy a webhook payload template for a network. Does not work for included templates 'wpt_00001', 'wpt_00002',
+ 'wpt_00003', 'wpt_00004', 'wpt_00005' or 'wpt_00006' .
+- Update a webhook payload template for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ body:
+ description: The liquid template used for the body of the webhook message. Either
+ `body` or `bodyFile` must be specified.
+ type: str
+ bodyFile:
+ description: A file containing liquid template used for the body of the webhook
+ message. Either `body` or `bodyFile` must be specified.
+ type: str
+ headers:
+ description: The liquid template used with the webhook headers.
+ elements: dict
+ suboptions:
+ name:
+ description: The name of the header template.
+ type: str
+ template:
+ description: The liquid template for the headers.
+ type: str
+ type: list
+ headersFile:
+ description: A file containing the liquid template used with the webhook headers.
+ type: str
+ name:
+ description: The name of the new template.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ payloadTemplateId:
+ description: PayloadTemplateId path parameter. Payload template ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks createNetworkWebhooksPayloadTemplate
+ description: Complete reference of the createNetworkWebhooksPayloadTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-webhooks-payload-template
+- name: Cisco Meraki documentation for networks deleteNetworkWebhooksPayloadTemplate
+ description: Complete reference of the deleteNetworkWebhooksPayloadTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-webhooks-payload-template
+- name: Cisco Meraki documentation for networks updateNetworkWebhooksPayloadTemplate
+ description: Complete reference of the updateNetworkWebhooksPayloadTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-webhooks-payload-template
+notes:
+ - SDK Method used are
+ networks.Networks.create_network_webhooks_payload_template,
+ networks.Networks.delete_network_webhooks_payload_template,
+ networks.Networks.update_network_webhooks_payload_template,
+
+ - Paths used are
+ post /networks/{networkId}/webhooks/payloadTemplates,
+ delete /networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId},
+ put /networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_webhooks_payload_templates:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ body: '{"event_type":"{{alertTypeId}}","client_payload":{"text":"{{alertData}}"}}'
+ bodyFile: Qm9keSBGaWxl
+ headers:
+ - name: Authorization
+ template: Bearer {{sharedSecret}}
+ headersFile: SGVhZGVycyBGaWxl
+ name: Custom Template
+ networkId: string
+
+- name: Update by id
+ cisco.meraki.networks_webhooks_payload_templates:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ body: '{"event_type":"{{alertTypeId}}","client_payload":{"text":"{{alertData}}"}}'
+ bodyFile: Qm9keSBGaWxl
+ headers:
+ - name: Authorization
+ template: Bearer {{sharedSecret}}
+ headersFile: SGVhZGVycyBGaWxl
+ name: Custom Template
+ networkId: string
+ payloadTemplateId: string
+
+- name: Delete by id
+ cisco.meraki.networks_webhooks_payload_templates:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ payloadTemplateId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "payloadTemplateId": "string",
+ "type": "string",
+ "name": "string",
+ "headers": [
+ {
+ "name": "string",
+ "template": "string"
+ }
+ ],
+ "body": "string",
+ "sharing": {
+ "byNetwork": {
+ "adminsCanModify": true
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates_info.py
new file mode 100644
index 000000000..9e96aad4e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_payload_templates_info.py
@@ -0,0 +1,128 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_webhooks_payload_templates_info
+short_description: Information module for networks _webhooks _payloadtemplates
+description:
+- Get all networks _webhooks _payloadtemplates.
+- Get networks _webhooks _payloadtemplates by id.
+- Get the webhook payload template for a network.
+- List the webhook payload templates for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ payloadTemplateId:
+ description:
+ - PayloadTemplateId path parameter. Payload template ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkWebhooksPayloadTemplate
+ description: Complete reference of the getNetworkWebhooksPayloadTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-webhooks-payload-template
+- name: Cisco Meraki documentation for networks getNetworkWebhooksPayloadTemplates
+ description: Complete reference of the getNetworkWebhooksPayloadTemplates API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-webhooks-payload-templates
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_webhooks_payload_template,
+ networks.Networks.get_network_webhooks_payload_templates,
+
+ - Paths used are
+ get /networks/{networkId}/webhooks/payloadTemplates,
+ get /networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _webhooks _payloadtemplates
+ cisco.meraki.networks_webhooks_payload_templates_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _webhooks _payloadtemplates by id
+ cisco.meraki.networks_webhooks_payload_templates_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ payloadTemplateId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "payloadTemplateId": "string",
+ "type": "string",
+ "name": "string",
+ "headers": [
+ {
+ "name": "string",
+ "template": "string"
+ }
+ ],
+ "body": "string",
+ "sharing": {
+ "byNetwork": {
+ "adminsCanModify": true
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_webhook_tests_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_webhook_tests_info.py
new file mode 100644
index 000000000..7ebdf0eb5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_webhooks_webhook_tests_info.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_webhooks_webhook_tests_info
+short_description: Information module for networks _webhooks _webhooktests
+description:
+- Get networks _webhooks _webhooktests by id.
+- Return the status of a webhook test for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ webhookTestId:
+ description:
+ - WebhookTestId path parameter. Webhook test ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for networks getNetworkWebhooksWebhookTest
+ description: Complete reference of the getNetworkWebhooksWebhookTest API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-webhooks-webhook-test
+notes:
+ - SDK Method used are
+ networks.Networks.get_network_webhooks_webhook_test,
+
+ - Paths used are
+ get /networks/{networkId}/webhooks/webhookTests/{webhookTestId},
+"""
+
+EXAMPLES = r"""
+- name: Get networks _webhooks _webhooktests by id
+ cisco.meraki.networks_webhooks_webhook_tests_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ webhookTestId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "url": "string",
+ "status": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface.py
new file mode 100644
index 000000000..55fd263ff
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface.py
@@ -0,0 +1,124 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_alternate_management_interface
+short_description: Resource module for networks _wireless _alternatemanagementinterface
+description:
+- Manage operation update of the resource networks _wireless _alternatemanagementinterface.
+- Update alternate management interface and device static IP.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accessPoints:
+ description: Array of access point serial number and IP assignment. Note accessPoints
+ IP assignment is not applicable for template networks, in other words, do not
+ put 'accessPoints' in the body when updating template networks. Also, an empty
+ 'accessPoints' array will remove all previous static IP assignments.
+ elements: dict
+ suboptions:
+ alternateManagementIp:
+ description: Wireless alternate management interface device IP. Provide an empty
+ string to remove alternate management IP assignment.
+ type: str
+ dns1:
+ description: Primary DNS must be in IP format.
+ type: str
+ dns2:
+ description: Optional secondary DNS must be in IP format.
+ type: str
+ gateway:
+ description: Gateway must be in IP format.
+ type: str
+ serial:
+ description: Serial number of access point to be configured with alternate management
+ IP.
+ type: str
+ subnetMask:
+ description: Subnet mask must be in IP format.
+ type: str
+ type: list
+ enabled:
+ description: Boolean value to enable or disable alternate management interface.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ protocols:
+ description: Can be one or more of the following values 'radius', 'snmp', 'syslog'
+ or 'ldap'.
+ elements: str
+ type: list
+ vlanId:
+ description: Alternate management interface VLAN, must be between 1 and 4094.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessAlternateManagementInterface
+ description: Complete reference of the updateNetworkWirelessAlternateManagementInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-alternate-management-interface
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_alternate_management_interface,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/alternateManagementInterface,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_alternate_management_interface:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accessPoints:
+ - alternateManagementIp: 1.2.3.4
+ dns1: 8.8.8.8
+ dns2: 8.8.4.4
+ gateway: 1.2.3.5
+ serial: Q234-ABCD-5678
+ subnetMask: 255.255.255.0
+ enabled: true
+ networkId: string
+ protocols:
+ - radius
+ - snmp
+ - syslog
+ - ldap
+ vlanId: 100
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface_info.py
new file mode 100644
index 000000000..ec090d355
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_alternate_management_interface_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_alternate_management_interface_info
+short_description: Information module for networks _wireless _alternatemanagementinterface
+description:
+- Get all networks _wireless _alternatemanagementinterface.
+- Return alternate management interface and devices with IP assigned.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessAlternateManagementInterface
+ description: Complete reference of the getNetworkWirelessAlternateManagementInterface API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-alternate-management-interface
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_alternate_management_interface,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/alternateManagementInterface,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _alternatemanagementinterface
+ cisco.meraki.networks_wireless_alternate_management_interface_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing.py
new file mode 100644
index 000000000..9296df094
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_billing
+short_description: Resource module for networks _wireless _billing
+description:
+- Manage operation update of the resource networks _wireless _billing.
+- Update the billing settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ currency:
+ description: The currency code of this node group's billing plans.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ plans:
+ description: Array of billing plans in the node group. (Can configure a maximum
+ of 5).
+ elements: dict
+ suboptions:
+ bandwidthLimits:
+ description: The uplink bandwidth settings for the pricing plan.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps). Null indicates
+ no limit.
+ type: int
+ type: dict
+ id:
+ description: The id of the pricing plan to update.
+ type: str
+ price:
+ description: The price of the billing plan.
+ type: float
+ timeLimit:
+ description: The time limit of the pricing plan in minutes. Can be '1 hour',
+ '1 day', '1 week', or '30 days'.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessBilling
+ description: Complete reference of the updateNetworkWirelessBilling API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-billing
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_billing,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/billing,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_billing:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ currency: USD
+ networkId: string
+ plans:
+ - bandwidthLimits:
+ limitDown: 1000
+ limitUp: 1000
+ id: '1'
+ price: 5
+ timeLimit: 1 hour
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing_info.py
new file mode 100644
index 000000000..581341573
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_billing_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_billing_info
+short_description: Information module for networks _wireless _billing
+description:
+- Get all networks _wireless _billing.
+- Return the billing settings of this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessBilling
+ description: Complete reference of the getNetworkWirelessBilling API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-billing
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_billing,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/billing,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _billing
+ cisco.meraki.networks_wireless_billing_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings.py
new file mode 100644
index 000000000..1b46a685a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings.py
@@ -0,0 +1,106 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_bluetooth_settings
+short_description: Resource module for networks _wireless _bluetooth _settings
+description:
+- Manage operation update of the resource networks _wireless _bluetooth _settings.
+- Update the Bluetooth settings for a network. See the docs page for Bluetooth.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ advertisingEnabled:
+ description: Whether APs will advertise beacons.
+ type: bool
+ major:
+ description: The major number to be used in the beacon identifier. Only valid in
+ 'Non-unique' mode.
+ type: int
+ majorMinorAssignmentMode:
+ description: The way major and minor number should be assigned to nodes in the network.
+ ('Unique', 'Non-unique').
+ type: str
+ minor:
+ description: The minor number to be used in the beacon identifier. Only valid in
+ 'Non-unique' mode.
+ type: int
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ scanningEnabled:
+ description: Whether APs will scan for Bluetooth enabled clients.
+ type: bool
+ uuid:
+ description: The UUID to be used in the beacon identifier.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessBluetoothSettings
+ description: Complete reference of the updateNetworkWirelessBluetoothSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-bluetooth-settings
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_bluetooth_settings,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/bluetooth/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_bluetooth_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ advertisingEnabled: true
+ major: 1
+ majorMinorAssignmentMode: Non-unique
+ minor: 1
+ networkId: string
+ scanningEnabled: true
+ uuid: 00000000-0000-0000-000-000000000000
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "scanningEnabled": true,
+ "advertisingEnabled": true,
+ "uuid": "string",
+ "majorMinorAssignmentMode": "string",
+ "major": 0,
+ "minor": 0,
+ "eslEnabled": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings_info.py
new file mode 100644
index 000000000..7b7aa351c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_bluetooth_settings_info.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_bluetooth_settings_info
+short_description: Information module for networks _wireless _bluetooth _settings
+description:
+- Get all networks _wireless _bluetooth _settings.
+- Return the Bluetooth settings for a network. Bluetooth.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessBluetoothSettings
+ description: Complete reference of the getNetworkWirelessBluetoothSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-bluetooth-settings
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_bluetooth_settings,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/bluetooth/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _bluetooth _settings
+ cisco.meraki.networks_wireless_bluetooth_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "scanningEnabled": true,
+ "advertisingEnabled": true,
+ "uuid": "string",
+ "majorMinorAssignmentMode": "string",
+ "major": 0,
+ "minor": 0,
+ "eslEnabled": true
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_channel_utilization_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_channel_utilization_history_info.py
new file mode 100644
index 000000000..497be9f02
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_channel_utilization_history_info.py
@@ -0,0 +1,142 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_channel_utilization_history_info
+short_description: Information module for networks _wireless _channelutilizationhistory
+description:
+- Get all networks _wireless _channelutilizationhistory.
+- Return AP channel utilization over time for a device or network client.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 600,
+ 1200, 3600, 14400, 86400. The default is 86400.
+ type: int
+ autoResolution:
+ description:
+ - >
+ AutoResolution query parameter. Automatically select a data resolution based on the given timespan; this
+ overrides the value specified by the 'resolution' parameter. The default setting is false.
+ type: bool
+ clientId:
+ description:
+ - >
+ ClientId query parameter. Filter results by network client to return per-device, per-band AP channel
+ utilization metrics inner joined by the queried client's connection history.
+ type: str
+ deviceSerial:
+ description:
+ - >
+ DeviceSerial query parameter. Filter results by device to return AP channel utilization metrics for the
+ queried device; either band or clientId must be jointly specified.
+ type: str
+ apTag:
+ description:
+ - >
+ ApTag query parameter. Filter results by AP tag to return AP channel utilization metrics for devices labeled
+ with the given tag; either clientId or deviceSerial must be jointly specified.
+ type: str
+ band:
+ description:
+ - Band query parameter. Filter results by band (either '2.4', '5' or '6').
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessChannelUtilizationHistory
+ description: Complete reference of the getNetworkWirelessChannelUtilizationHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-channel-utilization-history
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_channel_utilization_history,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/channelUtilizationHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _channelutilizationhistory
+ cisco.meraki.networks_wireless_channel_utilization_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ autoResolution: True
+ clientId: string
+ deviceSerial: string
+ apTag: string
+ band: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "utilizationTotal": 0,
+ "utilization80211": 0,
+ "utilizationNon80211": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_client_count_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_client_count_history_info.py
new file mode 100644
index 000000000..e9fe2d829
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_client_count_history_info.py
@@ -0,0 +1,141 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_client_count_history_info
+short_description: Information module for networks _wireless _clientcounthistory
+description:
+- Get all networks _wireless _clientcounthistory.
+- Return wireless client counts over time for a network, device, or network client.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 300,
+ 600, 1200, 3600, 14400, 86400. The default is 86400.
+ type: int
+ autoResolution:
+ description:
+ - >
+ AutoResolution query parameter. Automatically select a data resolution based on the given timespan; this
+ overrides the value specified by the 'resolution' parameter. The default setting is false.
+ type: bool
+ clientId:
+ description:
+ - >
+ ClientId query parameter. Filter results by network client to return per-device client counts over time
+ inner joined by the queried client's connection history.
+ type: str
+ deviceSerial:
+ description:
+ - DeviceSerial query parameter. Filter results by device.
+ type: str
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP tag.
+ type: str
+ band:
+ description:
+ - Band query parameter. Filter results by band (either '2.4', '5' or '6').
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID number.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessClientCountHistory
+ description: Complete reference of the getNetworkWirelessClientCountHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-client-count-history
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_client_count_history,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/clientCountHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _clientcounthistory
+ cisco.meraki.networks_wireless_client_count_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ autoResolution: True
+ clientId: string
+ deviceSerial: string
+ apTag: string
+ band: string
+ ssid: 0
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "clientCount": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_connection_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_connection_stats_info.py
new file mode 100644
index 000000000..05ab31873
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_connection_stats_info.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_clients_connection_stats_info
+short_description: Information module for networks _wireless _clients _connectionstats
+description:
+- Get all networks _wireless _clients _connectionstats.
+- Aggregated connectivity info for a given client on this network. Clients are identified by their MAC.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ clientId:
+ description:
+ - ClientId path parameter. Client ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessClientConnectionStats
+ description: Complete reference of the getNetworkWirelessClientConnectionStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-client-connection-stats
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_client_connection_stats,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/clients/{clientId}/connectionStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _clients _connectionstats
+ cisco.meraki.networks_wireless_clients_connection_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ networkId: string
+ clientId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_latency_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_latency_stats_info.py
new file mode 100644
index 000000000..89477e7be
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_clients_latency_stats_info.py
@@ -0,0 +1,127 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_clients_latency_stats_info
+short_description: Information module for networks _wireless _clients _latencystats
+description:
+- Get all networks _wireless _clients _latencystats.
+- Aggregated latency info for a given client on this network. Clients are identified by their MAC.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ clientId:
+ description:
+ - ClientId path parameter. Client ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+ fields:
+ description:
+ - >
+ Fields query parameter. Partial selection If present, this call will return only the selected fields of
+ "rawDistribution", "avg". All fields will be returned by default. Selected fields must be entered as a comma
+ separated string.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessClientLatencyStats
+ description: Complete reference of the getNetworkWirelessClientLatencyStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-client-latency-stats
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_client_latency_stats,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/clients/{clientId}/latencyStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _clients _latencystats
+ cisco.meraki.networks_wireless_clients_latency_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ fields: string
+ networkId: string
+ clientId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_connection_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_connection_stats_info.py
new file mode 100644
index 000000000..3df20bd69
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_connection_stats_info.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_connection_stats_info
+short_description: Information module for networks _wireless _connectionstats
+description:
+- Get all networks _wireless _connectionstats.
+- Aggregated connectivity info for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessConnectionStats
+ description: Complete reference of the getNetworkWirelessConnectionStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-connection-stats
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_connection_stats,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/connectionStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _connectionstats
+ cisco.meraki.networks_wireless_connection_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "assoc": 0,
+ "auth": 0,
+ "dhcp": 0,
+ "dns": 0,
+ "success": 0
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_data_rate_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_data_rate_history_info.py
new file mode 100644
index 000000000..92c65db8a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_data_rate_history_info.py
@@ -0,0 +1,141 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_data_rate_history_info
+short_description: Information module for networks _wireless _dataratehistory
+description:
+- Get all networks _wireless _dataratehistory.
+- Return PHY data rates over time for a network, device, or network client.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 300,
+ 600, 1200, 3600, 14400, 86400. The default is 86400.
+ type: int
+ autoResolution:
+ description:
+ - >
+ AutoResolution query parameter. Automatically select a data resolution based on the given timespan; this
+ overrides the value specified by the 'resolution' parameter. The default setting is false.
+ type: bool
+ clientId:
+ description:
+ - ClientId query parameter. Filter results by network client.
+ type: str
+ deviceSerial:
+ description:
+ - DeviceSerial query parameter. Filter results by device.
+ type: str
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP tag.
+ type: str
+ band:
+ description:
+ - Band query parameter. Filter results by band (either '2.4', '5' or '6').
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID number.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessDataRateHistory
+ description: Complete reference of the getNetworkWirelessDataRateHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-data-rate-history
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_data_rate_history,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/dataRateHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _dataratehistory
+ cisco.meraki.networks_wireless_data_rate_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ autoResolution: True
+ clientId: string
+ deviceSerial: string
+ apTag: string
+ band: string
+ ssid: 0
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "averageKbps": 0,
+ "downloadKbps": 0,
+ "uploadKbps": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_devices_connection_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_devices_connection_stats_info.py
new file mode 100644
index 000000000..90a2f716a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_devices_connection_stats_info.py
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_devices_connection_stats_info
+short_description: Information module for networks _wireless _devices _connectionstats
+description:
+- Get all networks _wireless _devices _connectionstats.
+- Aggregated connectivity info for this network, grouped by node.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessDevicesConnectionStats
+ description: Complete reference of the getNetworkWirelessDevicesConnectionStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-devices-connection-stats
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_devices_connection_stats,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/devices/connectionStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _devices _connectionstats
+ cisco.meraki.networks_wireless_devices_connection_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "serial": "string",
+ "connectionStats": {
+ "assoc": 0,
+ "auth": 0,
+ "dhcp": 0,
+ "dns": 0,
+ "success": 0
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_failed_connections_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_failed_connections_info.py
new file mode 100644
index 000000000..b929330ff
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_failed_connections_info.py
@@ -0,0 +1,135 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_failed_connections_info
+short_description: Information module for networks _wireless _failedconnections
+description:
+- Get all networks _wireless _failedconnections.
+- List of all failed client connection events on this network in a given time range.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+ serial:
+ description:
+ - Serial query parameter. Filter by AP.
+ type: str
+ clientId:
+ description:
+ - ClientId query parameter. Filter by client MAC.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessFailedConnections
+ description: Complete reference of the getNetworkWirelessFailedConnections API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-failed-connections
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_failed_connections,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/failedConnections,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _failedconnections
+ cisco.meraki.networks_wireless_failed_connections_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ serial: string
+ clientId: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "ssidNumber": 0,
+ "vlan": 0,
+ "clientMac": "string",
+ "serial": "string",
+ "failureStep": "string",
+ "type": "string",
+ "ts": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_history_info.py
new file mode 100644
index 000000000..536ed128f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_history_info.py
@@ -0,0 +1,144 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_latency_history_info
+short_description: Information module for networks _wireless _latencyhistory
+description:
+- Get all networks _wireless _latencyhistory.
+- Return average wireless latency over time for a network, device, or network client.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 300,
+ 600, 1200, 3600, 14400, 86400. The default is 86400.
+ type: int
+ autoResolution:
+ description:
+ - >
+ AutoResolution query parameter. Automatically select a data resolution based on the given timespan; this
+ overrides the value specified by the 'resolution' parameter. The default setting is false.
+ type: bool
+ clientId:
+ description:
+ - ClientId query parameter. Filter results by network client.
+ type: str
+ deviceSerial:
+ description:
+ - DeviceSerial query parameter. Filter results by device.
+ type: str
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP tag.
+ type: str
+ band:
+ description:
+ - Band query parameter. Filter results by band (either '2.4', '5' or '6').
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID number.
+ type: int
+ accessCategory:
+ description:
+ - AccessCategory query parameter. Filter by access category.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessLatencyHistory
+ description: Complete reference of the getNetworkWirelessLatencyHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-latency-history
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_latency_history,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/latencyHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _latencyhistory
+ cisco.meraki.networks_wireless_latency_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ autoResolution: True
+ clientId: string
+ deviceSerial: string
+ apTag: string
+ band: string
+ ssid: 0
+ accessCategory: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "avgLatencyMs": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_stats_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_stats_info.py
new file mode 100644
index 000000000..cf8300995
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_latency_stats_info.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_latency_stats_info
+short_description: Information module for networks _wireless _latencystats
+description:
+- Get all networks _wireless _latencystats.
+- Aggregated latency info for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 180 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days.
+ type: float
+ band:
+ description:
+ - >
+ Band query parameter. Filter results by band (either '2.4', '5' or '6'). Note that data prior to February
+ 2020 will not have band information.
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID.
+ type: int
+ vlan:
+ description:
+ - Vlan query parameter. Filter results by VLAN.
+ type: int
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP Tag.
+ type: str
+ fields:
+ description:
+ - >
+ Fields query parameter. Partial selection If present, this call will return only the selected fields of
+ "rawDistribution", "avg". All fields will be returned by default. Selected fields must be entered as a comma
+ separated string.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessLatencyStats
+ description: Complete reference of the getNetworkWirelessLatencyStats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-latency-stats
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_latency_stats,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/latencyStats,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _latencystats
+ cisco.meraki.networks_wireless_latency_stats_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ band: string
+ ssid: 0
+ vlan: 0
+ apTag: string
+ fields: string
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_mesh_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_mesh_statuses_info.py
new file mode 100644
index 000000000..b7ba8f763
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_mesh_statuses_info.py
@@ -0,0 +1,99 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_mesh_statuses_info
+short_description: Information module for networks _wireless _meshstatuses
+description:
+- Get all networks _wireless _meshstatuses.
+- List wireless mesh statuses for repeaters.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 500. Default is 50.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessMeshStatuses
+ description: Complete reference of the getNetworkWirelessMeshStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-mesh-statuses
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_mesh_statuses,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/meshStatuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _meshstatuses
+ cisco.meraki.networks_wireless_mesh_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles.py
new file mode 100644
index 000000000..c5f15bbd1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles.py
@@ -0,0 +1,989 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_rf_profiles
+short_description: Resource module for networks _wireless _rfprofiles
+description:
+- Manage operations create, update and delete of the resource networks _wireless _rfprofiles.
+- Creates new RF profile for this network.
+- Delete a RF Profile.
+- Updates specified RF profile for this network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ apBandSettings:
+ description: Settings that will be enabled if selectionType is set to 'ap'.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'. Defaults to dual.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band. Can be either true or false. Defaults
+ to true.
+ type: bool
+ type: dict
+ bandSelectionType:
+ description: Band selection can be set to either 'ssid' or 'ap'. This param is required
+ on creation.
+ type: str
+ clientBalancingEnabled:
+ description: Steers client to best available access point. Can be either true or
+ false. Defaults to true.
+ type: bool
+ fiveGhzSettings:
+ description: Settings related to 5Ghz band.
+ suboptions:
+ channelWidth:
+ description: Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20',
+ '40' or '80'. Defaults to auto.
+ type: str
+ maxPower:
+ description: Sets max power (dBm) of 5Ghz band. Can be integer between 2 and
+ 30. Defaults to 30.
+ type: int
+ minBitrate:
+ description: Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12',
+ '18', '24', '36', '48' or '54'. Defaults to 12.
+ type: int
+ minPower:
+ description: Sets min power (dBm) of 5Ghz band. Can be integer between 2 and
+ 30. Defaults to 8.
+ type: int
+ rxsop:
+ description: The RX-SOP level controls the sensitivity of the radio. It is strongly
+ recommended to use RX-SOP only after consulting a wireless expert. RX-SOP
+ can be configured in the range of -65 to -95 (dBm). A value of null will reset
+ this to the default.
+ type: int
+ validAutoChannels:
+ description: Sets valid auto channels for 5Ghz band. Can be one of '36', '40',
+ '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120',
+ '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults
+ to 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128,
+ 132, 136, 140, 144, 149, 153, 157, 161, 165.
+ elements: int
+ type: list
+ type: dict
+ minBitrateType:
+ description: Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to
+ band.
+ type: str
+ name:
+ description: The name of the new profile. Must be unique. This param is required
+ on creation.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ perSsidSettings:
+ description: Per-SSID radio settings by number.
+ suboptions:
+ '0':
+ description: Settings for SSID 0.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '1':
+ description: Settings for SSID 1.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '10':
+ description: Settings for SSID 10.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '11':
+ description: Settings for SSID 11.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '12':
+ description: Settings for SSID 12.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '13':
+ description: Settings for SSID 13.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '14':
+ description: Settings for SSID 14.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '2':
+ description: Settings for SSID 2.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '3':
+ description: Settings for SSID 3.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '4':
+ description: Settings for SSID 4.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '5':
+ description: Settings for SSID 5.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '6':
+ description: Settings for SSID 6.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '7':
+ description: Settings for SSID 7.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '8':
+ description: Settings for SSID 8.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ '9':
+ description: Settings for SSID 9.
+ suboptions:
+ bandOperationMode:
+ description: Choice between 'dual', '2.4ghz' or '5ghz'.
+ type: str
+ bandSteeringEnabled:
+ description: Steers client to most open band between 2.4 GHz and 5 GHz.
+ Can be either true or false.
+ type: bool
+ minBitrate:
+ description: Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'.
+ type: float
+ type: dict
+ type: dict
+ rfProfileId:
+ description: RfProfileId path parameter. Rf profile ID.
+ type: str
+ sixGhzSettings:
+ description: Settings related to 6Ghz band.
+ suboptions:
+ channelWidth:
+ description: Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20',
+ '40', '80' or '160'. Defaults to 0.
+ type: str
+ maxPower:
+ description: Sets max power (dBm) of 6Ghz band. Can be integer between 2 and
+ 30. Defaults to 30.
+ type: int
+ minBitrate:
+ description: Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12',
+ '18', '24', '36', '48' or '54'. Defaults to 12.
+ type: int
+ minPower:
+ description: Sets min power (dBm) of 6Ghz band. Can be integer between 2 and
+ 30. Defaults to 8.
+ type: int
+ rxsop:
+ description: The RX-SOP level controls the sensitivity of the radio. It is strongly
+ recommended to use RX-SOP only after consulting a wireless expert. RX-SOP
+ can be configured in the range of -65 to -95 (dBm). A value of null will reset
+ this to the default.
+ type: int
+ validAutoChannels:
+ description: Sets valid auto channels for 6Ghz band. Can be one of '1', '5',
+ '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57',
+ '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105',
+ '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149',
+ '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193',
+ '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'.Defaults
+ to 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73,
+ 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137,
+ 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197,
+ 201, 205, 209, 213, 217, 221, 225, 229, 233.
+ elements: int
+ type: list
+ type: dict
+ transmission:
+ description: Settings related to radio transmission.
+ suboptions:
+ enabled:
+ description: Toggle for radio transmission. When false, radios will not transmit
+ at all.
+ type: bool
+ type: dict
+ twoFourGhzSettings:
+ description: Settings related to 2.4Ghz band.
+ suboptions:
+ axEnabled:
+ description: Determines whether ax radio on 2.4Ghz band is on or off. Can be
+ either true or false. If false, we highly recommend disabling band steering.
+ Defaults to true.
+ type: bool
+ maxPower:
+ description: Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and
+ 30. Defaults to 30.
+ type: int
+ minBitrate:
+ description: Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2',
+ '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11.
+ type: float
+ minPower:
+ description: Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and
+ 30. Defaults to 5.
+ type: int
+ rxsop:
+ description: The RX-SOP level controls the sensitivity of the radio. It is strongly
+ recommended to use RX-SOP only after consulting a wireless expert. RX-SOP
+ can be configured in the range of -65 to -95 (dBm). A value of null will reset
+ this to the default.
+ type: int
+ validAutoChannels:
+ description: Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6'
+ or '11'. Defaults to 1, 6, 11.
+ elements: int
+ type: list
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless createNetworkWirelessRfProfile
+ description: Complete reference of the createNetworkWirelessRfProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-wireless-rf-profile
+- name: Cisco Meraki documentation for wireless deleteNetworkWirelessRfProfile
+ description: Complete reference of the deleteNetworkWirelessRfProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-wireless-rf-profile
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessRfProfile
+ description: Complete reference of the updateNetworkWirelessRfProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-rf-profile
+notes:
+ - SDK Method used are
+ wireless.Wireless.create_network_wireless_rf_profile,
+ wireless.Wireless.delete_network_wireless_rf_profile,
+ wireless.Wireless.update_network_wireless_rf_profile,
+
+ - Paths used are
+ post /networks/{networkId}/wireless/rfProfiles,
+ delete /networks/{networkId}/wireless/rfProfiles/{rfProfileId},
+ put /networks/{networkId}/wireless/rfProfiles/{rfProfileId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_wireless_rf_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ apBandSettings:
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ bandSelectionType: ap
+ clientBalancingEnabled: true
+ fiveGhzSettings:
+ channelWidth: auto
+ maxPower: 30
+ minBitrate: 12
+ minPower: 8
+ rxsop: -95
+ validAutoChannels:
+ - 36
+ - 40
+ - 44
+ - 48
+ - 52
+ - 56
+ - 60
+ - 64
+ - 100
+ - 104
+ - 108
+ - 112
+ - 116
+ - 120
+ - 124
+ - 128
+ - 132
+ - 136
+ - 140
+ - 144
+ - 149
+ - 153
+ - 157
+ - 161
+ - 165
+ minBitrateType: band
+ name: Main Office
+ networkId: string
+ perSsidSettings:
+ '0':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '1':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '10':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '11':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '12':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '13':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '14':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '2':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '3':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '4':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '5':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '6':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '7':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '8':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '9':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ sixGhzSettings:
+ channelWidth: auto
+ maxPower: 30
+ minBitrate: 12
+ minPower: 8
+ rxsop: -95
+ validAutoChannels:
+ - 1
+ - 5
+ - 9
+ - 13
+ - 17
+ - 21
+ - 25
+ - 29
+ - 33
+ - 37
+ - 41
+ - 45
+ - 49
+ - 53
+ - 57
+ - 61
+ - 65
+ - 69
+ - 73
+ - 77
+ - 81
+ - 85
+ - 89
+ - 93
+ - 97
+ - 101
+ - 105
+ - 109
+ - 113
+ - 117
+ - 121
+ - 125
+ - 129
+ - 133
+ - 137
+ - 141
+ - 145
+ - 149
+ - 153
+ - 157
+ - 161
+ - 165
+ - 169
+ - 173
+ - 177
+ - 181
+ - 185
+ - 189
+ - 193
+ - 197
+ - 201
+ - 205
+ - 209
+ - 213
+ - 217
+ - 221
+ - 225
+ - 229
+ - 233
+ transmission:
+ enabled: true
+ twoFourGhzSettings:
+ axEnabled: true
+ maxPower: 30
+ minBitrate: 11
+ minPower: 5
+ rxsop: -95
+ validAutoChannels:
+ - 1
+ - 6
+ - 11
+
+- name: Update by id
+ cisco.meraki.networks_wireless_rf_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ apBandSettings:
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ bandSelectionType: ap
+ clientBalancingEnabled: true
+ fiveGhzSettings:
+ channelWidth: auto
+ maxPower: 30
+ minBitrate: 12
+ minPower: 8
+ rxsop: -95
+ validAutoChannels:
+ - 36
+ - 40
+ - 44
+ - 48
+ - 52
+ - 56
+ - 60
+ - 64
+ - 100
+ - 104
+ - 108
+ - 112
+ - 116
+ - 120
+ - 124
+ - 128
+ - 132
+ - 136
+ - 140
+ - 144
+ - 149
+ - 153
+ - 157
+ - 161
+ - 165
+ minBitrateType: band
+ name: '1234'
+ networkId: string
+ perSsidSettings:
+ '0':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '1':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '10':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '11':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '12':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '13':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '14':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '2':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '3':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '4':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '5':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '6':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '7':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '8':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ '9':
+ bandOperationMode: dual
+ bandSteeringEnabled: true
+ minBitrate: 11
+ rfProfileId: string
+ sixGhzSettings:
+ channelWidth: auto
+ maxPower: 30
+ minBitrate: 12
+ minPower: 8
+ rxsop: -95
+ validAutoChannels:
+ - 1
+ - 5
+ - 9
+ - 13
+ - 17
+ - 21
+ - 25
+ - 29
+ - 33
+ - 37
+ - 41
+ - 45
+ - 49
+ - 53
+ - 57
+ - 61
+ - 65
+ - 69
+ - 73
+ - 77
+ - 81
+ - 85
+ - 89
+ - 93
+ - 97
+ - 101
+ - 105
+ - 109
+ - 113
+ - 117
+ - 121
+ - 125
+ - 129
+ - 133
+ - 137
+ - 141
+ - 145
+ - 149
+ - 153
+ - 157
+ - 161
+ - 165
+ - 169
+ - 173
+ - 177
+ - 181
+ - 185
+ - 189
+ - 193
+ - 197
+ - 201
+ - 205
+ - 209
+ - 213
+ - 217
+ - 221
+ - 225
+ - 229
+ - 233
+ transmission:
+ enabled: true
+ twoFourGhzSettings:
+ axEnabled: true
+ maxPower: 30
+ minBitrate: 11
+ minPower: 5
+ rxsop: -95
+ validAutoChannels:
+ - 1
+ - 6
+ - 11
+
+- name: Delete by id
+ cisco.meraki.networks_wireless_rf_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ networkId: string
+ rfProfileId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "networkId": "string",
+ "name": "string",
+ "clientBalancingEnabled": true,
+ "minBitrateType": "string",
+ "bandSelectionType": "string",
+ "apBandSettings": {
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "twoFourGhzSettings": {
+ "maxPower": 0,
+ "minPower": 0,
+ "minBitrate": 0,
+ "validAutoChannels": [
+ 0
+ ],
+ "axEnabled": true,
+ "rxsop": 0
+ },
+ "fiveGhzSettings": {
+ "maxPower": 0,
+ "minPower": 0,
+ "minBitrate": 0,
+ "validAutoChannels": [
+ 0
+ ],
+ "channelWidth": "string",
+ "rxsop": 0
+ },
+ "transmission": {
+ "enabled": true
+ },
+ "perSsidSettings": {
+ "0": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "1": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "2": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "3": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "4": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "5": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "6": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "7": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "8": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "9": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "10": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "11": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "12": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "13": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ },
+ "14": {
+ "name": "string",
+ "minBitrate": 0,
+ "bandOperationMode": "string",
+ "bandSteeringEnabled": true
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles_info.py
new file mode 100644
index 000000000..29609886a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_rf_profiles_info.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_rf_profiles_info
+short_description: Information module for networks _wireless _rfprofiles
+description:
+- Get all networks _wireless _rfprofiles.
+- Get networks _wireless _rfprofiles by id.
+- List the non-basic RF profiles for this network.
+- Return a RF profile.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ includeTemplateProfiles:
+ description:
+ - >
+ IncludeTemplateProfiles query parameter. If the network is bound to a template, this parameter controls
+ whether or not the non-basic RF profiles defined on the template should be included in the response
+ alongside the non-basic profiles defined on the bound network. Defaults to false.
+ type: bool
+ rfProfileId:
+ description:
+ - RfProfileId path parameter. Rf profile ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessRfProfile
+ description: Complete reference of the getNetworkWirelessRfProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-rf-profile
+- name: Cisco Meraki documentation for wireless getNetworkWirelessRfProfiles
+ description: Complete reference of the getNetworkWirelessRfProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-rf-profiles
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_rf_profile,
+ wireless.Wireless.get_network_wireless_rf_profiles,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/rfProfiles,
+ get /networks/{networkId}/wireless/rfProfiles/{rfProfileId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _rfprofiles
+ cisco.meraki.networks_wireless_rf_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ includeTemplateProfiles: True
+ networkId: string
+ register: result
+
+- name: Get networks _wireless _rfprofiles by id
+ cisco.meraki.networks_wireless_rf_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ rfProfileId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings.py
new file mode 100644
index 000000000..9f990b5ac
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings.py
@@ -0,0 +1,106 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_settings
+short_description: Resource module for networks _wireless _settings
+description:
+- Manage operation update of the resource networks _wireless _settings.
+- Update the wireless settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ ipv6BridgeEnabled:
+ description: Toggle for enabling or disabling IPv6 bridging in a network (Note if
+ enabled, SSIDs must also be configured to use bridge mode).
+ type: bool
+ ledLightsOn:
+ description: Toggle for enabling or disabling LED lights on all APs in the network
+ (making them run dark).
+ type: bool
+ locationAnalyticsEnabled:
+ description: Toggle for enabling or disabling location analytics for your network.
+ type: bool
+ meshingEnabled:
+ description: Toggle for enabling or disabling meshing in a network.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ upgradeStrategy:
+ description: The upgrade strategy to apply to the network. Must be one of 'minimizeUpgradeTime'
+ or 'minimizeClientDowntime'. Requires firmware version MR 26.8 or higher'.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSettings
+ description: Complete reference of the updateNetworkWirelessSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-settings
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_settings,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ ipv6BridgeEnabled: false
+ ledLightsOn: false
+ locationAnalyticsEnabled: false
+ meshingEnabled: true
+ networkId: string
+ upgradeStrategy: minimizeUpgradeTime
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "meshingEnabled": true,
+ "ipv6BridgeEnabled": true,
+ "locationAnalyticsEnabled": true,
+ "upgradeStrategy": "string",
+ "ledLightsOn": true,
+ "namedVlans": {
+ "poolDhcpMonitoring": {
+ "enabled": true,
+ "duration": 0
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings_info.py
new file mode 100644
index 000000000..9c19a807f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_settings_info.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_settings_info
+short_description: Information module for networks _wireless _settings
+description:
+- Get all networks _wireless _settings.
+- Return the wireless settings for a network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSettings
+ description: Complete reference of the getNetworkWirelessSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-settings
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_settings,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _settings
+ cisco.meraki.networks_wireless_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "meshingEnabled": true,
+ "ipv6BridgeEnabled": true,
+ "locationAnalyticsEnabled": true,
+ "upgradeStrategy": "string",
+ "ledLightsOn": true,
+ "namedVlans": {
+ "poolDhcpMonitoring": {
+ "enabled": true,
+ "duration": 0
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_signal_quality_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_signal_quality_history_info.py
new file mode 100644
index 000000000..e5cd31632
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_signal_quality_history_info.py
@@ -0,0 +1,140 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_signal_quality_history_info
+short_description: Information module for networks _wireless _signalqualityhistory
+description:
+- Get all networks _wireless _signalqualityhistory.
+- Return signal quality SNR/RSSI over time for a device or network client.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 300,
+ 600, 1200, 3600, 14400, 86400. The default is 86400.
+ type: int
+ autoResolution:
+ description:
+ - >
+ AutoResolution query parameter. Automatically select a data resolution based on the given timespan; this
+ overrides the value specified by the 'resolution' parameter. The default setting is false.
+ type: bool
+ clientId:
+ description:
+ - ClientId query parameter. Filter results by network client.
+ type: str
+ deviceSerial:
+ description:
+ - DeviceSerial query parameter. Filter results by device.
+ type: str
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP tag; either clientId or deviceSerial must be jointly specified.
+ type: str
+ band:
+ description:
+ - Band query parameter. Filter results by band (either '2.4', '5' or '6').
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID number.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSignalQualityHistory
+ description: Complete reference of the getNetworkWirelessSignalQualityHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-signal-quality-history
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_signal_quality_history,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/signalQualityHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _signalqualityhistory
+ cisco.meraki.networks_wireless_signal_quality_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ autoResolution: True
+ clientId: string
+ deviceSerial: string
+ apTag: string
+ band: string
+ ssid: 0
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "snr": 0,
+ "rssi": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids.py
new file mode 100644
index 000000000..9938106c5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids.py
@@ -0,0 +1,513 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids
+short_description: Resource module for networks _wireless _ssids
+description:
+- Manage operation update of the resource networks _wireless _ssids.
+- Update the attributes of an MR SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ activeDirectory:
+ description: The current setting for Active Directory. Only valid if splashPage
+ is 'Password-protected with Active Directory'.
+ suboptions:
+ credentials:
+ description: (Optional) The credentials of the user account to be used by the
+ AP to bind to your Active Directory server. The Active Directory account should
+ have permissions on all your Active Directory servers. Only valid if the splashPage
+ is 'Password-protected with Active Directory'.
+ suboptions:
+ logonName:
+ description: The logon name of the Active Directory account.
+ type: str
+ password:
+ description: The password to the Active Directory user account.
+ type: str
+ type: dict
+ servers:
+ description: The Active Directory servers to be used for authentication.
+ elements: dict
+ suboptions:
+ host:
+ description: IP address of your Active Directory server.
+ type: str
+ port:
+ description: (Optional) UDP port the Active Directory server listens on.
+ By default, uses port 3268.
+ type: int
+ type: list
+ type: dict
+ adultContentFilteringEnabled:
+ description: Boolean indicating whether or not adult content will be blocked.
+ type: bool
+ apTagsAndVlanIds:
+ description: The list of tags and VLAN IDs used for VLAN tagging. This param is
+ only valid when the ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'.
+ elements: dict
+ suboptions:
+ tags:
+ description: Array of AP tags.
+ elements: str
+ type: list
+ vlanId:
+ description: Numerical identifier that is assigned to the VLAN.
+ type: int
+ type: list
+ authMode:
+ description: The association control method for the SSID ('open', 'open-enhanced',
+ 'psk', 'open-with-radius', 'open-with-nac', '8021x-meraki', '8021x-nac', '8021x-radius',
+ '8021x-google', '8021x-localradius', 'ipsk-with-radius' or 'ipsk-without-radius').
+ type: str
+ availabilityTags:
+ description: Accepts a list of tags for this SSID. If availableOnAllAps is false,
+ then the SSID will only be broadcast by APs with tags matching any of the tags
+ in this list.
+ elements: str
+ type: list
+ availableOnAllAps:
+ description: Boolean indicating whether all APs should broadcast the SSID or if
+ it should be restricted to APs matching any availability tags. Can only be false
+ if the SSID has availability tags.
+ type: bool
+ bandSelection:
+ description: The client-serving radio frequencies of this SSID in the default indoor
+ RF profile. ('Dual band operation', '5 GHz band only' or 'Dual band operation
+ with Band Steering').
+ type: str
+ concentratorNetworkId:
+ description: The concentrator to use when the ipAssignmentMode is 'Layer 3 roaming
+ with a concentrator' or 'VPN'.
+ type: str
+ defaultVlanId:
+ description: The default VLAN ID used for 'all other APs'. This param is only valid
+ when the ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'.
+ type: int
+ disassociateClientsOnVpnFailover:
+ description: Disassociate clients when 'VPN' concentrator failover occurs in order
+ to trigger clients to re-associate and generate new DHCP requests. This param
+ is only valid if ipAssignmentMode is 'VPN'.
+ type: bool
+ dnsRewrite:
+ description: DNS servers rewrite settings.
+ suboptions:
+ dnsCustomNameservers:
+ description: User specified DNS servers (up to two servers).
+ elements: str
+ type: list
+ enabled:
+ description: Boolean indicating whether or not DNS server rewrite is enabled.
+ If disabled, upstream DNS will be used.
+ type: bool
+ type: dict
+ dot11r:
+ description: The current setting for 802.11r.
+ suboptions:
+ adaptive:
+ description: (Optional) Whether 802.11r is adaptive or not.
+ type: bool
+ enabled:
+ description: Whether 802.11r is enabled or not.
+ type: bool
+ type: dict
+ dot11w:
+ description: The current setting for Protected Management Frames (802.11w).
+ suboptions:
+ enabled:
+ description: Whether 802.11w is enabled or not.
+ type: bool
+ required:
+ description: (Optional) Whether 802.11w is required or not.
+ type: bool
+ type: dict
+ enabled:
+ description: Whether or not the SSID is enabled.
+ type: bool
+ encryptionMode:
+ description: The psk encryption mode for the SSID ('wep' or 'wpa'). This param is
+ only valid if the authMode is 'psk'.
+ type: str
+ enterpriseAdminAccess:
+ description: Whether or not an SSID is accessible by 'enterprise' administrators
+ ('access disabled' or 'access enabled').
+ type: str
+ gre:
+ description: Ethernet over GRE settings.
+ suboptions:
+ concentrator:
+ description: The EoGRE concentrator's settings.
+ suboptions:
+ host:
+ description: The EoGRE concentrator's IP or FQDN. This param is required
+ when ipAssignmentMode is 'Ethernet over GRE'.
+ type: str
+ type: dict
+ key:
+ description: Optional numerical identifier that will add the GRE key field to
+ the GRE header. Used to identify an individual traffic flow within a tunnel.
+ type: int
+ type: dict
+ ipAssignmentMode:
+ description: The client IP assignment mode ('NAT mode', 'Bridge mode', 'Layer 3
+ roaming', 'Ethernet over GRE', 'Layer 3 roaming with a concentrator' or 'VPN').
+ type: str
+ lanIsolationEnabled:
+ description: Boolean indicating whether Layer 2 LAN isolation should be enabled
+ or disabled. Only configurable when ipAssignmentMode is 'Bridge mode'.
+ type: bool
+ ldap:
+ description: The current setting for LDAP. Only valid if splashPage is 'Password-protected
+ with LDAP'.
+ suboptions:
+ baseDistinguishedName:
+ description: The base distinguished name of users on the LDAP server.
+ type: str
+ credentials:
+ description: (Optional) The credentials of the user account to be used by the
+ AP to bind to your LDAP server. The LDAP account should have permissions on
+ all your LDAP servers.
+ suboptions:
+ distinguishedName:
+ description: The distinguished name of the LDAP user account (example cn=user,dc=meraki,dc=com).
+ type: str
+ password:
+ description: The password of the LDAP user account.
+ type: str
+ type: dict
+ serverCaCertificate:
+ description: The CA certificate used to sign the LDAP server's key.
+ suboptions:
+ contents:
+ description: The contents of the CA certificate. Must be in PEM or DER format.
+ type: str
+ type: dict
+ servers:
+ description: The LDAP servers to be used for authentication.
+ elements: dict
+ suboptions:
+ host:
+ description: IP address of your LDAP server.
+ type: str
+ port:
+ description: UDP port the LDAP server listens on.
+ type: int
+ type: list
+ type: dict
+ localRadius:
+ description: The current setting for Local Authentication, a built-in RADIUS server
+ on the access point. Only valid if authMode is '8021x-localradius'.
+ suboptions:
+ cacheTimeout:
+ description: The duration (in seconds) for which LDAP and OCSP lookups are cached.
+ type: int
+ certificateAuthentication:
+ description: The current setting for certificate verification.
+ suboptions:
+ clientRootCaCertificate:
+ description: The Client CA Certificate used to sign the client certificate.
+ suboptions:
+ contents:
+ description: The contents of the Client CA Certificate. Must be in PEM
+ or DER format.
+ type: str
+ type: dict
+ enabled:
+ description: Whether or not to use EAP-TLS certificate-based authentication
+ to validate wireless clients.
+ type: bool
+ ocspResponderUrl:
+ description: (Optional) The URL of the OCSP responder to verify client certificate
+ status.
+ type: str
+ useLdap:
+ description: Whether or not to verify the certificate with LDAP.
+ type: bool
+ useOcsp:
+ description: Whether or not to verify the certificate with OCSP.
+ type: bool
+ type: dict
+ passwordAuthentication:
+ description: The current setting for password-based authentication.
+ suboptions:
+ enabled:
+ description: Whether or not to use EAP-TTLS/PAP or PEAP-GTC password-based
+ authentication via LDAP lookup.
+ type: bool
+ type: dict
+ type: dict
+ mandatoryDhcpEnabled:
+ description: If true, Mandatory DHCP will enforce that clients connecting to this
+ SSID must use the IP address assigned by the DHCP server. Clients who use a static
+ IP address won't be able to associate.
+ type: bool
+ minBitrate:
+ description: The minimum bitrate in Mbps of this SSID in the default indoor RF profile.
+ ('1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54').
+ type: float
+ name:
+ description: The name of the SSID.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ oauth:
+ description: The OAuth settings of this SSID. Only valid if splashPage is 'Google
+ OAuth'.
+ suboptions:
+ allowedDomains:
+ description: (Optional) The list of domains allowed access to the network.
+ elements: str
+ type: list
+ type: dict
+ perClientBandwidthLimitDown:
+ description: The download bandwidth limit in Kbps. (0 represents no limit.).
+ type: int
+ perClientBandwidthLimitUp:
+ description: The upload bandwidth limit in Kbps. (0 represents no limit.).
+ type: int
+ perSsidBandwidthLimitDown:
+ description: The total download bandwidth limit in Kbps. (0 represents no limit.).
+ type: int
+ perSsidBandwidthLimitUp:
+ description: The total upload bandwidth limit in Kbps. (0 represents no limit.).
+ type: int
+ psk:
+ description: The passkey for the SSID. This param is only valid if the authMode
+ is 'psk'.
+ type: str
+ radiusAccountingEnabled:
+ description: Whether or not RADIUS accounting is enabled. This param is only valid
+ if the authMode is 'open-with-radius', '8021x-radius' or 'ipsk-with-radius'.
+ type: bool
+ radiusAccountingInterimInterval:
+ description: The interval (in seconds) in which accounting information is updated
+ and sent to the RADIUS accounting server.
+ type: int
+ radiusAccountingServers:
+ description: The RADIUS accounting 802.1X servers to be used for authentication.
+ This param is only valid if the authMode is 'open-with-radius', '8021x-radius'
+ or 'ipsk-with-radius' and radiusAccountingEnabled is 'true'.
+ elements: dict
+ suboptions:
+ caCertificate:
+ description: Certificate used for authorization for the RADSEC Server.
+ type: str
+ host:
+ description: IP address to which the APs will send RADIUS accounting messages.
+ type: str
+ port:
+ description: Port on the RADIUS server that is listening for accounting messages.
+ type: int
+ radsecEnabled:
+ description: Use RADSEC (TLS over TCP) to connect to this RADIUS accounting
+ server. Requires radiusProxyEnabled.
+ type: bool
+ secret:
+ description: Shared key used to authenticate messages between the APs and RADIUS
+ server.
+ type: str
+ type: list
+ radiusAttributeForGroupPolicies:
+ description: Specify the RADIUS attribute used to look up group policies ('Filter-Id',
+ 'Reply-Message', 'Airespace-ACL-Name' or 'Aruba-User-Role'). Access points must
+ receive this attribute in the RADIUS Access-Accept message.
+ type: str
+ radiusAuthenticationNasId:
+ description: The template of the NAS identifier to be used for RADIUS authentication
+ (ex. $NODE_MAC$ $VAP_NUM$).
+ type: str
+ radiusCalledStationId:
+ description: The template of the called station identifier to be used for RADIUS
+ (ex. $NODE_MAC$ $VAP_NUM$).
+ type: str
+ radiusCoaEnabled:
+ description: If true, Meraki devices will act as a RADIUS Dynamic Authorization
+ Server and will respond to RADIUS Change-of-Authorization and Disconnect messages
+ sent by the RADIUS server.
+ type: bool
+ radiusFailoverPolicy:
+ description: This policy determines how authentication requests should be handled
+ in the event that all of the configured RADIUS servers are unreachable ('Deny
+ access' or 'Allow access').
+ type: str
+ radiusFallbackEnabled:
+ description: Whether or not higher priority RADIUS servers should be retried after
+ 60 seconds.
+ type: bool
+ radiusGuestVlanEnabled:
+ description: Whether or not RADIUS Guest VLAN is enabled. This param is only valid
+ if the authMode is 'open-with-radius' and addressing mode is not set to 'isolated'
+ or 'nat' mode.
+ type: bool
+ radiusGuestVlanId:
+ description: VLAN ID of the RADIUS Guest VLAN. This param is only valid if the authMode
+ is 'open-with-radius' and addressing mode is not set to 'isolated' or 'nat' mode.
+ type: int
+ radiusLoadBalancingPolicy:
+ description: This policy determines which RADIUS server will be contacted first
+ in an authentication attempt and the ordering of any necessary retry attempts
+ ('Strict priority order' or 'Round robin').
+ type: str
+ radiusOverride:
+ description: If true, the RADIUS response can override VLAN tag. This is not valid
+ when ipAssignmentMode is 'NAT mode'.
+ type: bool
+ radiusProxyEnabled:
+ description: If true, Meraki devices will proxy RADIUS messages through the Meraki
+ cloud to the configured RADIUS auth and accounting servers.
+ type: bool
+ radiusServerAttemptsLimit:
+ description: The maximum number of transmit attempts after which a RADIUS server
+ is failed over (must be between 1-5).
+ type: int
+ radiusServerTimeout:
+ description: The amount of time for which a RADIUS client waits for a reply from
+ the RADIUS server (must be between 1-10 seconds).
+ type: int
+ radiusServers:
+ description: The RADIUS 802.1X servers to be used for authentication. This param
+ is only valid if the authMode is 'open-with-radius', '8021x-radius' or 'ipsk-with-radius'.
+ elements: dict
+ suboptions:
+ caCertificate:
+ description: Certificate used for authorization for the RADSEC Server.
+ type: str
+ host:
+ description: IP address of your RADIUS server.
+ type: str
+ openRoamingCertificateId:
+ description: The ID of the Openroaming Certificate attached to radius server.
+ type: int
+ port:
+ description: UDP port the RADIUS server listens on for Access-requests.
+ type: int
+ radsecEnabled:
+ description: Use RADSEC (TLS over TCP) to connect to this RADIUS server. Requires
+ radiusProxyEnabled.
+ type: bool
+ secret:
+ description: RADIUS client shared secret.
+ type: str
+ type: list
+ radiusTestingEnabled:
+ description: If true, Meraki devices will periodically send Access-Request messages
+ to configured RADIUS servers using identity 'meraki_8021x_test' to ensure that
+ the RADIUS servers are reachable.
+ type: bool
+ secondaryConcentratorNetworkId:
+ description: The secondary concentrator to use when the ipAssignmentMode is 'VPN'.
+ If configured, the APs will switch to using this concentrator if the primary concentrator
+ is unreachable. This param is optional. ('disabled' represents no secondary concentrator.).
+ type: str
+ speedBurst:
+ description: The SpeedBurst setting for this SSID'.
+ suboptions:
+ enabled:
+ description: Boolean indicating whether or not to allow users to temporarily
+ exceed the bandwidth limit for short periods while still keeping them under
+ the bandwidth limit over time.
+ type: bool
+ type: dict
+ splashGuestSponsorDomains:
+ description: Array of valid sponsor email domains for sponsored guest splash type.
+ elements: str
+ type: list
+ splashPage:
+ description: The type of splash page for the SSID ('None', 'Click-through splash
+ page', 'Billing', 'Password-protected with Meraki RADIUS', 'Password-protected
+ with custom RADIUS', 'Password-protected with Active Directory', 'Password-protected
+ with LDAP', 'SMS authentication', 'Systems Manager Sentry', 'Facebook Wi-Fi',
+ 'Google OAuth', 'Sponsored guest', 'Cisco ISE' or 'Google Apps domain'). This
+ attribute is not supported for template children.
+ type: str
+ useVlanTagging:
+ description: Whether or not traffic should be directed to use specific VLANs. This
+ param is only valid if the ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'.
+ type: bool
+ visible:
+ description: Boolean indicating whether APs should advertise or hide this SSID.
+ APs will only broadcast this SSID if set to true.
+ type: bool
+ vlanId:
+ description: The VLAN ID used for VLAN tagging. This param is only valid when the
+ ipAssignmentMode is 'Layer 3 roaming with a concentrator' or 'VPN'.
+ type: int
+ walledGardenEnabled:
+ description: Allow access to a configurable list of IP ranges, which users may access
+ prior to sign-on.
+ type: bool
+ walledGardenRanges:
+ description: Specify your walled garden by entering an array of addresses, ranges
+ using CIDR notation, domain names, and domain wildcards (e.g. '192.168.1.1/24',
+ '192.168.37.10/32', 'www.yahoo.com', '*.google.com'). Meraki's splash page is
+ automatically included in your walled garden.
+ elements: str
+ type: list
+ wpaEncryptionMode:
+ description: The types of WPA encryption. ('WPA1 only', 'WPA1 and WPA2', 'WPA2 only',
+ 'WPA3 Transition Mode', 'WPA3 only' or 'WPA3 192-bit Security').
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsid
+ description: Complete reference of the updateNetworkWirelessSsid API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.networks_wireless_ssids:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ name: My SSID
+ networkId: string
+ number: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding.py
new file mode 100644
index 000000000..6ceb22c1c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding.py
@@ -0,0 +1,101 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_bonjour_forwarding
+short_description: Resource module for networks _wireless _ssids _bonjourforwarding
+description:
+- Manage operation update of the resource networks _wireless _ssids _bonjourforwarding.
+- Update the bonjour forwarding setting and rules for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: If true, Bonjour forwarding is enabled on this SSID.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ rules:
+ description: List of bonjour forwarding rules.
+ elements: dict
+ suboptions:
+ description:
+ description: A description for your Bonjour forwarding rule. Optional.
+ type: str
+ services:
+ description: A list of Bonjour services. At least one service must be specified.
+ Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP',
+ 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'.
+ elements: str
+ type: list
+ vlanId:
+ description: The ID of the service VLAN. Required.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidBonjourForwarding
+ description: Complete reference of the updateNetworkWirelessSsidBonjourForwarding API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-bonjour-forwarding
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_bonjour_forwarding,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/bonjourForwarding,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_bonjour_forwarding:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ networkId: string
+ number: string
+ rules:
+ - description: A simple bonjour rule
+ services:
+ - All Services
+ vlanId: '1'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding_info.py
new file mode 100644
index 000000000..6ca1b1a89
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_bonjour_forwarding_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_bonjour_forwarding_info
+short_description: Information module for networks _wireless _ssids _bonjourforwarding
+description:
+- Get all networks _wireless _ssids _bonjourforwarding.
+- List the Bonjour forwarding setting and rules for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidBonjourForwarding
+ description: Complete reference of the getNetworkWirelessSsidBonjourForwarding API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-bonjour-forwarding
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_bonjour_forwarding,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/bonjourForwarding,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _bonjourforwarding
+ cisco.meraki.networks_wireless_ssids_bonjour_forwarding_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies.py
new file mode 100644
index 000000000..146ae798c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_device_type_group_policies
+short_description: Resource module for networks _wireless _ssids _devicetypegrouppolicies
+description:
+- Manage operation update of the resource networks _wireless _ssids _devicetypegrouppolicies.
+- Update the device type group policies for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ deviceTypePolicies:
+ description: List of device type policies.
+ elements: dict
+ suboptions:
+ devicePolicy:
+ description: The device policy. Can be one of 'Allowed', 'Blocked' or 'Group
+ policy'.
+ type: str
+ deviceType:
+ description: The device type. Can be one of 'Android', 'BlackBerry', 'Chrome
+ OS', 'iPad', 'iPhone', 'iPod', 'Mac OS X', 'Windows', 'Windows Phone', 'B&N
+ Nook' or 'Other OS'.
+ type: str
+ groupPolicyId:
+ description: ID of the group policy object.
+ type: int
+ type: list
+ enabled:
+ description: If true, the SSID device type group policies are enabled.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidDeviceTypeGroupPolicies
+ description: Complete reference of the updateNetworkWirelessSsidDeviceTypeGroupPolicies API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-device-type-group-policies
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_device_type_group_policies,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/deviceTypeGroupPolicies,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_device_type_group_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ deviceTypePolicies:
+ - devicePolicy: Allowed
+ deviceType: Android
+ - devicePolicy: Group policy
+ deviceType: iPhone
+ groupPolicyId: 101
+ enabled: true
+ networkId: string
+ number: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies_info.py
new file mode 100644
index 000000000..1e340bb06
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_device_type_group_policies_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_device_type_group_policies_info
+short_description: Information module for networks _wireless _ssids _devicetypegrouppolicies
+description:
+- Get all networks _wireless _ssids _devicetypegrouppolicies.
+- List the device type group policies for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidDeviceTypeGroupPolicies
+ description: Complete reference of the getNetworkWirelessSsidDeviceTypeGroupPolicies API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-device-type-group-policies
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_device_type_group_policies,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/deviceTypeGroupPolicies,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _devicetypegrouppolicies
+ cisco.meraki.networks_wireless_ssids_device_type_group_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override.py
new file mode 100644
index 000000000..f669a8cf0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_eap_override
+short_description: Resource module for networks _wireless _ssids _eapoverride
+description:
+- Manage operation update of the resource networks _wireless _ssids _eapoverride.
+- Update the EAP overridden parameters for an SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ eapolKey:
+ description: EAPOL Key settings.
+ suboptions:
+ retries:
+ description: Maximum number of EAPOL key retries.
+ type: int
+ timeoutInMs:
+ description: EAPOL Key timeout in milliseconds.
+ type: int
+ type: dict
+ identity:
+ description: EAP settings for identity requests.
+ suboptions:
+ retries:
+ description: Maximum number of EAP retries.
+ type: int
+ timeout:
+ description: EAP timeout in seconds.
+ type: int
+ type: dict
+ maxRetries:
+ description: Maximum number of general EAP retries.
+ type: int
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ timeout:
+ description: General EAP timeout in seconds.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidEapOverride
+ description: Complete reference of the updateNetworkWirelessSsidEapOverride API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-eap-override
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_eap_override,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/eapOverride,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_eap_override:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ eapolKey:
+ retries: 5
+ timeoutInMs: 5000
+ identity:
+ retries: 5
+ timeout: 5
+ maxRetries: 5
+ networkId: string
+ number: string
+ timeout: 5
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "timeout": 0,
+ "maxRetries": 0,
+ "identity": {
+ "retries": 0,
+ "timeout": 0
+ },
+ "eapolKey": {
+ "retries": 0,
+ "timeoutInMs": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override_info.py
new file mode 100644
index 000000000..91c3de4fc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_eap_override_info.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_eap_override_info
+short_description: Information module for networks _wireless _ssids _eapoverride
+description:
+- Get all networks _wireless _ssids _eapoverride.
+- Return the EAP overridden parameters for an SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidEapOverride
+ description: Complete reference of the getNetworkWirelessSsidEapOverride API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-eap-override
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_eap_override,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/eapOverride,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _eapoverride
+ cisco.meraki.networks_wireless_ssids_eap_override_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "timeout": 0,
+ "maxRetries": 0,
+ "identity": {
+ "retries": 0,
+ "timeout": 0
+ },
+ "eapolKey": {
+ "retries": 0,
+ "timeoutInMs": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules.py
new file mode 100644
index 000000000..4c8df7919
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_firewall_l3_firewall_rules
+short_description: Resource module for networks _wireless _ssids _firewall l3firewallrules
+description:
+- Manage operation update of the resource networks _wireless _ssids _firewall l3firewallrules.
+- Update the L3 firewall rules of an SSID on an MR network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ allowLanAccess:
+ description: Allow wireless client access to local LAN (boolean value - true allows
+ access and false denies access) (optional).
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ rules:
+ description: An ordered array of the firewall rules for this SSID (not including
+ the local LAN access rule or the default rule).
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ destCidr:
+ description: Comma-separated list of destination IP address(es) (in IP or CIDR
+ notation), fully-qualified domain names (FQDN) or 'any'.
+ type: str
+ destPort:
+ description: Comma-separated list of destination port(s) (integer in the range
+ 1-65535), or 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or
+ 'any').
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidFirewallL3FirewallRules
+ description: Complete reference of the updateNetworkWirelessSsidFirewallL3FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-firewall-l3-firewall-rules
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_firewall_l3_firewall_rules,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/firewall/l3FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_firewall_l3_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ number: string
+ rules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules_info.py
new file mode 100644
index 000000000..a0980ff8a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l3_firewall_rules_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_firewall_l3_firewall_rules_info
+short_description: Information module for networks _wireless _ssids _firewall l3firewallrules
+description:
+- Get all networks _wireless _ssids _firewall l3firewallrules.
+- Return the L3 firewall rules for an SSID on an MR network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidFirewallL3FirewallRules
+ description: Complete reference of the getNetworkWirelessSsidFirewallL3FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-firewall-l3-firewall-rules
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_firewall_l3_firewall_rules,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/firewall/l3FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _firewall l3firewallrules
+ cisco.meraki.networks_wireless_ssids_firewall_l3_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules.py
new file mode 100644
index 000000000..c31b070d6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules.py
@@ -0,0 +1,106 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_firewall_l7_firewall_rules
+short_description: Resource module for networks _wireless _ssids _firewall l7firewallrules
+description:
+- Manage operation update of the resource networks _wireless _ssids _firewall l7firewallrules.
+- Update the L7 firewall rules of an SSID on an MR network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ rules:
+ description: An array of L7 firewall rules for this SSID. Rules will get applied
+ in the same order user has specified in request. Empty array will clear the L7
+ firewall rule configuration.
+ elements: dict
+ suboptions:
+ policy:
+ description: '''Deny'' traffic specified by this rule.'
+ type: str
+ type:
+ description: Type of the L7 firewall rule. One of 'application', 'applicationCategory',
+ 'host', 'port', 'ipRange'.
+ type: str
+ value:
+ description: The value of what needs to get blocked. Format of the value varies
+ depending on type of the firewall rule selected.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidFirewallL7FirewallRules
+ description: Complete reference of the updateNetworkWirelessSsidFirewallL7FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-firewall-l7-firewall-rules
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_firewall_l7_firewall_rules,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_firewall_l7_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networkId: string
+ number: string
+ rules:
+ - policy: deny
+ type: host
+ value: google.com
+ - policy: deny
+ type: port
+ value: '23'
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24
+ - policy: deny
+ type: ipRange
+ value: 10.11.12.00/24:5555
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules_info.py
new file mode 100644
index 000000000..b70038bc4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_firewall_l7_firewall_rules_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_firewall_l7_firewall_rules_info
+short_description: Information module for networks _wireless _ssids _firewall l7firewallrules
+description:
+- Get all networks _wireless _ssids _firewall l7firewallrules.
+- Return the L7 firewall rules for an SSID on an MR network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidFirewallL7FirewallRules
+ description: Complete reference of the getNetworkWirelessSsidFirewallL7FirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-firewall-l7-firewall-rules
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_firewall_l7_firewall_rules,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _firewall l7firewallrules
+ cisco.meraki.networks_wireless_ssids_firewall_l7_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20.py
new file mode 100644
index 000000000..d2ec55970
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20.py
@@ -0,0 +1,196 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_hotspot20
+short_description: Resource module for networks _wireless _ssids _hotspot20
+description:
+- Manage operation update of the resource networks _wireless _ssids _hotspot20.
+- Update the Hotspot 2.0 settings of an SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ domains:
+ description: An array of domain names.
+ elements: str
+ type: list
+ enabled:
+ description: Whether or not Hotspot 2.0 for this SSID is enabled.
+ type: bool
+ mccMncs:
+ description: An array of MCC/MNC pairs.
+ elements: dict
+ suboptions:
+ mcc:
+ description: MCC value.
+ type: str
+ mnc:
+ description: MNC value.
+ type: str
+ type: list
+ naiRealms:
+ description: An array of NAI realms.
+ elements: dict
+ suboptions:
+ format:
+ description: The format for the realm ('1' or '0').
+ type: str
+ methods:
+ description: An array of EAP methods for the realm.
+ elements: dict
+ suboptions:
+ authenticationTypes:
+ description: The authentication types for the method. These should be formatted
+ as an object with the EAP method category in camelcase as the key and
+ the list of types as the value (nonEapInnerAuthentication Reserved, PAP,
+ CHAP, MSCHAP, MSCHAPV2; eapInnerAuthentication EAP-TLS, EAP-SIM, EAP-AKA,
+ EAP-TTLS with MSCHAPv2; credentials SIM, USIM, NFC Secure Element, Hardware
+ Token, Softoken, Certificate, username/password, none, Reserved, Vendor
+ Specific; tunneledEapMethodCredentials SIM, USIM, NFC Secure Element,
+ Hardware Token, Softoken, Certificate, username/password, Reserved, Anonymous,
+ Vendor Specific).
+ type: dict
+ id:
+ description: ID of method.
+ type: str
+ type: list
+ realm:
+ description: The name of the realm.
+ type: str
+ type: list
+ networkAccessType:
+ description: The network type of this SSID ('Private network', 'Private network
+ with guest access', 'Chargeable public network', 'Free public network', 'Personal
+ device network', 'Emergency services only network', 'Test or experimental', 'Wildcard').
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ operator:
+ description: Operator settings for this SSID.
+ suboptions:
+ name:
+ description: Operator name.
+ type: str
+ type: dict
+ roamConsortOis:
+ description: An array of roaming consortium OIs (hexadecimal number 3-5 octets in
+ length).
+ elements: str
+ type: list
+ venue:
+ description: Venue settings for this SSID.
+ suboptions:
+ name:
+ description: Venue name.
+ type: str
+ type:
+ description: Venue type ('Unspecified', 'Unspecified Assembly', 'Arena', 'Stadium',
+ 'Passenger Terminal', 'Amphitheater', 'Amusement Park', 'Place of Worship',
+ 'Convention Center', 'Library', 'Museum', 'Restaurant', 'Theater', 'Bar',
+ 'Coffee Shop', 'Zoo or Aquarium', 'Emergency Coordination Center', 'Unspecified
+ Business', 'Doctor or Dentist office', 'Bank', 'Fire Station', 'Police Station',
+ 'Post Office', 'Professional Office', 'Research and Development Facility',
+ 'Attorney Office', 'Unspecified Educational', 'School, Primary', 'School,
+ Secondary', 'University or College', 'Unspecified Factory and Industrial',
+ 'Factory', 'Unspecified Institutional', 'Hospital', 'Long-Term Care Facility',
+ 'Alcohol and Drug Rehabilitation Center', 'Group Home', 'Prison or Jail',
+ 'Unspecified Mercantile', 'Retail Store', 'Grocery Market', 'Automotive Service
+ Station', 'Shopping Mall', 'Gas Station', 'Unspecified Residential', 'Private
+ Residence', 'Hotel or Motel', 'Dormitory', 'Boarding House', 'Unspecified
+ Storage', 'Unspecified Utility and Miscellaneous', 'Unspecified Vehicular',
+ 'Automobile or Truck', 'Airplane', 'Bus', 'Ferry', 'Ship or Boat', 'Train',
+ 'Motor Bike', 'Unspecified Outdoor', 'Muni-mesh Network', 'City Park', 'Rest
+ Area', 'Traffic Control', 'Bus Stop', 'Kiosk').
+ type: str
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidHotspot20
+ description: Complete reference of the updateNetworkWirelessSsidHotspot20 API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-hotspot20
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_hotspot20,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/hotspot20,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_hotspot20:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ domains:
+ - meraki.local
+ - domain2.com
+ enabled: true
+ mccMncs:
+ - mcc: '123'
+ mnc: '456'
+ - mcc: '563'
+ mnc: '232'
+ naiRealms:
+ - format: '1'
+ methods:
+ - authenticationTypes:
+ credentials: []
+ eapInnerAuthentication:
+ - EAP-TTLS with MSCHAPv2
+ nonEapInnerAuthentication:
+ - MSCHAP
+ tunneledEapMethodCredentials: []
+ id: '1'
+ name: Realm 1
+ networkAccessType: Private network
+ networkId: string
+ number: string
+ operator:
+ name: Meraki Product Management
+ roamConsortOis:
+ - ABC123
+ - 456EFG
+ venue:
+ name: SF Branch
+ type: Unspecified Assembly
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20_info.py
new file mode 100644
index 000000000..fa08c602e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_hotspot20_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_hotspot20_info
+short_description: Information module for networks _wireless _ssids _hotspot20
+description:
+- Get all networks _wireless _ssids _hotspot20.
+- Return the Hotspot 2.0 settings for an SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidHotspot20
+ description: Complete reference of the getNetworkWirelessSsidHotspot20 API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-hotspot20
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_hotspot20,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/hotspot20,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _hotspot20
+ cisco.meraki.networks_wireless_ssids_hotspot20_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks.py
new file mode 100644
index 000000000..6418280d4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks.py
@@ -0,0 +1,168 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_identity_psks
+short_description: Resource module for networks _wireless _ssids _identitypsks
+description:
+- Manage operations create, update and delete of the resource networks _wireless _ssids _identitypsks.
+- Create an Identity PSK.
+- Delete an Identity PSK.
+- Update an Identity PSK.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ expiresAt:
+ description: Timestamp for when the Identity PSK expires. Will not expire if left
+ blank.
+ type: str
+ groupPolicyId:
+ description: The group policy to be applied to clients.
+ type: str
+ identityPskId:
+ description: IdentityPskId path parameter. Identity psk ID.
+ type: str
+ name:
+ description: The name of the Identity PSK.
+ type: str
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ passphrase:
+ description: The passphrase for client authentication. If left blank, one will be
+ auto-generated.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless createNetworkWirelessSsidIdentityPsk
+ description: Complete reference of the createNetworkWirelessSsidIdentityPsk API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-network-wireless-ssid-identity-psk
+- name: Cisco Meraki documentation for wireless deleteNetworkWirelessSsidIdentityPsk
+ description: Complete reference of the deleteNetworkWirelessSsidIdentityPsk API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-network-wireless-ssid-identity-psk
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidIdentityPsk
+ description: Complete reference of the updateNetworkWirelessSsidIdentityPsk API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-identity-psk
+notes:
+ - SDK Method used are
+ wireless.Wireless.create_network_wireless_ssid_identity_psk,
+ wireless.Wireless.delete_network_wireless_ssid_identity_psk,
+ wireless.Wireless.update_network_wireless_ssid_identity_psk,
+
+ - Paths used are
+ post /networks/{networkId}/wireless/ssids/{number}/identityPsks,
+ delete /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId},
+ put /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.networks_wireless_ssids_identity_psks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ expiresAt: '2018-02-11T00:00:00.090210Z'
+ groupPolicyId: '101'
+ id: '1284392014819'
+ name: Sample Identity PSK
+ networkId: string
+ number: string
+ passphrase: secret
+
+- name: Update by id
+ cisco.meraki.networks_wireless_ssids_identity_psks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ expiresAt: '2018-02-11T00:00:00.090210Z'
+ groupPolicyId: '101'
+ id: '1284392014819'
+ identityPskId: string
+ name: Sample Identity PSK
+ networkId: string
+ number: string
+ passphrase: secret
+
+- name: Delete by id
+ cisco.meraki.networks_wireless_ssids_identity_psks:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ identityPskId: string
+ networkId: string
+ number: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks_info.py
new file mode 100644
index 000000000..091eed857
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_identity_psks_info.py
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_identity_psks_info
+short_description: Information module for networks _wireless _ssids _identitypsks
+description:
+- Get all networks _wireless _ssids _identitypsks.
+- Get networks _wireless _ssids _identitypsks by id.
+- List all Identity PSKs in a wireless network.
+- Return an Identity PSK.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+ identityPskId:
+ description:
+ - IdentityPskId path parameter. Identity psk ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidIdentityPsk
+ description: Complete reference of the getNetworkWirelessSsidIdentityPsk API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-identity-psk
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidIdentityPsks
+ description: Complete reference of the getNetworkWirelessSsidIdentityPsks API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-identity-psks
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_identity_psk,
+ wireless.Wireless.get_network_wireless_ssid_identity_psks,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/identityPsks,
+ get /networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _identitypsks
+ cisco.meraki.networks_wireless_ssids_identity_psks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+- name: Get networks _wireless _ssids _identitypsks by id
+ cisco.meraki.networks_wireless_ssids_identity_psks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ identityPskId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "id": "string",
+ "groupPolicyId": "string",
+ "passphrase": "string",
+ "wifiPersonalNetworkId": "string",
+ "email": "string",
+ "expiresAt": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_info.py
new file mode 100644
index 000000000..4b67150ae
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_info
+short_description: Information module for networks _wireless _ssids
+description:
+- Get all networks _wireless _ssids.
+- Get networks _wireless _ssids by id.
+- List the MR SSIDs in a network.
+- Return a single MR SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsid
+ description: Complete reference of the getNetworkWirelessSsid API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsids
+ description: Complete reference of the getNetworkWirelessSsids API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssids
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid,
+ wireless.Wireless.get_network_wireless_ssids,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids,
+ get /networks/{networkId}/wireless/ssids/{number},
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids
+ cisco.meraki.networks_wireless_ssids_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ register: result
+
+- name: Get networks _wireless _ssids by id
+ cisco.meraki.networks_wireless_ssids_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules.py
new file mode 100644
index 000000000..aeb9bb751
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_schedules
+short_description: Resource module for networks _wireless _ssids _schedules
+description:
+- Manage operation update of the resource networks _wireless _ssids _schedules.
+- Update the outage schedule for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: If true, the SSID outage schedule is enabled.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ ranges:
+ description: List of outage ranges. Has a start date and time, and end date and
+ time. If this parameter is passed in along with rangesInSeconds parameter, this
+ will take precedence.
+ elements: dict
+ suboptions:
+ endDay:
+ description: Day of when the outage ends. Can be either full day name, or three
+ letter abbreviation.
+ type: str
+ endTime:
+ description: 24 hour time when the outage ends.
+ type: str
+ startDay:
+ description: Day of when the outage starts. Can be either full day name, or
+ three letter abbreviation.
+ type: str
+ startTime:
+ description: 24 hour time when the outage starts.
+ type: str
+ type: list
+ rangesInSeconds:
+ description: List of outage ranges in seconds since Sunday at Midnight. Has a start
+ and end. If this parameter is passed in along with the ranges parameter, ranges
+ will take precedence.
+ elements: dict
+ suboptions:
+ end:
+ description: Seconds since Sunday at midnight when that outage range ends.
+ type: int
+ start:
+ description: Seconds since Sunday at midnight when the outage range starts.
+ type: int
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidSchedules
+ description: Complete reference of the updateNetworkWirelessSsidSchedules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-schedules
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_schedules,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/schedules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_schedules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ networkId: string
+ number: string
+ ranges:
+ - endDay: Tuesday
+ endTime: 05:00
+ startDay: Tuesday
+ startTime: 01:00
+ - endDay: monday
+ endTime: 05:00
+ startDay: Fri
+ startTime: '19:00'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules_info.py
new file mode 100644
index 000000000..f77aba8b9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_schedules_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_schedules_info
+short_description: Information module for networks _wireless _ssids _schedules
+description:
+- Get all networks _wireless _ssids _schedules.
+- List the outage schedule for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidSchedules
+ description: Complete reference of the getNetworkWirelessSsidSchedules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-schedules
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_schedules,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/schedules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _schedules
+ cisco.meraki.networks_wireless_ssids_schedules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings.py
new file mode 100644
index 000000000..c238ed192
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings.py
@@ -0,0 +1,322 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_splash_settings
+short_description: Resource module for networks _wireless _ssids _splash _settings
+description:
+- Manage operation update of the resource networks _wireless _ssids _splash _settings.
+- Modify the splash page settings for the given SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ allowSimultaneousLogins:
+ description: Whether or not to allow simultaneous logins from different devices.
+ type: bool
+ billing:
+ description: Details associated with billing splash.
+ suboptions:
+ freeAccess:
+ description: Details associated with a free access plan with limits.
+ suboptions:
+ durationInMinutes:
+ description: How long a device can use a network for free.
+ type: int
+ enabled:
+ description: Whether or not free access is enabled.
+ type: bool
+ type: dict
+ prepaidAccessFastLoginEnabled:
+ description: Whether or not billing uses the fast login prepaid access option.
+ type: bool
+ replyToEmailAddress:
+ description: The email address that receives replies from clients.
+ type: str
+ type: dict
+ blockAllTrafficBeforeSignOn:
+ description: How restricted allowing traffic should be. If true, all traffic types
+ are blocked until the splash page is acknowledged. If false, all non-HTTP traffic
+ is allowed before the splash page is acknowledged.
+ type: bool
+ controllerDisconnectionBehavior:
+ description: How login attempts should be handled when the controller is unreachable.
+ Can be either 'open', 'restricted', or 'default'.
+ type: str
+ guestSponsorship:
+ description: Details associated with guest sponsored splash.
+ suboptions:
+ durationInMinutes:
+ description: Duration in minutes of sponsored guest authorization. Must be between
+ 1 and 60480 (6 weeks).
+ type: int
+ guestCanRequestTimeframe:
+ description: Whether or not guests can specify how much time they are requesting.
+ type: bool
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ redirectUrl:
+ description: The custom redirect URL where the users will go after the splash page.
+ type: str
+ sentryEnrollment:
+ description: Systems Manager sentry enrollment splash settings.
+ suboptions:
+ enforcedSystems:
+ description: The system types that the Sentry enforces. Must be included in
+ 'iOS, 'Android', 'macOS', and 'Windows'.
+ elements: str
+ type: list
+ strength:
+ description: The strength of the enforcement of selected system types. Must
+ be one of 'focused', 'click-through', and 'strict'.
+ type: str
+ systemsManagerNetwork:
+ description: Systems Manager network targeted for sentry enrollment.
+ suboptions:
+ id:
+ description: The network ID of the Systems Manager network.
+ type: str
+ type: dict
+ type: dict
+ splashImage:
+ description: The image used in the splash page.
+ suboptions:
+ extension:
+ description: The extension of the image file.
+ type: str
+ image:
+ description: Properties for setting a new image.
+ suboptions:
+ contents:
+ description: The file contents (a base 64 encoded string) of your new image.
+ type: str
+ format:
+ description: The format of the encoded contents. Supported formats are 'png',
+ 'gif', and jpg'.
+ type: str
+ type: dict
+ md5:
+ description: The MD5 value of the image file. Setting this to null will remove
+ the image from the splash page.
+ type: str
+ type: dict
+ splashLogo:
+ description: The logo used in the splash page.
+ suboptions:
+ extension:
+ description: The extension of the logo file.
+ type: str
+ image:
+ description: Properties for setting a new image.
+ suboptions:
+ contents:
+ description: The file contents (a base 64 encoded string) of your new logo.
+ type: str
+ format:
+ description: The format of the encoded contents. Supported formats are 'png',
+ 'gif', and jpg'.
+ type: str
+ type: dict
+ md5:
+ description: The MD5 value of the logo file. Setting this to null will remove
+ the logo from the splash page.
+ type: str
+ type: dict
+ splashPrepaidFront:
+ description: The prepaid front image used in the splash page.
+ suboptions:
+ extension:
+ description: The extension of the prepaid front image file.
+ type: str
+ image:
+ description: Properties for setting a new image.
+ suboptions:
+ contents:
+ description: The file contents (a base 64 encoded string) of your new prepaid
+ front.
+ type: str
+ format:
+ description: The format of the encoded contents. Supported formats are 'png',
+ 'gif', and jpg'.
+ type: str
+ type: dict
+ md5:
+ description: The MD5 value of the prepaid front image file. Setting this to
+ null will remove the prepaid front from the splash page.
+ type: str
+ type: dict
+ splashTimeout:
+ description: Splash timeout in minutes. This will determine how often users will
+ see the splash page.
+ type: int
+ splashUrl:
+ description: Optional The custom splash URL of the click-through splash page. Note
+ that the URL can be configured without necessarily being used. In order to enable
+ the custom URL, see 'useSplashUrl'.
+ type: str
+ useRedirectUrl:
+ description: The Boolean indicating whether the the user will be redirected to the
+ custom redirect URL after the splash page. A custom redirect URL must be set if
+ this is true.
+ type: bool
+ useSplashUrl:
+ description: Optional Boolean indicating whether the users will be redirected to
+ the custom splash url. A custom splash URL must be set if this is true. Note that
+ depending on your SSID's access control settings, it may not be possible to use
+ the custom splash URL.
+ type: bool
+ welcomeMessage:
+ description: The welcome message for the users on the splash page.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidSplashSettings
+ description: Complete reference of the updateNetworkWirelessSsidSplashSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-splash-settings
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_splash_settings,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/splash/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_splash_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ allowSimultaneousLogins: false
+ billing:
+ freeAccess:
+ durationInMinutes: 120
+ enabled: true
+ prepaidAccessFastLoginEnabled: true
+ replyToEmailAddress: user@email.com
+ blockAllTrafficBeforeSignOn: false
+ controllerDisconnectionBehavior: default
+ guestSponsorship:
+ durationInMinutes: 30
+ guestCanRequestTimeframe: false
+ networkId: string
+ number: string
+ redirectUrl: https://example.com
+ sentryEnrollment:
+ enforcedSystems:
+ - iOS
+ strength: focused
+ systemsManagerNetwork:
+ id: N_1234
+ splashImage:
+ extension: jpg
+ image:
+ contents: Q2lzY28gTWVyYWtp
+ format: jpg
+ md5: 542cccac8d7dedee0f185311d154d194
+ splashLogo:
+ extension: jpg
+ image:
+ contents: Q2lzY28gTWVyYWtp
+ format: jpg
+ md5: abcd1234
+ splashPrepaidFront:
+ extension: jpg
+ image:
+ contents: Q2lzY28gTWVyYWtp
+ format: jpg
+ md5: 542cccac8d7dedee0f185311d154d194
+ splashTimeout: 1440
+ splashUrl: https://www.custom_splash_url.com
+ useRedirectUrl: true
+ useSplashUrl: true
+ welcomeMessage: Welcome!
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "ssidNumber": 0,
+ "splashPage": "string",
+ "useSplashUrl": true,
+ "splashUrl": "string",
+ "splashTimeout": 0,
+ "redirectUrl": "string",
+ "useRedirectUrl": true,
+ "welcomeMessage": "string",
+ "splashLogo": {
+ "md5": "string",
+ "extension": "string"
+ },
+ "splashImage": {
+ "md5": "string",
+ "extension": "string"
+ },
+ "splashPrepaidFront": {
+ "md5": "string",
+ "extension": "string"
+ },
+ "guestSponsorship": {
+ "durationInMinutes": 0,
+ "guestCanRequestTimeframe": true
+ },
+ "blockAllTrafficBeforeSignOn": true,
+ "controllerDisconnectionBehavior": "string",
+ "allowSimultaneousLogins": true,
+ "billing": {
+ "freeAccess": {
+ "enabled": true,
+ "durationInMinutes": 0
+ },
+ "prepaidAccessFastLoginEnabled": true,
+ "replyToEmailAddress": "string"
+ },
+ "sentryEnrollment": {
+ "systemsManagerNetwork": {
+ "id": "string"
+ },
+ "strength": "string",
+ "enforcedSystems": [
+ "string"
+ ]
+ },
+ "selfRegistration": {
+ "enabled": true,
+ "authorizationType": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings_info.py
new file mode 100644
index 000000000..f5950e0ac
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_splash_settings_info.py
@@ -0,0 +1,129 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_splash_settings_info
+short_description: Information module for networks _wireless _ssids _splash _settings
+description:
+- Get all networks _wireless _ssids _splash _settings.
+- Display the splash page settings for the given SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidSplashSettings
+ description: Complete reference of the getNetworkWirelessSsidSplashSettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-splash-settings
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_splash_settings,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/splash/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _splash _settings
+ cisco.meraki.networks_wireless_ssids_splash_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "ssidNumber": 0,
+ "splashPage": "string",
+ "useSplashUrl": true,
+ "splashUrl": "string",
+ "splashTimeout": 0,
+ "redirectUrl": "string",
+ "useRedirectUrl": true,
+ "welcomeMessage": "string",
+ "splashLogo": {
+ "md5": "string",
+ "extension": "string"
+ },
+ "splashImage": {
+ "md5": "string",
+ "extension": "string"
+ },
+ "splashPrepaidFront": {
+ "md5": "string",
+ "extension": "string"
+ },
+ "guestSponsorship": {
+ "durationInMinutes": 0,
+ "guestCanRequestTimeframe": true
+ },
+ "blockAllTrafficBeforeSignOn": true,
+ "controllerDisconnectionBehavior": "string",
+ "allowSimultaneousLogins": true,
+ "billing": {
+ "freeAccess": {
+ "enabled": true,
+ "durationInMinutes": 0
+ },
+ "prepaidAccessFastLoginEnabled": true,
+ "replyToEmailAddress": "string"
+ },
+ "sentryEnrollment": {
+ "systemsManagerNetwork": {
+ "id": "string"
+ },
+ "strength": "string",
+ "enforcedSystems": [
+ "string"
+ ]
+ },
+ "selfRegistration": {
+ "enabled": true,
+ "authorizationType": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules.py
new file mode 100644
index 000000000..ec03f02c9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules.py
@@ -0,0 +1,162 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_traffic_shaping_rules
+short_description: Resource module for networks _wireless _ssids _trafficshaping _rules
+description:
+- Manage operation update of the resource networks _wireless _ssids _trafficshaping _rules.
+- Update the traffic shaping settings for an SSID on an MR network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ defaultRulesEnabled:
+ description: Whether default traffic shaping rules are enabled (true) or disabled
+ (false). There are 4 default rules, which can be seen on your network's traffic
+ shaping page. Note that default rules count against the rule limit of 8.
+ type: bool
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ rules:
+ description: An array of traffic shaping rules. Rules are applied in the order that
+ they are specified in. An empty list (or null) means no rules. Note that you are
+ allowed a maximum of 8 rules.
+ elements: dict
+ suboptions:
+ definitions:
+ description: A list of objects describing the definitions of your traffic shaping
+ rule. At least one definition is required.
+ elements: dict
+ suboptions:
+ type:
+ description: The type of definition. Can be one of 'application', 'applicationCategory',
+ 'host', 'port', 'ipRange' or 'localNet'.
+ type: str
+ value:
+ description: If "type" is 'host', 'port', 'ipRange' or 'localNet', then
+ "value" must be a string, matching either a hostname (e.g. "somesite.com"),
+ a port (e.g. 8080), or an IP range ("192.1.0.0", "192.1.0.0/16", or "10.1.0.0/16
+ 80"). 'localNet' also supports CIDR notation, excluding custom ports.
+ If "type" is 'application' or 'applicationCategory', then "value" must
+ be an object with the structure { "id" "meraki layer7/..." }, where "id"
+ is the application category or application ID (for a list of IDs for your
+ network, use the trafficShaping/applicationCategories endpoint).
+ type: str
+ type: list
+ dscpTagValue:
+ description: The DSCP tag applied by your rule. Null means 'Do not change DSCP
+ tag'. For a list of possible tag values, use the trafficShaping/dscpTaggingOptions
+ endpoint.
+ type: int
+ pcpTagValue:
+ description: The PCP tag applied by your rule. Can be 0 (lowest priority) through
+ 7 (highest priority). Null means 'Do not set PCP tag'.
+ type: int
+ perClientBandwidthLimits:
+ description: An object describing the bandwidth settings for your rule.
+ suboptions:
+ bandwidthLimits:
+ description: The bandwidth limits object, specifying the upload ('limitUp')
+ and download ('limitDown') speed in Kbps. These are only enforced if 'settings'
+ is set to 'custom'.
+ suboptions:
+ limitDown:
+ description: The maximum download limit (integer, in Kbps).
+ type: int
+ limitUp:
+ description: The maximum upload limit (integer, in Kbps).
+ type: int
+ type: dict
+ settings:
+ description: How bandwidth limits are applied by your rule. Can be one of
+ 'network default', 'ignore' or 'custom'.
+ type: str
+ type: dict
+ type: list
+ trafficShapingEnabled:
+ description: Whether traffic shaping rules are applied to clients on your SSID.
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidTrafficShapingRules
+ description: Complete reference of the updateNetworkWirelessSsidTrafficShapingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-traffic-shaping-rules
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_traffic_shaping_rules,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/trafficShaping/rules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_traffic_shaping_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ defaultRulesEnabled: true
+ networkId: string
+ number: string
+ rules:
+ - definitions:
+ - type: host
+ value: google.com
+ - type: port
+ value: '9090'
+ - type: ipRange
+ value: 192.1.0.0
+ - type: ipRange
+ value: 192.1.0.0/16
+ - type: ipRange
+ value: 10.1.0.0/16:80
+ - type: localNet
+ value: 192.168.0.0/16
+ dscpTagValue: 0
+ pcpTagValue: 0
+ perClientBandwidthLimits:
+ bandwidthLimits:
+ limitDown: 1000000
+ limitUp: 1000000
+ settings: custom
+ trafficShapingEnabled: true
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules_info.py
new file mode 100644
index 000000000..d83212867
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_traffic_shaping_rules_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_traffic_shaping_rules_info
+short_description: Information module for networks _wireless _ssids _trafficshaping _rules
+description:
+- Get all networks _wireless _ssids _trafficshaping _rules.
+- Display the traffic shaping settings for a SSID on an MR network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidTrafficShapingRules
+ description: Complete reference of the getNetworkWirelessSsidTrafficShapingRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-traffic-shaping-rules
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_traffic_shaping_rules,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/trafficShaping/rules,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _trafficshaping _rules
+ cisco.meraki.networks_wireless_ssids_traffic_shaping_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn.py
new file mode 100644
index 000000000..028933127
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn.py
@@ -0,0 +1,149 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_vpn
+short_description: Resource module for networks _wireless _ssids _vpn
+description:
+- Manage operation update of the resource networks _wireless _ssids _vpn.
+- Update the VPN settings for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ concentrator:
+ description: The VPN concentrator settings for this SSID.
+ suboptions:
+ networkId:
+ description: The NAT ID of the concentrator that should be set.
+ type: str
+ vlanId:
+ description: The VLAN that should be tagged for the concentrator.
+ type: int
+ type: dict
+ failover:
+ description: Secondary VPN concentrator settings. This is only used when two VPN
+ concentrators are configured on the SSID.
+ suboptions:
+ heartbeatInterval:
+ description: Idle timer interval in seconds.
+ type: int
+ idleTimeout:
+ description: Idle timer timeout in seconds.
+ type: int
+ requestIp:
+ description: IP addressed reserved on DHCP server where SSID will terminate.
+ type: str
+ type: dict
+ networkId:
+ description: NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description: Number path parameter.
+ type: str
+ splitTunnel:
+ description: The VPN split tunnel settings for this SSID.
+ suboptions:
+ enabled:
+ description: If true, VPN split tunnel is enabled.
+ type: bool
+ rules:
+ description: List of VPN split tunnel rules.
+ elements: dict
+ suboptions:
+ comment:
+ description: Description for this split tunnel rule (optional).
+ type: str
+ destCidr:
+ description: Destination for this split tunnel rule. IP address, fully-qualified
+ domain names (FQDN) or 'any'.
+ type: str
+ destPort:
+ description: Destination port for this split tunnel rule, (integer in the
+ range 1-65535), or 'any'.
+ type: str
+ policy:
+ description: Traffic policy specified for this split tunnel rule, 'allow'
+ or 'deny'.
+ type: str
+ protocol:
+ description: Protocol for this split tunnel rule.
+ type: str
+ type: list
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless updateNetworkWirelessSsidVpn
+ description: Complete reference of the updateNetworkWirelessSsidVpn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-ssid-vpn
+notes:
+ - SDK Method used are
+ wireless.Wireless.update_network_wireless_ssid_vpn,
+
+ - Paths used are
+ put /networks/{networkId}/wireless/ssids/{number}/vpn,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.networks_wireless_ssids_vpn:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ concentrator:
+ name: some concentrator name
+ networkId: N_123
+ vlanId: 44
+ failover:
+ heartbeatInterval: 10
+ idleTimeout: 30
+ requestIp: 1.1.1.1
+ networkId: string
+ number: string
+ splitTunnel:
+ enabled: true
+ rules:
+ - comment: split tunnel rule 1
+ destCidr: 1.1.1.1/32
+ destPort: any
+ policy: allow
+ protocol: Any
+ - comment: split tunnel rule 2
+ destCidr: foo.com
+ destPort: any
+ policy: deny
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn_info.py
new file mode 100644
index 000000000..fd9ec3bee
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_ssids_vpn_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_ssids_vpn_info
+short_description: Information module for networks _wireless _ssids _vpn
+description:
+- Get all networks _wireless _ssids _vpn.
+- List the VPN settings for the SSID.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ number:
+ description:
+ - Number path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessSsidVpn
+ description: Complete reference of the getNetworkWirelessSsidVpn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-ssid-vpn
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_ssid_vpn,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/ssids/{number}/vpn,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _ssids _vpn
+ cisco.meraki.networks_wireless_ssids_vpn_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ networkId: string
+ number: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_usage_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_usage_history_info.py
new file mode 100644
index 000000000..9166b505a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/networks_wireless_usage_history_info.py
@@ -0,0 +1,143 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: networks_wireless_usage_history_info
+short_description: Information module for networks _wireless _usagehistory
+description:
+- Get all networks _wireless _usagehistory.
+- Return AP usage over time for a device or network client.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ networkId:
+ description:
+ - NetworkId path parameter. Network ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 7 days.
+ type: float
+ resolution:
+ description:
+ - >
+ Resolution query parameter. The time resolution in seconds for returned data. The valid resolutions are 300,
+ 600, 1200, 3600, 14400, 86400. The default is 86400.
+ type: int
+ autoResolution:
+ description:
+ - >
+ AutoResolution query parameter. Automatically select a data resolution based on the given timespan; this
+ overrides the value specified by the 'resolution' parameter. The default setting is false.
+ type: bool
+ clientId:
+ description:
+ - >
+ ClientId query parameter. Filter results by network client to return per-device AP usage over time inner
+ joined by the queried client's connection history.
+ type: str
+ deviceSerial:
+ description:
+ - DeviceSerial query parameter. Filter results by device. Requires band.
+ type: str
+ apTag:
+ description:
+ - ApTag query parameter. Filter results by AP tag; either clientId or deviceSerial must be jointly specified.
+ type: str
+ band:
+ description:
+ - Band query parameter. Filter results by band (either '2.4', '5' or '6').
+ type: str
+ ssid:
+ description:
+ - Ssid query parameter. Filter results by SSID number.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getNetworkWirelessUsageHistory
+ description: Complete reference of the getNetworkWirelessUsageHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-network-wireless-usage-history
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_network_wireless_usage_history,
+
+ - Paths used are
+ get /networks/{networkId}/wireless/usageHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all networks _wireless _usagehistory
+ cisco.meraki.networks_wireless_usage_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ resolution: 0
+ autoResolution: True
+ clientId: string
+ deviceSerial: string
+ apTag: string
+ band: string
+ ssid: 0
+ networkId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "totalKbps": 0,
+ "sentKbps": 0,
+ "receivedKbps": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations.py b/ansible_collections/cisco/meraki/plugins/modules/organizations.py
new file mode 100644
index 000000000..9f9e15b11
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations.py
@@ -0,0 +1,192 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations
+short_description: Resource module for organizations
+description:
+- Manage operations create, update and delete of the resource organizations.
+- Create a new organization.
+- Delete an organization.
+- Update an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ api:
+ description: API-specific settings.
+ suboptions:
+ enabled:
+ description: If true, enable the access to the Cisco Meraki Dashboard API.
+ type: bool
+ type: dict
+ management:
+ description: Information about the organization's management system.
+ suboptions:
+ details:
+ description: Details related to organization management, possibly empty.
+ elements: dict
+ suboptions:
+ name:
+ description: Name of management data.
+ type: str
+ value:
+ description: Value of management data.
+ type: str
+ type: list
+ type: dict
+ name:
+ description: The name of the organization.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganization
+ description: Complete reference of the createOrganization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization
+- name: Cisco Meraki documentation for organizations deleteOrganization
+ description: Complete reference of the deleteOrganization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization
+- name: Cisco Meraki documentation for organizations updateOrganization
+ description: Complete reference of the updateOrganization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization,
+ organizations.Organizations.delete_organization,
+ organizations.Organizations.update_organization,
+
+ - Paths used are
+ post /organizations,
+ delete /organizations/{organizationId},
+ put /organizations/{organizationId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ management:
+ details:
+ - name: MSP ID
+ value: '123456'
+ name: My organization
+
+- name: Update by id
+ cisco.meraki.organizations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ api:
+ enabled: true
+ management:
+ details:
+ - name: MSP ID
+ value: '123456'
+ name: My organization
+ organizationId: string
+
+- name: Delete by id
+ cisco.meraki.organizations:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "url": "string",
+ "api": {
+ "enabled": true
+ },
+ "licensing": {
+ "model": "string"
+ },
+ "cloud": {
+ "region": {
+ "name": "string"
+ }
+ },
+ "management": {
+ "details": [
+ {
+ "name": "string",
+ "value": "string"
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches.py
new file mode 100644
index 000000000..3671ddcb6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches.py
@@ -0,0 +1,193 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_action_batches
+short_description: Resource module for organizations _actionbatches
+description:
+- Manage operations create, update and delete of the resource organizations _actionbatches.
+- Create an action batch.
+- Delete an action batch.
+- Update an action batch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ actionBatchId:
+ description: ActionBatchId path parameter. Action batch ID.
+ type: str
+ actions:
+ description: A set of changes to make as part of this action (<a href='https //developer.cisco.com/meraki/api/#...
+ details</a>).
+ elements: dict
+ suboptions:
+ body:
+ description: The body of the action.
+ type: dict
+ operation:
+ description: The operation to be used.
+ type: str
+ resource:
+ description: Unique identifier for the resource to be acted on.
+ type: str
+ type: list
+ confirmed:
+ description: Set to true for immediate execution. Set to false if the action should
+ be previewed before executing. This property cannot be unset once it is true.
+ Defaults to false.
+ type: bool
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ synchronous:
+ description: Set to true to force the batch to run synchronous. There can be at
+ most 20 actions in synchronous batch. Defaults to false.
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationActionBatch
+ description: Complete reference of the createOrganizationActionBatch API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-action-batch
+- name: Cisco Meraki documentation for organizations deleteOrganizationActionBatch
+ description: Complete reference of the deleteOrganizationActionBatch API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-action-batch
+- name: Cisco Meraki documentation for organizations updateOrganizationActionBatch
+ description: Complete reference of the updateOrganizationActionBatch API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-action-batch
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_action_batch,
+ organizations.Organizations.delete_organization_action_batch,
+ organizations.Organizations.update_organization_action_batch,
+
+ - Paths used are
+ post /organizations/{organizationId}/actionBatches,
+ delete /organizations/{organizationId}/actionBatches/{actionBatchId},
+ put /organizations/{organizationId}/actionBatches/{actionBatchId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_action_batches:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ actions:
+ - operation: create
+ resource: /devices/QXXX-XXXX-XXXX/switch/ports/3
+ confirmed: true
+ organizationId: string
+ synchronous: true
+
+- name: Update by id
+ cisco.meraki.organizations_action_batches:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ actionBatchId: string
+ confirmed: true
+ organizationId: string
+ synchronous: false
+
+- name: Delete by id
+ cisco.meraki.organizations_action_batches:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ actionBatchId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "organizationId": "string",
+ "confirmed": true,
+ "synchronous": true,
+ "status": {
+ "completed": true,
+ "failed": true,
+ "errors": [
+ "string"
+ ],
+ "createdResources": [
+ {
+ "id": "string",
+ "uri": "string"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "resource": "string",
+ "operation": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches_info.py
new file mode 100644
index 000000000..11bdde6ad
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_action_batches_info.py
@@ -0,0 +1,141 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_action_batches_info
+short_description: Information module for organizations _actionbatches
+description:
+- Get all organizations _actionbatches.
+- Get organizations _actionbatches by id.
+- Return an action batch.
+- Return the list of action batches in the organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ status:
+ description:
+ - Status query parameter. Filter batches by status. Valid types are pending, completed, and failed.
+ type: str
+ actionBatchId:
+ description:
+ - ActionBatchId path parameter. Action batch ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationActionBatch
+ description: Complete reference of the getOrganizationActionBatch API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-action-batch
+- name: Cisco Meraki documentation for organizations getOrganizationActionBatches
+ description: Complete reference of the getOrganizationActionBatches API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-action-batches
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_action_batch,
+ organizations.Organizations.get_organization_action_batches,
+
+ - Paths used are
+ get /organizations/{organizationId}/actionBatches,
+ get /organizations/{organizationId}/actionBatches/{actionBatchId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _actionbatches
+ cisco.meraki.organizations_action_batches_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ status: string
+ organizationId: string
+ register: result
+
+- name: Get organizations _actionbatches by id
+ cisco.meraki.organizations_action_batches_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ actionBatchId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "organizationId": "string",
+ "confirmed": true,
+ "synchronous": true,
+ "status": {
+ "completed": true,
+ "failed": true,
+ "errors": [
+ "string"
+ ],
+ "createdResources": [
+ {
+ "id": "string",
+ "uri": "string"
+ }
+ ]
+ },
+ "actions": [
+ {
+ "resource": "string",
+ "operation": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls.py
new file mode 100644
index 000000000..4be633cc5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls.py
@@ -0,0 +1,199 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_acls
+short_description: Resource module for organizations _adaptivepolicy _acls
+description:
+- Manage operations create, update and delete of the resource organizations _adaptivepolicy _acls.
+- Creates new adaptive policy ACL.
+- Deletes the specified adaptive policy ACL. Note this adaptive policy ACL will also be removed from policies using it.
+- Updates an adaptive policy ACL.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ aclId:
+ description: AclId path parameter. Acl ID.
+ type: str
+ description:
+ description: Description of the adaptive policy ACL.
+ type: str
+ ipVersion:
+ description: IP version of adpative policy ACL. One of 'any', 'ipv4' or 'ipv6'.
+ type: str
+ name:
+ description: Name of the adaptive policy ACL.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ rules:
+ description: An ordered array of the adaptive policy ACL rules.
+ elements: dict
+ suboptions:
+ dstPort:
+ description: Destination port. Must be in the format of single port '1', port
+ list '1,2' or port range '1-10', and in the range of 1-65535, or 'any'. Default
+ is 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp' or 'any').
+ type: str
+ srcPort:
+ description: Source port. Must be in the format of single port '1', port list
+ '1,2' or port range '1-10', and in the range of 1-65535, or 'any'. Default
+ is 'any'.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationAdaptivePolicyAcl
+ description: Complete reference of the createOrganizationAdaptivePolicyAcl API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-adaptive-policy-acl
+- name: Cisco Meraki documentation for organizations deleteOrganizationAdaptivePolicyAcl
+ description: Complete reference of the deleteOrganizationAdaptivePolicyAcl API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-adaptive-policy-acl
+- name: Cisco Meraki documentation for organizations updateOrganizationAdaptivePolicyAcl
+ description: Complete reference of the updateOrganizationAdaptivePolicyAcl API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-adaptive-policy-acl
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_adaptive_policy_acl,
+ organizations.Organizations.delete_organization_adaptive_policy_acl,
+ organizations.Organizations.update_organization_adaptive_policy_acl,
+
+ - Paths used are
+ post /organizations/{organizationId}/adaptivePolicy/acls,
+ delete /organizations/{organizationId}/adaptivePolicy/acls/{aclId},
+ put /organizations/{organizationId}/adaptivePolicy/acls/{aclId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_adaptive_policy_acls:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ description: Blocks sensitive web traffic
+ ipVersion: ipv6
+ name: Block sensitive web traffic
+ organizationId: string
+ rules:
+ - dstPort: 22-30
+ policy: deny
+ protocol: tcp
+ srcPort: 1,33
+
+- name: Update by id
+ cisco.meraki.organizations_adaptive_policy_acls:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ aclId: string
+ description: Blocks sensitive web traffic
+ ipVersion: ipv6
+ name: Block sensitive web traffic
+ organizationId: string
+ rules:
+ - dstPort: 22-30
+ policy: deny
+ protocol: tcp
+ srcPort: 1,33
+
+- name: Delete by id
+ cisco.meraki.organizations_adaptive_policy_acls:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ aclId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "aclId": "string",
+ "name": "string",
+ "description": "string",
+ "ipVersion": "string",
+ "rules": [
+ {
+ "policy": "string",
+ "protocol": "string",
+ "srcPort": "string",
+ "dstPort": "string"
+ }
+ ],
+ "createdAt": "string",
+ "updatedAt": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls_info.py
new file mode 100644
index 000000000..088e6e37a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_acls_info.py
@@ -0,0 +1,127 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_acls_info
+short_description: Information module for organizations _adaptivepolicy _acls
+description:
+- Get all organizations _adaptivepolicy _acls.
+- Get organizations _adaptivepolicy _acls by id.
+- List adaptive policy ACLs in a organization.
+- Returns the adaptive policy ACL information.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ aclId:
+ description:
+ - AclId path parameter. Acl ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyAcl
+ description: Complete reference of the getOrganizationAdaptivePolicyAcl API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-acl
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyAcls
+ description: Complete reference of the getOrganizationAdaptivePolicyAcls API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-acls
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_adaptive_policy_acl,
+ organizations.Organizations.get_organization_adaptive_policy_acls,
+
+ - Paths used are
+ get /organizations/{organizationId}/adaptivePolicy/acls,
+ get /organizations/{organizationId}/adaptivePolicy/acls/{aclId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _adaptivepolicy _acls
+ cisco.meraki.organizations_adaptive_policy_acls_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _adaptivepolicy _acls by id
+ cisco.meraki.organizations_adaptive_policy_acls_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ aclId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "aclId": "string",
+ "name": "string",
+ "description": "string",
+ "ipVersion": "string",
+ "rules": [
+ {
+ "policy": "string",
+ "protocol": "string",
+ "srcPort": "string",
+ "dstPort": "string"
+ }
+ ],
+ "createdAt": "string",
+ "updatedAt": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups.py
new file mode 100644
index 000000000..63238c804
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups.py
@@ -0,0 +1,177 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_groups
+short_description: Resource module for organizations _adaptivepolicy _groups
+description:
+- Manage operations create, update and delete of the resource organizations _adaptivepolicy _groups.
+- Creates a new adaptive policy group.
+- Deletes the specified adaptive policy group and any associated policies and references.
+- Updates an adaptive policy group. If updating "Infrastructure", only the SGT is allowed. Cannot update "Unknown".
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ description:
+ description: Description of the group (default "").
+ type: str
+ id:
+ description: Id path parameter.
+ type: str
+ name:
+ description: Name of the group.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ policyObjects:
+ description: The policy objects that belong to this group; traffic from addresses
+ specified by these policy objects will be tagged with this group's SGT value if
+ no other tagging scheme is being used (each requires one unique attribute) (default
+ ).
+ elements: dict
+ suboptions:
+ id:
+ description: The ID of the policy object.
+ type: str
+ name:
+ description: The name of the policy object.
+ type: str
+ type: list
+ sgt:
+ description: SGT value of the group.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationAdaptivePolicyGroup
+ description: Complete reference of the createOrganizationAdaptivePolicyGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-adaptive-policy-group
+- name: Cisco Meraki documentation for organizations deleteOrganizationAdaptivePolicyGroup
+ description: Complete reference of the deleteOrganizationAdaptivePolicyGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-adaptive-policy-group
+- name: Cisco Meraki documentation for organizations updateOrganizationAdaptivePolicyGroup
+ description: Complete reference of the updateOrganizationAdaptivePolicyGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-adaptive-policy-group
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_adaptive_policy_group,
+ organizations.Organizations.delete_organization_adaptive_policy_group,
+ organizations.Organizations.update_organization_adaptive_policy_group,
+
+ - Paths used are
+ post /organizations/{organizationId}/adaptivePolicy/groups,
+ delete /organizations/{organizationId}/adaptivePolicy/groups/{id},
+ put /organizations/{organizationId}/adaptivePolicy/groups/{id},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_adaptive_policy_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ description: Group of XYZ Corp Employees
+ isDefaultGroup: false
+ name: Employee Group
+ organizationId: string
+ policyObjects:
+ - id: '2345'
+ name: Example Policy Object
+ requiredIpMappings: []
+ sgt: 1000
+
+- name: Update by id
+ cisco.meraki.organizations_adaptive_policy_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ description: Group of XYZ Corp Employees
+ id: string
+ isDefaultGroup: false
+ name: Employee Group
+ organizationId: string
+ policyObjects:
+ - id: '2345'
+ name: Example Policy Object
+ requiredIpMappings: []
+ sgt: 1000
+
+- name: Delete by id
+ cisco.meraki.organizations_adaptive_policy_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ id: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups_info.py
new file mode 100644
index 000000000..6dc20e932
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_groups_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_groups_info
+short_description: Information module for organizations _adaptivepolicy _groups
+description:
+- Get all organizations _adaptivepolicy _groups.
+- Get organizations _adaptivepolicy _groups by id.
+- List adaptive policy groups in a organization.
+- Returns an adaptive policy group.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ id:
+ description:
+ - Id path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyGroup
+ description: Complete reference of the getOrganizationAdaptivePolicyGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-group
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyGroups
+ description: Complete reference of the getOrganizationAdaptivePolicyGroups API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-groups
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_adaptive_policy_group,
+ organizations.Organizations.get_organization_adaptive_policy_groups,
+
+ - Paths used are
+ get /organizations/{organizationId}/adaptivePolicy/groups,
+ get /organizations/{organizationId}/adaptivePolicy/groups/{id},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _adaptivepolicy _groups
+ cisco.meraki.organizations_adaptive_policy_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _adaptivepolicy _groups by id
+ cisco.meraki.organizations_adaptive_policy_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ id: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_overview_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_overview_info.py
new file mode 100644
index 000000000..4512b4b57
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_overview_info.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_overview_info
+short_description: Information module for organizations _adaptivepolicy _overview
+description:
+- Get all organizations _adaptivepolicy _overview.
+- Returns adaptive policy aggregate statistics for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyOverview
+ description: Complete reference of the getOrganizationAdaptivePolicyOverview API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-overview
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_adaptive_policy_overview,
+
+ - Paths used are
+ get /organizations/{organizationId}/adaptivePolicy/overview,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _adaptivepolicy _overview
+ cisco.meraki.organizations_adaptive_policy_overview_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "counts": {
+ "groups": 0,
+ "customGroups": 0,
+ "customAcls": 0,
+ "policies": 0,
+ "denyPolicies": 0,
+ "allowPolicies": 0,
+ "policyObjects": 0
+ },
+ "limits": {
+ "customGroups": 0,
+ "rulesInAnAcl": 0,
+ "aclsInAPolicy": 0,
+ "policyObjects": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies.py
new file mode 100644
index 000000000..738c6998d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies.py
@@ -0,0 +1,203 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_policies
+short_description: Resource module for organizations _adaptivepolicy _policies
+description:
+- Manage operations create, update and delete of the resource organizations _adaptivepolicy _policies.
+- Add an Adaptive Policy.
+- Delete an Adaptive Policy.
+- Update an Adaptive Policy.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ acls:
+ description: An ordered array of adaptive policy ACLs (each requires one unique
+ attribute) that apply to this policy (default ).
+ elements: dict
+ suboptions:
+ id:
+ description: The ID of the adaptive policy ACL.
+ type: str
+ name:
+ description: The name of the adaptive policy ACL.
+ type: str
+ type: list
+ destinationGroup:
+ description: The destination adaptive policy group (requires one unique attribute).
+ suboptions:
+ id:
+ description: The ID of the destination adaptive policy group.
+ type: str
+ name:
+ description: The name of the destination adaptive policy group.
+ type: str
+ sgt:
+ description: The SGT of the destination adaptive policy group.
+ type: int
+ type: dict
+ id:
+ description: Id path parameter.
+ type: str
+ lastEntryRule:
+ description: The rule to apply if there is no matching ACL (default "default").
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ sourceGroup:
+ description: The source adaptive policy group (requires one unique attribute).
+ suboptions:
+ id:
+ description: The ID of the source adaptive policy group.
+ type: str
+ name:
+ description: The name of the source adaptive policy group.
+ type: str
+ sgt:
+ description: The SGT of the source adaptive policy group.
+ type: int
+ type: dict
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationAdaptivePolicyPolicy
+ description: Complete reference of the createOrganizationAdaptivePolicyPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-adaptive-policy-policy
+- name: Cisco Meraki documentation for organizations deleteOrganizationAdaptivePolicyPolicy
+ description: Complete reference of the deleteOrganizationAdaptivePolicyPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-adaptive-policy-policy
+- name: Cisco Meraki documentation for organizations updateOrganizationAdaptivePolicyPolicy
+ description: Complete reference of the updateOrganizationAdaptivePolicyPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-adaptive-policy-policy
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_adaptive_policy_policy,
+ organizations.Organizations.delete_organization_adaptive_policy_policy,
+ organizations.Organizations.update_organization_adaptive_policy_policy,
+
+ - Paths used are
+ post /organizations/{organizationId}/adaptivePolicy/policies,
+ delete /organizations/{organizationId}/adaptivePolicy/policies/{id},
+ put /organizations/{organizationId}/adaptivePolicy/policies/{id},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_adaptive_policy_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ acls:
+ - id: '444'
+ name: Block web
+ destinationGroup:
+ id: '333'
+ name: IoT Servers
+ sgt: 51
+ lastEntryRule: allow
+ organizationId: string
+ sourceGroup:
+ id: '222'
+ name: IoT Devices
+ sgt: 50
+
+- name: Update by id
+ cisco.meraki.organizations_adaptive_policy_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ acls:
+ - id: '444'
+ name: Block web
+ destinationGroup:
+ id: '333'
+ name: IoT Servers
+ sgt: 51
+ id: string
+ lastEntryRule: allow
+ organizationId: string
+ sourceGroup:
+ id: '222'
+ name: IoT Devices
+ sgt: 50
+
+- name: Delete by id
+ cisco.meraki.organizations_adaptive_policy_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ id: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies_info.py
new file mode 100644
index 000000000..227305973
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_policies_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_policies_info
+short_description: Information module for organizations _adaptivepolicy _policies
+description:
+- Get all organizations _adaptivepolicy _policies.
+- Get organizations _adaptivepolicy _policies by id.
+- List adaptive policies in an organization.
+- Return an adaptive policy.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ id:
+ description:
+ - Id path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyPolicies
+ description: Complete reference of the getOrganizationAdaptivePolicyPolicies API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-policies
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicyPolicy
+ description: Complete reference of the getOrganizationAdaptivePolicyPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-policy
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_adaptive_policy_policies,
+ organizations.Organizations.get_organization_adaptive_policy_policy,
+
+ - Paths used are
+ get /organizations/{organizationId}/adaptivePolicy/policies,
+ get /organizations/{organizationId}/adaptivePolicy/policies/{id},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _adaptivepolicy _policies
+ cisco.meraki.organizations_adaptive_policy_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _adaptivepolicy _policies by id
+ cisco.meraki.organizations_adaptive_policy_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ id: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings.py
new file mode 100644
index 000000000..13f8ecca6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_settings
+short_description: Resource module for organizations _adaptivepolicy _settings
+description:
+- Manage operation update of the resource organizations _adaptivepolicy _settings.
+- Update global adaptive policy settings.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabledNetworks:
+ description: List of network IDs with adaptive policy enabled.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations updateOrganizationAdaptivePolicySettings
+ description: Complete reference of the updateOrganizationAdaptivePolicySettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-adaptive-policy-settings
+notes:
+ - SDK Method used are
+ organizations.Organizations.update_organization_adaptive_policy_settings,
+
+ - Paths used are
+ put /organizations/{organizationId}/adaptivePolicy/settings,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_adaptive_policy_settings:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabledNetworks:
+ - L_11111111
+ - L_22222222
+ - N_33333333
+ - L_44444444
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings_info.py
new file mode 100644
index 000000000..ab4a4d196
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_adaptive_policy_settings_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_adaptive_policy_settings_info
+short_description: Information module for organizations _adaptivepolicy _settings
+description:
+- Get all organizations _adaptivepolicy _settings.
+- Returns global adaptive policy settings in an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationAdaptivePolicySettings
+ description: Complete reference of the getOrganizationAdaptivePolicySettings API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-adaptive-policy-settings
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_adaptive_policy_settings,
+
+ - Paths used are
+ get /organizations/{organizationId}/adaptivePolicy/settings,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _adaptivepolicy _settings
+ cisco.meraki.organizations_adaptive_policy_settings_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_admins.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_admins.py
new file mode 100644
index 000000000..bdee8ec50
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_admins.py
@@ -0,0 +1,219 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_admins
+short_description: Resource module for organizations _admins
+description:
+- Manage operations create, update and delete of the resource organizations _admins.
+- Create a new dashboard administrator.
+- Revoke all access for a dashboard administrator within this organization.
+- Update an administrator.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ adminId:
+ description: AdminId path parameter. Admin ID.
+ type: str
+ authenticationMethod:
+ description: The method of authentication the user will use to sign in to the Meraki
+ dashboard. Can be one of 'Email' or 'Cisco SecureX Sign-On'. The default is Email
+ authentication.
+ type: str
+ email:
+ description: The email of the dashboard administrator. This attribute can not be
+ updated.
+ type: str
+ name:
+ description: The name of the dashboard administrator.
+ type: str
+ networks:
+ description: The list of networks that the dashboard administrator has privileges
+ on.
+ elements: dict
+ suboptions:
+ access:
+ description: The privilege of the dashboard administrator on the network. Can
+ be one of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'.
+ type: str
+ id:
+ description: The network ID.
+ type: str
+ type: list
+ orgAccess:
+ description: The privilege of the dashboard administrator on the organization. Can
+ be one of 'full', 'read-only', 'enterprise' or 'none'.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ tags:
+ description: The list of tags that the dashboard administrator has privileges on.
+ elements: dict
+ suboptions:
+ access:
+ description: The privilege of the dashboard administrator on the tag. Can be
+ one of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'.
+ type: str
+ tag:
+ description: The name of the tag.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationAdmin
+ description: Complete reference of the createOrganizationAdmin API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-admin
+- name: Cisco Meraki documentation for organizations deleteOrganizationAdmin
+ description: Complete reference of the deleteOrganizationAdmin API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-admin
+- name: Cisco Meraki documentation for organizations updateOrganizationAdmin
+ description: Complete reference of the updateOrganizationAdmin API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-admin
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_admin,
+ organizations.Organizations.delete_organization_admin,
+ organizations.Organizations.update_organization_admin,
+
+ - Paths used are
+ post /organizations/{organizationId}/admins,
+ delete /organizations/{organizationId}/admins/{adminId},
+ put /organizations/{organizationId}/admins/{adminId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_admins:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ authenticationMethod: Email
+ email: miles@meraki.com
+ name: Miles Meraki
+ networks:
+ - access: full
+ id: N_24329156
+ orgAccess: none
+ organizationId: string
+ tags:
+ - access: read-only
+ tag: west
+
+- name: Update by id
+ cisco.meraki.organizations_admins:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ adminId: string
+ name: Miles Meraki
+ networks:
+ - access: full
+ id: N_24329156
+ orgAccess: none
+ organizationId: string
+ tags:
+ - access: read-only
+ tag: west
+
+- name: Delete by id
+ cisco.meraki.organizations_admins:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ adminId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "email": "string",
+ "orgAccess": "string",
+ "accountStatus": "string",
+ "twoFactorAuthEnabled": true,
+ "hasApiKey": true,
+ "lastActive": "string",
+ "tags": [
+ {
+ "tag": "string",
+ "access": "string"
+ }
+ ],
+ "networks": [
+ {
+ "id": "string",
+ "access": "string"
+ }
+ ],
+ "authenticationMethod": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_admins_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_admins_info.py
new file mode 100644
index 000000000..ae00991dc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_admins_info.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_admins_info
+short_description: Information module for organizations _admins
+description:
+- Get all organizations _admins.
+- List the dashboard administrators in this organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationAdmins
+ description: Complete reference of the getOrganizationAdmins API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-admins
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_admins,
+
+ - Paths used are
+ get /organizations/{organizationId}/admins,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _admins
+ cisco.meraki.organizations_admins_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "email": "string",
+ "orgAccess": "string",
+ "accountStatus": "string",
+ "twoFactorAuthEnabled": true,
+ "hasApiKey": true,
+ "lastActive": "string",
+ "tags": [
+ {
+ "tag": "string",
+ "access": "string"
+ }
+ ],
+ "networks": [
+ {
+ "id": "string",
+ "access": "string"
+ }
+ ],
+ "authenticationMethod": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_alerts_profiles.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_alerts_profiles.py
new file mode 100644
index 000000000..935aa39d9
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_alerts_profiles.py
@@ -0,0 +1,216 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_alerts_profiles
+short_description: Resource module for organizations _alerts _profiles
+description:
+- Manage operations create, update and delete of the resource organizations _alerts _profiles.
+- Create an organization-wide alert configuration.
+- Removes an organization-wide alert config.
+- Update an organization-wide alert config.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ alertCondition:
+ description: The conditions that determine if the alert triggers.
+ suboptions:
+ bit_rate_bps:
+ description: The threshold the metric must cross to be valid for alerting. Used
+ only for WAN Utilization alerts.
+ type: int
+ duration:
+ description: The total duration in seconds that the threshold should be crossed
+ before alerting.
+ type: int
+ interface:
+ description: The uplink observed for the alert. Interface must be one of the
+ following wan1, wan2, cellular.
+ type: str
+ jitter_ms:
+ description: The threshold the metric must cross to be valid for alerting. Used
+ only for VoIP Jitter alerts.
+ type: int
+ latency_ms:
+ description: The threshold the metric must cross to be valid for alerting. Used
+ only for WAN Latency alerts.
+ type: int
+ loss_ratio:
+ description: The threshold the metric must cross to be valid for alerting. Used
+ only for Packet Loss alerts.
+ type: float
+ mos:
+ description: The threshold the metric must drop below to be valid for alerting.
+ Used only for VoIP MOS alerts.
+ type: float
+ window:
+ description: The look back period in seconds for sensing the alert.
+ type: int
+ type: dict
+ alertConfigId:
+ description: AlertConfigId path parameter. Alert config ID.
+ type: str
+ description:
+ description: User supplied description of the alert.
+ type: str
+ enabled:
+ description: Is the alert config enabled.
+ type: bool
+ networkTags:
+ description: Networks with these tags will be monitored for the alert.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ recipients:
+ description: List of recipients that will recieve the alert.
+ suboptions:
+ emails:
+ description: A list of emails that will receive information about the alert.
+ elements: str
+ type: list
+ httpServerIds:
+ description: A list base64 encoded urls of webhook endpoints that will receive
+ information about the alert.
+ elements: str
+ type: list
+ type: dict
+ type:
+ description: The alert type.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationAlertsProfile
+ description: Complete reference of the createOrganizationAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-alerts-profile
+- name: Cisco Meraki documentation for organizations deleteOrganizationAlertsProfile
+ description: Complete reference of the deleteOrganizationAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-alerts-profile
+- name: Cisco Meraki documentation for organizations updateOrganizationAlertsProfile
+ description: Complete reference of the updateOrganizationAlertsProfile API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-alerts-profile
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_alerts_profile,
+ organizations.Organizations.delete_organization_alerts_profile,
+ organizations.Organizations.update_organization_alerts_profile,
+
+ - Paths used are
+ post /organizations/{organizationId}/alerts/profiles,
+ delete /organizations/{organizationId}/alerts/profiles/{alertConfigId},
+ put /organizations/{organizationId}/alerts/profiles/{alertConfigId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_alerts_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ alertCondition:
+ bit_rate_bps: 10000
+ duration: 60
+ interface: wan1
+ window: 600
+ description: WAN 1 high utilization
+ enabled: true
+ networkTags:
+ - tag1
+ - tag2
+ organizationId: string
+ recipients:
+ emails:
+ - admin@example.org
+ httpServerIds:
+ - aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==
+ type: wanUtilization
+
+- name: Update by id
+ cisco.meraki.organizations_alerts_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ alertConfigId: string
+ enabled: true
+ organizationId: string
+
+- name: Delete by id
+ cisco.meraki.organizations_alerts_profiles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ alertConfigId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_info.py
new file mode 100644
index 000000000..e12499b04
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_info.py
@@ -0,0 +1,175 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_api_requests_info
+short_description: Information module for organizations _apirequests
+description:
+- Get all organizations _apirequests.
+- List the API requests made by an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 31 days.
+ type: float
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ adminId:
+ description:
+ - AdminId query parameter. Filter the results by the ID of the admin who made the API requests.
+ type: str
+ path:
+ description:
+ - Path query parameter. Filter the results by the path of the API requests.
+ type: str
+ method:
+ description:
+ - >
+ Method query parameter. Filter the results by the method of the API requests (must be 'GET', 'PUT', 'POST'
+ or 'DELETE').
+ type: str
+ responseCode:
+ description:
+ - ResponseCode query parameter. Filter the results by the response code of the API requests.
+ type: int
+ sourceIp:
+ description:
+ - SourceIp query parameter. Filter the results by the IP address of the originating API request.
+ type: str
+ userAgent:
+ description:
+ - UserAgent query parameter. Filter the results by the user agent string of the API request.
+ type: str
+ version:
+ description:
+ - Version query parameter. Filter the results by the API version of the API request.
+ type: int
+ operationIds:
+ description:
+ - OperationIds query parameter. Filter the results by one or more operation IDs for the API request.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationApiRequests
+ description: Complete reference of the getOrganizationApiRequests API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-api-requests
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_api_requests,
+
+ - Paths used are
+ get /organizations/{organizationId}/apiRequests,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _apirequests
+ cisco.meraki.organizations_api_requests_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ adminId: string
+ path: string
+ method: string
+ responseCode: 0
+ sourceIp: string
+ userAgent: string
+ version: 0
+ operationIds: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "adminId": "string",
+ "method": "string",
+ "host": "string",
+ "path": "string",
+ "queryString": "string",
+ "userAgent": "string",
+ "ts": "string",
+ "responseCode": 0,
+ "sourceIp": "string",
+ "version": 0,
+ "operationId": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_info.py
new file mode 100644
index 000000000..8d54f6036
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_info.py
@@ -0,0 +1,153 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_api_requests_overview_info
+short_description: Information module for organizations _apirequests _overview
+description:
+- Get all organizations _apirequests _overview.
+- Return an aggregated overview of API requests data.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 31 days.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationApiRequestsOverview
+ description: Complete reference of the getOrganizationApiRequestsOverview API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-api-requests-overview
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_api_requests_overview,
+
+ - Paths used are
+ get /organizations/{organizationId}/apiRequests/overview,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _apirequests _overview
+ cisco.meraki.organizations_api_requests_overview_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "200": 0,
+ "201": 0,
+ "202": 0,
+ "203": 0,
+ "204": 0,
+ "205": 0,
+ "206": 0,
+ "207": 0,
+ "208": 0,
+ "226": 0,
+ "300": 0,
+ "301": 0,
+ "302": 0,
+ "303": 0,
+ "304": 0,
+ "305": 0,
+ "306": 0,
+ "307": 0,
+ "308": 0,
+ "400": 0,
+ "401": 0,
+ "402": 0,
+ "403": 0,
+ "404": 0,
+ "405": 0,
+ "406": 0,
+ "407": 0,
+ "408": 0,
+ "409": 0,
+ "410": 0,
+ "411": 0,
+ "412": 0,
+ "413": 0,
+ "414": 0,
+ "415": 0,
+ "416": 0,
+ "417": 0,
+ "421": 0,
+ "422": 0,
+ "423": 0,
+ "424": 0,
+ "425": 0,
+ "426": 0,
+ "428": 0,
+ "429": 0,
+ "431": 0,
+ "451": 0,
+ "500": 0,
+ "501": 0,
+ "502": 0,
+ "503": 0,
+ "504": 0,
+ "505": 0,
+ "506": 0,
+ "507": 0,
+ "508": 0,
+ "509": 0,
+ "510": 0,
+ "511": 0
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_response_codes_by_interval_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_response_codes_by_interval_info.py
new file mode 100644
index 000000000..4a591fe1b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_api_requests_overview_response_codes_by_interval_info.py
@@ -0,0 +1,142 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_api_requests_overview_response_codes_by_interval_info
+short_description: Information module for organizations _apirequests _overview _responsecodes _byinterval
+description:
+- Get all organizations _apirequests _overview _responsecodes _byinterval.
+- Tracks organizations' API requests by response code across a given time period.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 31 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 31 days. If interval is provided, the timespan will be autocalculated.
+ type: float
+ interval:
+ description:
+ - >
+ Interval query parameter. The time interval in seconds for returned data. The valid intervals are 120, 3600,
+ 14400, 21600. The default is 21600. Interval is calculated if time params are provided.
+ type: int
+ version:
+ description:
+ - Version query parameter. Filter by API version of the endpoint. Allowable values are 0, 1.
+ type: int
+ operationIds:
+ description:
+ - OperationIds query parameter. Filter by operation ID of the endpoint.
+ elements: str
+ type: list
+ sourceIps:
+ description:
+ - SourceIps query parameter. Filter by source IP that made the API request.
+ elements: str
+ type: list
+ adminIds:
+ description:
+ - AdminIds query parameter. Filter by admin ID of user that made the API request.
+ elements: str
+ type: list
+ userAgent:
+ description:
+ - >
+ UserAgent query parameter. Filter by user agent string for API request. This will filter by a complete or
+ partial match.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationApiRequestsOverviewResponseCodesByInterval
+ description: Complete reference of the getOrganizationApiRequestsOverviewResponseCodesByInterval API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-api-requests-overview-response-codes-by-interval
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_api_requests_overview_response_codes_by_interval,
+
+ - Paths used are
+ get /organizations/{organizationId}/apiRequests/overview/responseCodes/byInterval,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _apirequests _overview _responsecodes _byinterval
+ cisco.meraki.organizations_api_requests_overview_response_codes_by_interval_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ interval: 0
+ version: 0
+ operationIds: []
+ sourceIps: []
+ adminIds: []
+ userAgent: string
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "startTs": "string",
+ "endTs": "string",
+ "counts": [
+ {
+ "code": 0,
+ "count": 0
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion.py
new file mode 100644
index 000000000..9725dafa3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion.py
@@ -0,0 +1,90 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_appliance_security_intrusion
+short_description: Resource module for organizations _appliance _security _intrusion
+description:
+- Manage operation update of the resource organizations _appliance _security _intrusion.
+- Sets supported intrusion settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ allowedRules:
+ description: Sets a list of specific SNORT signatures to allow.
+ elements: dict
+ suboptions:
+ message:
+ description: Message is optional and is ignored on a PUT call. It is allowed
+ in order for PUT to be compatible with GET.
+ type: str
+ ruleId:
+ description: A rule identifier of the format meraki intrusion/snort/GID/<gid>/SID/<sid>.
+ Gid and sid can be obtained from either https //www.snort.org/rule-docs or
+ as ruleIds from the security events in /organization/orgId/securityEvents.
+ type: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateOrganizationApplianceSecurityIntrusion
+ description: Complete reference of the updateOrganizationApplianceSecurityIntrusion API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-appliance-security-intrusion
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_organization_appliance_security_intrusion,
+
+ - Paths used are
+ put /organizations/{organizationId}/appliance/security/intrusion,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_appliance_security_intrusion:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ allowedRules:
+ - message: SQL sa login failed
+ ruleId: meraki:intrusion/snort/GID/01/SID/688
+ - message: MALWARE-OTHER Trackware myway speedbar runtime detection - switch engines
+ ruleId: meraki:intrusion/snort/GID/01/SID/5805
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion_info.py
new file mode 100644
index 000000000..6218bc347
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_security_intrusion_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_appliance_security_intrusion_info
+short_description: Information module for organizations _appliance _security _intrusion
+description:
+- Get all organizations _appliance _security _intrusion.
+- Returns all supported intrusion settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getOrganizationApplianceSecurityIntrusion
+ description: Complete reference of the getOrganizationApplianceSecurityIntrusion API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-security-intrusion
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_organization_appliance_security_intrusion,
+
+ - Paths used are
+ get /organizations/{organizationId}/appliance/security/intrusion,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _appliance _security _intrusion
+ cisco.meraki.organizations_appliance_security_intrusion_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers.py
new file mode 100644
index 000000000..3f29c60ff
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers.py
@@ -0,0 +1,236 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_appliance_vpn_third_party_vpnpeers
+short_description: Resource module for organizations _appliance _vpn _thirdpartyvpnpeers
+description:
+- Manage operation update of the resource organizations _appliance _vpn _thirdpartyvpnpeers.
+- Update the third party VPN peers for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ peers:
+ description: The list of VPN peers.
+ elements: dict
+ suboptions:
+ ikeVersion:
+ description: Optional The IKE version to be used for the IPsec VPN peer configuration.
+ Defaults to '1' when omitted.
+ type: str
+ ipsecPolicies:
+ description: Custom IPSec policies for the VPN peer. If not included and a preset
+ has not been chosen, the default preset for IPSec policies will be used.
+ suboptions:
+ childAuthAlgo:
+ description: This is the authentication algorithms to be used in Phase 2.
+ The value should be an array with one of the following algorithms 'sha256',
+ 'sha1', 'md5'.
+ elements: str
+ type: list
+ childCipherAlgo:
+ description: This is the cipher algorithms to be used in Phase 2. The value
+ should be an array with one or more of the following algorithms 'aes256',
+ 'aes192', 'aes128', 'tripledes', 'des', 'null'.
+ elements: str
+ type: list
+ childLifetime:
+ description: The lifetime of the Phase 2 SA in seconds.
+ type: int
+ childPfsGroup:
+ description: This is the Diffie-Hellman group to be used for Perfect Forward
+ Secrecy in Phase 2. The value should be an array with one of the following
+ values 'disabled','group14', 'group5', 'group2', 'group1'.
+ elements: str
+ type: list
+ ikeAuthAlgo:
+ description: This is the authentication algorithm to be used in Phase 1.
+ The value should be an array with one of the following algorithms 'sha256',
+ 'sha1', 'md5'.
+ elements: str
+ type: list
+ ikeCipherAlgo:
+ description: This is the cipher algorithm to be used in Phase 1. The value
+ should be an array with one of the following algorithms 'aes256', 'aes192',
+ 'aes128', 'tripledes', 'des'.
+ elements: str
+ type: list
+ ikeDiffieHellmanGroup:
+ description: This is the Diffie-Hellman group to be used in Phase 1. The
+ value should be an array with one of the following algorithms 'group14',
+ 'group5', 'group2', 'group1'.
+ elements: str
+ type: list
+ ikeLifetime:
+ description: The lifetime of the Phase 1 SA in seconds.
+ type: int
+ ikePrfAlgo:
+ description: Optional This is the pseudo-random function to be used in IKE_SA.
+ The value should be an array with one of the following algorithms 'prfsha256',
+ 'prfsha1', 'prfmd5', 'default'. The 'default' option can be used to default
+ to the Authentication algorithm.
+ elements: str
+ type: list
+ type: dict
+ ipsecPoliciesPreset:
+ description: One of the following available presets 'default', 'aws', 'azure'.
+ If this is provided, the 'ipsecPolicies' parameter is ignored.
+ type: str
+ localId:
+ description: Optional The local ID is used to identify the MX to the peer. This
+ will apply to all MXs this peer applies to.
+ type: str
+ name:
+ description: The name of the VPN peer.
+ type: str
+ networkTags:
+ description: A list of network tags that will connect with this peer. Use 'all'
+ for all networks. Use 'none' for no networks. If not included, the default
+ is 'all'.
+ elements: str
+ type: list
+ privateSubnets:
+ description: The list of the private subnets of the VPN peer.
+ elements: str
+ type: list
+ publicIp:
+ description: Optional The public IP of the VPN peer.
+ type: str
+ remoteId:
+ description: Optional The remote ID is used to identify the connecting VPN peer.
+ This can either be a valid IPv4 Address, FQDN or User FQDN.
+ type: str
+ secret:
+ description: The shared secret with the VPN peer.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateOrganizationApplianceVpnThirdPartyVPNPeers
+ description: Complete reference of the updateOrganizationApplianceVpnThirdPartyVPNPeers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-appliance-vpn-third-party-vpn-peers
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_organization_appliance_vpn_third_party_vpnpeers,
+
+ - Paths used are
+ put /organizations/{organizationId}/appliance/vpn/thirdPartyVPNPeers,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_appliance_vpn_third_party_vpnpeers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ organizationId: string
+ peers:
+ - ikeVersion: '2'
+ ipsecPolicies:
+ childAuthAlgo:
+ - sha1
+ childCipherAlgo:
+ - aes128
+ childLifetime: 28800
+ childPfsGroup:
+ - disabled
+ ikeAuthAlgo:
+ - sha1
+ ikeCipherAlgo:
+ - tripledes
+ ikeDiffieHellmanGroup:
+ - group2
+ ikeLifetime: 28800
+ ikePrfAlgo:
+ - prfsha1
+ ipsecPoliciesPreset: default
+ localId: myMXId@meraki.com
+ name: Peer Name
+ networkTags:
+ - none
+ privateSubnets:
+ - 192.168.1.0/24
+ - 192.168.128.0/24
+ publicIp: 123.123.123.1
+ remoteId: miles@meraki.com
+ secret: Sample Password
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "publicIp": "string",
+ "remoteId": "string",
+ "localId": "string",
+ "secret": "string",
+ "privateSubnets": [
+ "string"
+ ],
+ "ipsecPolicies": {
+ "ikeCipherAlgo": [
+ "string"
+ ],
+ "ikeAuthAlgo": [
+ "string"
+ ],
+ "ikePrfAlgo": [
+ "string"
+ ],
+ "ikeDiffieHellmanGroup": [
+ "string"
+ ],
+ "ikeLifetime": 0,
+ "childCipherAlgo": [
+ "string"
+ ],
+ "childAuthAlgo": [
+ "string"
+ ],
+ "childPfsGroup": [
+ "string"
+ ],
+ "childLifetime": 0
+ },
+ "ipsecPoliciesPreset": "string",
+ "ikeVersion": "string",
+ "networkTags": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers_info.py
new file mode 100644
index 000000000..780115b2d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_third_party_vpnpeers_info.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_appliance_vpn_third_party_vpnpeers_info
+short_description: Information module for organizations _appliance _vpn _thirdpartyvpnpeers
+description:
+- Get all organizations _appliance _vpn _thirdpartyvpnpeers.
+- Return the third party VPN peers for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getOrganizationApplianceVpnThirdPartyVPNPeers
+ description: Complete reference of the getOrganizationApplianceVpnThirdPartyVPNPeers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-vpn-third-party-vpn-peers
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_organization_appliance_vpn_third_party_vpnpeers,
+
+ - Paths used are
+ get /organizations/{organizationId}/appliance/vpn/thirdPartyVPNPeers,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _appliance _vpn _thirdpartyvpnpeers
+ cisco.meraki.organizations_appliance_vpn_third_party_vpnpeers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "publicIp": "string",
+ "remoteId": "string",
+ "localId": "string",
+ "secret": "string",
+ "privateSubnets": [
+ "string"
+ ],
+ "ipsecPolicies": {
+ "ikeCipherAlgo": [
+ "string"
+ ],
+ "ikeAuthAlgo": [
+ "string"
+ ],
+ "ikePrfAlgo": [
+ "string"
+ ],
+ "ikeDiffieHellmanGroup": [
+ "string"
+ ],
+ "ikeLifetime": 0,
+ "childCipherAlgo": [
+ "string"
+ ],
+ "childAuthAlgo": [
+ "string"
+ ],
+ "childPfsGroup": [
+ "string"
+ ],
+ "childLifetime": 0
+ },
+ "ipsecPoliciesPreset": "string",
+ "ikeVersion": "string",
+ "networkTags": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules.py
new file mode 100644
index 000000000..8773b7c97
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules.py
@@ -0,0 +1,133 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_appliance_vpn_vpn_firewall_rules
+short_description: Resource module for organizations _appliance _vpn _vpnfirewallrules
+description:
+- Manage operation update of the resource organizations _appliance _vpn _vpnfirewallrules.
+- Update the firewall rules of an organization's site-to-site VPN.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ rules:
+ description: An ordered array of the firewall rules (not including the default rule).
+ elements: dict
+ suboptions:
+ comment:
+ description: Description of the rule (optional).
+ type: str
+ destCidr:
+ description: Comma-separated list of destination IP address(es) (in IP or CIDR
+ notation) or 'any' (FQDN not supported).
+ type: str
+ destPort:
+ description: Comma-separated list of destination port(s) (integer in the range
+ 1-65535), or 'any'.
+ type: str
+ policy:
+ description: '''allow'' or ''deny'' traffic specified by this rule.'
+ type: str
+ protocol:
+ description: The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or
+ 'any').
+ type: str
+ srcCidr:
+ description: Comma-separated list of source IP address(es) (in IP or CIDR notation),
+ or 'any' (FQDN not supported).
+ type: str
+ srcPort:
+ description: Comma-separated list of source port(s) (integer in the range 1-65535),
+ or 'any'.
+ type: str
+ syslogEnabled:
+ description: Log this rule to syslog (true or false, boolean value) - only applicable
+ if a syslog has been configured (optional).
+ type: bool
+ type: list
+ syslogDefaultRule:
+ description: Log the special default rule (boolean value - enable only if you've
+ configured a syslog server) (optional).
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance updateOrganizationApplianceVpnVpnFirewallRules
+ description: Complete reference of the updateOrganizationApplianceVpnVpnFirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-appliance-vpn-vpn-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.update_organization_appliance_vpn_vpn_firewall_rules,
+
+ - Paths used are
+ put /organizations/{organizationId}/appliance/vpn/vpnFirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_appliance_vpn_vpn_firewall_rules:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ organizationId: string
+ rules:
+ - comment: Allow TCP traffic to subnet with HTTP servers.
+ destCidr: 192.168.1.0/24
+ destPort: '443'
+ policy: allow
+ protocol: tcp
+ srcCidr: Any
+ srcPort: Any
+ syslogEnabled: false
+ syslogDefaultRule: false
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "rules": [
+ {
+ "comment": "string",
+ "policy": "string",
+ "protocol": "string",
+ "srcPort": "string",
+ "srcCidr": "string",
+ "destPort": "string",
+ "destCidr": "string",
+ "syslogEnabled": true
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules_info.py
new file mode 100644
index 000000000..a98db73ac
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_appliance_vpn_vpn_firewall_rules_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_appliance_vpn_vpn_firewall_rules_info
+short_description: Information module for organizations _appliance _vpn _vpnfirewallrules
+description:
+- Get all organizations _appliance _vpn _vpnfirewallrules.
+- Return the firewall rules for an organization's site-to-site VPN.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for appliance getOrganizationApplianceVpnVpnFirewallRules
+ description: Complete reference of the getOrganizationApplianceVpnVpnFirewallRules API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-vpn-vpn-firewall-rules
+notes:
+ - SDK Method used are
+ appliance.Appliance.get_organization_appliance_vpn_vpn_firewall_rules,
+
+ - Paths used are
+ get /organizations/{organizationId}/appliance/vpn/vpnFirewallRules,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _appliance _vpn _vpnfirewallrules
+ cisco.meraki.organizations_appliance_vpn_vpn_firewall_rules_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies.py
new file mode 100644
index 000000000..ca170c929
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies.py
@@ -0,0 +1,357 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_branding_policies
+short_description: Resource module for organizations _brandingpolicies
+description:
+- Manage operations create, update and delete of the resource organizations _brandingpolicies.
+- Add a new branding policy to an organization.
+- Delete a branding policy.
+- Update a branding policy.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ adminSettings:
+ description: Settings for describing which kinds of admins this policy applies to.
+ suboptions:
+ appliesTo:
+ description: Which kinds of admins this policy applies to. Can be one of 'All
+ organization admins', 'All enterprise admins', 'All network admins', 'All
+ admins of networks...', 'All admins of networks tagged...', 'Specific admins...',
+ 'All admins' or 'All SAML admins'.
+ type: str
+ values:
+ description: If 'appliesTo' is set to one of 'Specific admins...', 'All admins
+ of networks...' or 'All admins of networks tagged...', then you must specify
+ this 'values' property to provide the set of entities to apply the branding
+ policy to. For 'Specific admins...', specify an array of admin IDs. For 'All
+ admins of networks...', specify an array of network IDs and/or configuration
+ template IDs. For 'All admins of networks tagged...', specify an array of
+ tag names.
+ elements: str
+ type: list
+ type: dict
+ brandingPolicyId:
+ description: BrandingPolicyId path parameter. Branding policy ID.
+ type: str
+ customLogo:
+ description: Properties describing the custom logo attached to the branding policy.
+ suboptions:
+ enabled:
+ description: Whether or not there is a custom logo enabled.
+ type: bool
+ image:
+ description: Properties for setting the image.
+ suboptions:
+ contents:
+ description: The file contents (a base 64 encoded string) of your new logo.
+ type: str
+ format:
+ description: The format of the encoded contents. Supported formats are 'png',
+ 'gif', and jpg'.
+ type: str
+ type: dict
+ type: dict
+ enabled:
+ description: Boolean indicating whether this policy is enabled.
+ type: bool
+ helpSettings:
+ description: Settings for describing the modifications to various Help page features.
+ Each property in this object accepts one of 'default or inherit' (do not modify
+ functionality), 'hide' (remove the section from Dashboard), or 'show' (always
+ show the section on Dashboard). Some properties in this object also accept custom
+ HTML used to replace the section on Dashboard; see the documentation for each
+ property to see the allowed values. Each property defaults to 'default or inherit'
+ when not provided.
+ suboptions:
+ apiDocsSubtab:
+ description: The 'Help -> API docs' subtab where a detailed description of the
+ Dashboard API is listed. Can be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ casesSubtab:
+ description: The 'Help -> Cases' Dashboard subtab on which Cisco Meraki support
+ cases for this organization can be managed. Can be one of 'default or inherit',
+ 'hide' or 'show'.
+ type: str
+ ciscoMerakiProductDocumentation:
+ description: The 'Product Manuals' section of the 'Help -> Get Help' subtab.
+ Can be one of 'default or inherit', 'hide', 'show', or a replacement custom
+ HTML string.
+ type: str
+ communitySubtab:
+ description: The 'Help -> Community' subtab which provides a link to Meraki
+ Community. Can be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ dataProtectionRequestsSubtab:
+ description: The 'Help -> Data protection requests' Dashboard subtab on which
+ requests to delete, restrict, or export end-user data can be audited. Can
+ be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ firewallInfoSubtab:
+ description: The 'Help -> Firewall info' subtab where necessary upstream firewall
+ rules for communication to the Cisco Meraki cloud are listed. Can be one of
+ 'default or inherit', 'hide' or 'show'.
+ type: str
+ getHelpSubtab:
+ description: The 'Help -> Get Help' subtab on which Cisco Meraki KB, Product
+ Manuals, and Support/Case Information are displayed. Note that if this subtab
+ is hidden, branding customizations for the KB on 'Get help', Cisco Meraki
+ product documentation, and support contact info will not be visible. Can be
+ one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ getHelpSubtabKnowledgeBaseSearch:
+ description: The KB search box which appears on the Help page. Can be one of
+ 'default or inherit', 'hide', 'show', or a replacement custom HTML string.
+ type: str
+ hardwareReplacementsSubtab:
+ description: The 'Help -> Replacement info' subtab where important information
+ regarding device replacements is detailed. Can be one of 'default or inherit',
+ 'hide' or 'show'.
+ type: str
+ helpTab:
+ description: The Help tab, under which all support information resides. If this
+ tab is hidden, no other 'Help' branding customizations will be visible. Can
+ be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ helpWidget:
+ description: The 'Help Widget' is a support widget which provides access to
+ live chat, documentation links, Sales contact info, and other contact avenues
+ to reach Meraki Support. Can be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ newFeaturesSubtab:
+ description: The 'Help -> New features' subtab where new Dashboard features
+ are detailed. Can be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ smForums:
+ description: The 'SM Forums' subtab which links to community-based support for
+ Cisco Meraki Systems Manager. Only configurable for organizations that contain
+ Systems Manager networks. Can be one of 'default or inherit', 'hide' or 'show'.
+ type: str
+ supportContactInfo:
+ description: The 'Contact Meraki Support' section of the 'Help -> Get Help'
+ subtab. Can be one of 'default or inherit', 'hide', 'show', or a replacement
+ custom HTML string.
+ type: str
+ universalSearchKnowledgeBaseSearch:
+ description: The universal search box always visible on Dashboard will, by default,
+ present results from the Meraki KB. This configures whether these Meraki KB
+ results should be returned. Can be one of 'default or inherit', 'hide' or
+ 'show'.
+ type: str
+ type: dict
+ name:
+ description: Name of the Dashboard branding policy.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationBrandingPolicy
+ description: Complete reference of the createOrganizationBrandingPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-branding-policy
+- name: Cisco Meraki documentation for organizations deleteOrganizationBrandingPolicy
+ description: Complete reference of the deleteOrganizationBrandingPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-branding-policy
+- name: Cisco Meraki documentation for organizations updateOrganizationBrandingPolicy
+ description: Complete reference of the updateOrganizationBrandingPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-branding-policy
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_branding_policy,
+ organizations.Organizations.delete_organization_branding_policy,
+ organizations.Organizations.update_organization_branding_policy,
+
+ - Paths used are
+ post /organizations/{organizationId}/brandingPolicies,
+ delete /organizations/{organizationId}/brandingPolicies/{brandingPolicyId},
+ put /organizations/{organizationId}/brandingPolicies/{brandingPolicyId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_branding_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ adminSettings:
+ appliesTo: All admins of networks...
+ values:
+ - N_1234
+ - L_5678
+ customLogo:
+ enabled: true
+ image:
+ contents: Hyperg26C8F4h8CvcoUqpA==
+ format: jpg
+ enabled: true
+ helpSettings:
+ apiDocsSubtab: default or inherit
+ casesSubtab: hide
+ ciscoMerakiProductDocumentation: show
+ communitySubtab: show
+ dataProtectionRequestsSubtab: default or inherit
+ firewallInfoSubtab: hide
+ getHelpSubtab: default or inherit
+ getHelpSubtabKnowledgeBaseSearch: <h1>Some custom HTML content</h1>
+ hardwareReplacementsSubtab: hide
+ helpTab: show
+ helpWidget: hide
+ newFeaturesSubtab: show
+ smForums: hide
+ supportContactInfo: show
+ universalSearchKnowledgeBaseSearch: hide
+ name: My Branding Policy
+ organizationId: string
+
+- name: Update by id
+ cisco.meraki.organizations_branding_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ adminSettings:
+ appliesTo: All admins of networks...
+ values:
+ - N_1234
+ - L_5678
+ brandingPolicyId: string
+ customLogo:
+ enabled: true
+ image:
+ contents: Hyperg26C8F4h8CvcoUqpA==
+ format: jpg
+ enabled: true
+ helpSettings:
+ apiDocsSubtab: default or inherit
+ casesSubtab: hide
+ ciscoMerakiProductDocumentation: show
+ communitySubtab: show
+ dataProtectionRequestsSubtab: default or inherit
+ firewallInfoSubtab: hide
+ getHelpSubtab: default or inherit
+ getHelpSubtabKnowledgeBaseSearch: <h1>Some custom HTML content</h1>
+ hardwareReplacementsSubtab: hide
+ helpTab: show
+ helpWidget: hide
+ newFeaturesSubtab: show
+ smForums: hide
+ supportContactInfo: show
+ universalSearchKnowledgeBaseSearch: hide
+ name: My Branding Policy
+ organizationId: string
+
+- name: Delete by id
+ cisco.meraki.organizations_branding_policies:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ brandingPolicyId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "enabled": true,
+ "adminSettings": {
+ "appliesTo": "string",
+ "values": [
+ "string"
+ ]
+ },
+ "helpSettings": {
+ "helpTab": "string",
+ "getHelpSubtab": "string",
+ "communitySubtab": "string",
+ "casesSubtab": "string",
+ "dataProtectionRequestsSubtab": "string",
+ "getHelpSubtabKnowledgeBaseSearch": "string",
+ "universalSearchKnowledgeBaseSearch": "string",
+ "ciscoMerakiProductDocumentation": "string",
+ "supportContactInfo": "string",
+ "newFeaturesSubtab": "string",
+ "firewallInfoSubtab": "string",
+ "apiDocsSubtab": "string",
+ "hardwareReplacementsSubtab": "string",
+ "smForums": "string",
+ "helpWidget": "string"
+ },
+ "customLogo": {
+ "enabled": true,
+ "image": {
+ "preview": {
+ "url": "string",
+ "expiresAt": "string"
+ }
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_info.py
new file mode 100644
index 000000000..f1c61ced5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_info.py
@@ -0,0 +1,147 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_branding_policies_info
+short_description: Information module for organizations _brandingpolicies
+description:
+- Get all organizations _brandingpolicies.
+- Get organizations _brandingpolicies by id.
+- List the branding policies of an organization.
+- Return a branding policy.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ brandingPolicyId:
+ description:
+ - BrandingPolicyId path parameter. Branding policy ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationBrandingPolicies
+ description: Complete reference of the getOrganizationBrandingPolicies API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-branding-policies
+- name: Cisco Meraki documentation for organizations getOrganizationBrandingPolicy
+ description: Complete reference of the getOrganizationBrandingPolicy API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-branding-policy
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_branding_policies,
+ organizations.Organizations.get_organization_branding_policy,
+
+ - Paths used are
+ get /organizations/{organizationId}/brandingPolicies,
+ get /organizations/{organizationId}/brandingPolicies/{brandingPolicyId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _brandingpolicies
+ cisco.meraki.organizations_branding_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _brandingpolicies by id
+ cisco.meraki.organizations_branding_policies_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ brandingPolicyId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "enabled": true,
+ "adminSettings": {
+ "appliesTo": "string",
+ "values": [
+ "string"
+ ]
+ },
+ "helpSettings": {
+ "helpTab": "string",
+ "getHelpSubtab": "string",
+ "communitySubtab": "string",
+ "casesSubtab": "string",
+ "dataProtectionRequestsSubtab": "string",
+ "getHelpSubtabKnowledgeBaseSearch": "string",
+ "universalSearchKnowledgeBaseSearch": "string",
+ "ciscoMerakiProductDocumentation": "string",
+ "supportContactInfo": "string",
+ "newFeaturesSubtab": "string",
+ "firewallInfoSubtab": "string",
+ "apiDocsSubtab": "string",
+ "hardwareReplacementsSubtab": "string",
+ "smForums": "string",
+ "helpWidget": "string"
+ },
+ "customLogo": {
+ "enabled": true,
+ "image": {
+ "preview": {
+ "url": "string",
+ "expiresAt": "string"
+ }
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities.py
new file mode 100644
index 000000000..580da6a1f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_branding_policies_priorities
+short_description: Resource module for organizations _brandingpolicies _priorities
+description:
+- Manage operation update of the resource organizations _brandingpolicies _priorities.
+- Update the priority ordering of an organization's branding policies.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ brandingPolicyIds:
+ description: An ordered list of branding policy IDs that determines the priority
+ order of how to apply the policies.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations updateOrganizationBrandingPoliciesPriorities
+ description: Complete reference of the updateOrganizationBrandingPoliciesPriorities API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-branding-policies-priorities
+notes:
+ - SDK Method used are
+ organizations.Organizations.update_organization_branding_policies_priorities,
+
+ - Paths used are
+ put /organizations/{organizationId}/brandingPolicies/priorities,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_branding_policies_priorities:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ brandingPolicyIds:
+ - '123'
+ - '456'
+ - '789'
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ [
+ "string"
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities_info.py
new file mode 100644
index 000000000..985260ea4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_branding_policies_priorities_info.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_branding_policies_priorities_info
+short_description: Information module for organizations _brandingpolicies _priorities
+description:
+- Get all organizations _brandingpolicies _priorities.
+- >
+ Return the branding policy IDs of an organization in priority order. IDs are ordered in ascending order of
+ priority IDs later in the array have higher priority .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationBrandingPoliciesPriorities
+ description: Complete reference of the getOrganizationBrandingPoliciesPriorities API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-branding-policies-priorities
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_branding_policies_priorities,
+
+ - Paths used are
+ get /organizations/{organizationId}/brandingPolicies/priorities,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _brandingpolicies _priorities
+ cisco.meraki.organizations_branding_policies_priorities_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: str
+ sample: >
+ [
+ "string"
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts.py
new file mode 100644
index 000000000..3783eb460
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_camera_custom_analytics_artifacts
+short_description: Resource module for organizations _camera _customanalytics _artifacts
+description:
+- Manage operations create and delete of the resource organizations _camera _customanalytics _artifacts.
+- >
+ Create custom analytics artifact. Returns an artifact upload URL with expiry time. Upload the artifact file with a
+ put request to the returned upload URL before its expiry.
+- Delete Custom Analytics Artifact.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ artifactId:
+ description: ArtifactId path parameter. Artifact ID.
+ type: str
+ name:
+ description: Unique name of the artifact.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera createOrganizationCameraCustomAnalyticsArtifact
+ description: Complete reference of the createOrganizationCameraCustomAnalyticsArtifact API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-camera-custom-analytics-artifact
+- name: Cisco Meraki documentation for camera deleteOrganizationCameraCustomAnalyticsArtifact
+ description: Complete reference of the deleteOrganizationCameraCustomAnalyticsArtifact API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-camera-custom-analytics-artifact
+notes:
+ - SDK Method used are
+ camera.Camera.create_organization_camera_custom_analytics_artifact,
+ camera.Camera.delete_organization_camera_custom_analytics_artifact,
+
+ - Paths used are
+ post /organizations/{organizationId}/camera/customAnalytics/artifacts,
+ delete /organizations/{organizationId}/camera/customAnalytics/artifacts/{artifactId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_camera_custom_analytics_artifacts:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: example
+ organizationId: string
+
+- name: Delete by id
+ cisco.meraki.organizations_camera_custom_analytics_artifacts:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ artifactId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts_info.py
new file mode 100644
index 000000000..2335fb10a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_camera_custom_analytics_artifacts_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_camera_custom_analytics_artifacts_info
+short_description: Information module for organizations _camera _customanalytics _artifacts
+description:
+- Get all organizations _camera _customanalytics _artifacts.
+- Get organizations _camera _customanalytics _artifacts by id.
+- Get Custom Analytics Artifact.
+- List Custom Analytics Artifacts.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ artifactId:
+ description:
+ - ArtifactId path parameter. Artifact ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for camera getOrganizationCameraCustomAnalyticsArtifact
+ description: Complete reference of the getOrganizationCameraCustomAnalyticsArtifact API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-camera-custom-analytics-artifact
+- name: Cisco Meraki documentation for camera getOrganizationCameraCustomAnalyticsArtifacts
+ description: Complete reference of the getOrganizationCameraCustomAnalyticsArtifacts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-camera-custom-analytics-artifacts
+notes:
+ - SDK Method used are
+ camera.Camera.get_organization_camera_custom_analytics_artifact,
+ camera.Camera.get_organization_camera_custom_analytics_artifacts,
+
+ - Paths used are
+ get /organizations/{organizationId}/camera/customAnalytics/artifacts,
+ get /organizations/{organizationId}/camera/customAnalytics/artifacts/{artifactId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _camera _customanalytics _artifacts
+ cisco.meraki.organizations_camera_custom_analytics_artifacts_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _camera _customanalytics _artifacts by id
+ cisco.meraki.organizations_camera_custom_analytics_artifacts_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ artifactId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_cellular_gateway_uplink_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_cellular_gateway_uplink_statuses_info.py
new file mode 100644
index 000000000..9c503aee6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_cellular_gateway_uplink_statuses_info.py
@@ -0,0 +1,150 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_cellular_gateway_uplink_statuses_info
+short_description: Information module for organizations _cellulargateway _uplink _statuses
+description:
+- Get all organizations _cellulargateway _uplink _statuses.
+- List the uplink status of every Meraki MG cellular gateway in the organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. A list of network IDs. The returned devices will be filtered to only include
+ these networks.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. A list of serial numbers. The returned devices will be filtered to only include
+ these serials.
+ elements: str
+ type: list
+ iccids:
+ description:
+ - Iccids query parameter. A list of ICCIDs. The returned devices will be filtered to only include these ICCIDs.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for cellularGateway getOrganizationCellularGatewayUplinkStatuses
+ description: Complete reference of the getOrganizationCellularGatewayUplinkStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-cellular-gateway-uplink-statuses
+notes:
+ - SDK Method used are
+ cellular_gateway.CellularGateway.get_organization_cellular_gateway_uplink_statuses,
+
+ - Paths used are
+ get /organizations/{organizationId}/cellularGateway/uplink/statuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _cellulargateway _uplink _statuses
+ cisco.meraki.organizations_cellular_gateway_uplink_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ serials: []
+ iccids: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "networkId": "string",
+ "serial": "string",
+ "model": "string",
+ "lastReportedAt": "string",
+ "uplinks": [
+ {
+ "interface": "string",
+ "status": "string",
+ "ip": "string",
+ "provider": "string",
+ "publicIp": "string",
+ "model": "string",
+ "signalStat": {
+ "rsrp": "string",
+ "rsrq": "string"
+ },
+ "connectionType": "string",
+ "apn": "string",
+ "gateway": "string",
+ "dns1": "string",
+ "dns2": "string",
+ "signalType": "string",
+ "iccid": "string"
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_claim.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_claim.py
new file mode 100644
index 000000000..38331e5b7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_claim.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_claim
+short_description: Resource module for organizations _claim
+description:
+- Manage operation create of the resource organizations _claim.
+- >
+ Claim a list of devices, licenses, and/or orders into an organization. When claiming by order, all devices and
+ licenses in the order will be claimed; licenses will be added to the organization and devices will be placed in
+ the organization's inventory.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ licenses:
+ description: The licenses that should be claimed.
+ elements: dict
+ suboptions:
+ key:
+ description: The key of the license.
+ type: str
+ mode:
+ description: Either 'renew' or 'addDevices'. 'addDevices' will increase the
+ license limit, while 'renew' will extend the amount of time until expiration.
+ Defaults to 'addDevices'. All licenses must be claimed with the same mode,
+ and at most one renewal can be claimed at a time. This parameter is legacy
+ and does not apply to organizations with per-device licensing enabled.
+ type: str
+ type: list
+ orders:
+ description: The numbers of the orders that should be claimed.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ serials:
+ description: The serials of the devices that should be claimed.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations claimIntoOrganization
+ description: Complete reference of the claimIntoOrganization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!claim-into-organization
+notes:
+ - SDK Method used are
+ organizations.Organizations.claim_into_organization,
+
+ - Paths used are
+ post /organizations/{organizationId}/claim,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_claim:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ licenses:
+ - key: Z2XXXXXXXXXX
+ mode: addDevices
+ orders:
+ - 4CXXXXXXX
+ organizationId: string
+ serials:
+ - Q234-ABCD-5678
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_bandwidth_usage_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_bandwidth_usage_history_info.py
new file mode 100644
index 000000000..c7e8ebc7c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_bandwidth_usage_history_info.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_clients_bandwidth_usage_history_info
+short_description: Information module for organizations _clients _bandwidthusagehistory
+description:
+- Get all organizations _clients _bandwidthusagehistory.
+- >
+ Return data usage in megabits per second over time for all clients in the given organization within a given time
+ range.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationClientsBandwidthUsageHistory
+ description: Complete reference of the getOrganizationClientsBandwidthUsageHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-clients-bandwidth-usage-history
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_clients_bandwidth_usage_history,
+
+ - Paths used are
+ get /organizations/{organizationId}/clients/bandwidthUsageHistory,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _clients _bandwidthusagehistory
+ cisco.meraki.organizations_clients_bandwidth_usage_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "ts": "string",
+ "total": 0,
+ "upstream": 0,
+ "downstream": 0
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_overview_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_overview_info.py
new file mode 100644
index 000000000..f197340cc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_overview_info.py
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_clients_overview_info
+short_description: Information module for organizations _clients _overview
+description:
+- Get all organizations _clients _overview.
+- Return summary information around client data usage in mb across the given organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationClientsOverview
+ description: Complete reference of the getOrganizationClientsOverview API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-clients-overview
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_clients_overview,
+
+ - Paths used are
+ get /organizations/{organizationId}/clients/overview,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _clients _overview
+ cisco.meraki.organizations_clients_overview_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "usage": {
+ "overall": {
+ "total": 0,
+ "downstream": 0,
+ "upstream": 0
+ },
+ "average": 0
+ },
+ "counts": {
+ "total": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_search_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_search_info.py
new file mode 100644
index 000000000..6ad0c555c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_clients_search_info.py
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_clients_search_info
+short_description: Information module for organizations _clients _search
+description:
+- Get all organizations _clients _search.
+- Return the client details in an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ mac:
+ description:
+ - Mac query parameter. The MAC address of the client. Required.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 5. Default is 5.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationClientsSearch
+ description: Complete reference of the getOrganizationClientsSearch API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-clients-search
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_clients_search,
+
+ - Paths used are
+ get /organizations/{organizationId}/clients/search,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _clients _search
+ cisco.meraki.organizations_clients_search_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ mac: string
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_clone.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_clone.py
new file mode 100644
index 000000000..1b2aedb18
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_clone.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_clone
+short_description: Resource module for organizations _clone
+description:
+- Manage operation create of the resource organizations _clone.
+- Create a new organization by cloning the addressed organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ name:
+ description: The name of the new organization.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations cloneOrganization
+ description: Complete reference of the cloneOrganization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!clone-organization
+notes:
+ - SDK Method used are
+ organizations.Organizations.clone_organization,
+
+ - Paths used are
+ post /organizations/{organizationId}/clone,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_clone:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ name: My organization
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "url": "string",
+ "api": {
+ "enabled": true
+ },
+ "licensing": {
+ "model": "string"
+ },
+ "cloud": {
+ "region": {
+ "name": "string"
+ }
+ },
+ "management": {
+ "details": [
+ {
+ "name": "string",
+ "value": "string"
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates.py
new file mode 100644
index 000000000..87073467e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates.py
@@ -0,0 +1,150 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_config_templates
+short_description: Resource module for organizations _configtemplates
+description:
+- Manage operations create, update and delete of the resource organizations _configtemplates.
+- Create a new configuration template.
+- Remove a configuration template.
+- Update a configuration template.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ configTemplateId:
+ description: ConfigTemplateId path parameter. Config template ID.
+ type: str
+ name:
+ description: The name of the configuration template.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ timeZone:
+ description: The timezone of the configuration template. For a list of allowed timezones,
+ please see the 'TZ' column in the table in <a target='_blank' href='https //en.wikipedia.org/wiki/List_of_tz_...
+ article</a>. Not applicable if copying from existing network or template.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationConfigTemplate
+ description: Complete reference of the createOrganizationConfigTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-config-template
+- name: Cisco Meraki documentation for organizations deleteOrganizationConfigTemplate
+ description: Complete reference of the deleteOrganizationConfigTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-config-template
+- name: Cisco Meraki documentation for organizations updateOrganizationConfigTemplate
+ description: Complete reference of the updateOrganizationConfigTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-config-template
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_config_template,
+ organizations.Organizations.delete_organization_config_template,
+ organizations.Organizations.update_organization_config_template,
+
+ - Paths used are
+ post /organizations/{organizationId}/configTemplates,
+ delete /organizations/{organizationId}/configTemplates/{configTemplateId},
+ put /organizations/{organizationId}/configTemplates/{configTemplateId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_config_templates:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: My config template
+ organizationId: string
+ timeZone: America/Los_Angeles
+
+- name: Update by id
+ cisco.meraki.organizations_config_templates:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ configTemplateId: string
+ name: My config template
+ organizationId: string
+ timeZone: America/Los_Angeles
+
+- name: Delete by id
+ cisco.meraki.organizations_config_templates:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ configTemplateId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_info.py
new file mode 100644
index 000000000..24c619cdc
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_config_templates_info
+short_description: Information module for organizations _configtemplates
+description:
+- Get all organizations _configtemplates.
+- Get organizations _configtemplates by id.
+- List the configuration templates for this organization.
+- Return a single configuration template.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ configTemplateId:
+ description:
+ - ConfigTemplateId path parameter. Config template ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationConfigTemplate
+ description: Complete reference of the getOrganizationConfigTemplate API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-config-template
+- name: Cisco Meraki documentation for organizations getOrganizationConfigTemplates
+ description: Complete reference of the getOrganizationConfigTemplates API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-config-templates
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_config_template,
+ organizations.Organizations.get_organization_config_templates,
+
+ - Paths used are
+ get /organizations/{organizationId}/configTemplates,
+ get /organizations/{organizationId}/configTemplates/{configTemplateId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _configtemplates
+ cisco.meraki.organizations_config_templates_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _configtemplates by id
+ cisco.meraki.organizations_config_templates_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ configTemplateId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_info.py
new file mode 100644
index 000000000..bdae89ac3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_info.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_config_templates_switch_profiles_info
+short_description: Information module for organizations _configtemplates _switch _profiles
+description:
+- Get all organizations _configtemplates _switch _profiles.
+- List the switch profiles for your switch template configuration.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ configTemplateId:
+ description:
+ - ConfigTemplateId path parameter. Config template ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getOrganizationConfigTemplateSwitchProfiles
+ description: Complete reference of the getOrganizationConfigTemplateSwitchProfiles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-config-template-switch-profiles
+notes:
+ - SDK Method used are
+ switch.Switch.get_organization_config_template_switch_profiles,
+
+ - Paths used are
+ get /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _configtemplates _switch _profiles
+ cisco.meraki.organizations_config_templates_switch_profiles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ configTemplateId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "switchProfileId": "string",
+ "name": "string",
+ "model": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports.py
new file mode 100644
index 000000000..3fe154c30
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports.py
@@ -0,0 +1,250 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_config_templates_switch_profiles_ports
+short_description: Resource module for organizations _configtemplates _switch _profiles _ports
+description:
+- Manage operation update of the resource organizations _configtemplates _switch _profiles _ports.
+- Update a switch profile port.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accessPolicyNumber:
+ description: The number of a custom access policy to configure on the switch profile
+ port. Only applicable when 'accessPolicyType' is 'Custom access policy'.
+ type: int
+ accessPolicyType:
+ description: The type of the access policy of the switch profile port. Only applicable
+ to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list'
+ or 'Sticky MAC allow list'.
+ type: str
+ allowedVlans:
+ description: The VLANs allowed on the switch profile port. Only applicable to trunk
+ ports.
+ type: str
+ configTemplateId:
+ description: ConfigTemplateId path parameter. Config template ID.
+ type: str
+ daiTrusted:
+ description: If true, ARP packets for this port will be considered trusted, and
+ Dynamic ARP Inspection will allow the traffic.
+ type: bool
+ enabled:
+ description: The status of the switch profile port.
+ type: bool
+ flexibleStackingEnabled:
+ description: For supported switches (e.g. MS420/MS425), whether or not the port
+ has flexible stacking enabled.
+ type: bool
+ isolationEnabled:
+ description: The isolation status of the switch profile port.
+ type: bool
+ linkNegotiation:
+ description: The link speed for the switch profile port.
+ type: str
+ macAllowList:
+ description: Only devices with MAC addresses specified in this list will have access
+ to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType'
+ is 'MAC allow list'.
+ elements: str
+ type: list
+ name:
+ description: The name of the switch profile port.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ poeEnabled:
+ description: The PoE status of the switch profile port.
+ type: bool
+ portId:
+ description: PortId path parameter. Port ID.
+ type: str
+ portScheduleId:
+ description: The ID of the port schedule. A value of null will clear the port schedule.
+ type: str
+ profile:
+ description: Profile attributes.
+ suboptions:
+ enabled:
+ description: When enabled, override this port's configuration with a port profile.
+ type: bool
+ id:
+ description: When enabled, the ID of the port profile used to override the port's
+ configuration.
+ type: str
+ iname:
+ description: When enabled, the IName of the profile.
+ type: str
+ type: dict
+ profileId:
+ description: ProfileId path parameter. Profile ID.
+ type: str
+ rstpEnabled:
+ description: The rapid spanning tree protocol status.
+ type: bool
+ stickyMacAllowList:
+ description: The initial list of MAC addresses for sticky Mac allow list. Only applicable
+ when 'accessPolicyType' is 'Sticky MAC allow list'.
+ elements: str
+ type: list
+ stickyMacAllowListLimit:
+ description: The maximum number of MAC addresses for sticky MAC allow list. Only
+ applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
+ type: int
+ stormControlEnabled:
+ description: The storm control status of the switch profile port.
+ type: bool
+ stpGuard:
+ description: The state of the STP guard ('disabled', 'root guard', 'bpdu guard'
+ or 'loop guard').
+ type: str
+ tags:
+ description: The list of tags of the switch profile port.
+ elements: str
+ type: list
+ type:
+ description: The type of the switch profile port ('trunk' or 'access').
+ type: str
+ udld:
+ description: The action to take when Unidirectional Link is detected (Alert only,
+ Enforce). Default configuration is Alert only.
+ type: str
+ vlan:
+ description: The VLAN of the switch profile port. A null value will clear the value
+ set for trunk ports.
+ type: int
+ voiceVlan:
+ description: The voice VLAN of the switch profile port. Only applicable to access
+ ports.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch updateOrganizationConfigTemplateSwitchProfilePort
+ description: Complete reference of the updateOrganizationConfigTemplateSwitchProfilePort API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-config-template-switch-profile-port
+notes:
+ - SDK Method used are
+ switch.Switch.update_organization_config_template_switch_profile_port,
+
+ - Paths used are
+ put /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.organizations_config_templates_switch_profiles_ports:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accessPolicyNumber: 2
+ accessPolicyType: Sticky MAC allow list
+ allowedVlans: 1,3,5-10
+ configTemplateId: string
+ daiTrusted: false
+ enabled: true
+ flexibleStackingEnabled: true
+ isolationEnabled: false
+ linkNegotiation: Auto negotiate
+ macAllowList:
+ - 34:56:fe:ce:8e:b0
+ - 34:56:fe:ce:8e:b1
+ name: My switch port
+ organizationId: string
+ poeEnabled: true
+ portId: string
+ portScheduleId: '1234'
+ profile:
+ enabled: false
+ id: '1284392014819'
+ iname: iname
+ profileId: string
+ rstpEnabled: true
+ stickyMacAllowList:
+ - 34:56:fe:ce:8e:b0
+ - 34:56:fe:ce:8e:b1
+ stickyMacAllowListLimit: 5
+ stormControlEnabled: true
+ stpGuard: disabled
+ tags:
+ - tag1
+ - tag2
+ type: access
+ udld: Alert only
+ vlan: 10
+ voiceVlan: 20
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "portId": "string",
+ "name": "string",
+ "tags": [
+ "string"
+ ],
+ "enabled": true,
+ "poeEnabled": true,
+ "type": "string",
+ "vlan": 0,
+ "voiceVlan": 0,
+ "allowedVlans": "string",
+ "isolationEnabled": true,
+ "rstpEnabled": true,
+ "stpGuard": "string",
+ "linkNegotiation": "string",
+ "linkNegotiationCapabilities": [
+ "string"
+ ],
+ "portScheduleId": "string",
+ "udld": "string",
+ "accessPolicyType": "string",
+ "accessPolicyNumber": 0,
+ "macAllowList": [
+ "string"
+ ],
+ "stickyMacAllowList": [
+ "string"
+ ],
+ "stickyMacAllowListLimit": 0,
+ "stormControlEnabled": true,
+ "flexibleStackingEnabled": true,
+ "daiTrusted": true,
+ "profile": {
+ "enabled": true,
+ "id": "string",
+ "iname": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports_info.py
new file mode 100644
index 000000000..3d3351bef
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_config_templates_switch_profiles_ports_info.py
@@ -0,0 +1,162 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_config_templates_switch_profiles_ports_info
+short_description: Information module for organizations _configtemplates _switch _profiles _ports
+description:
+- Get all organizations _configtemplates _switch _profiles _ports.
+- Get organizations _configtemplates _switch _profiles _ports by id.
+- Return a switch profile port.
+- Return all the ports of a switch profile.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ configTemplateId:
+ description:
+ - ConfigTemplateId path parameter. Config template ID.
+ type: str
+ profileId:
+ description:
+ - ProfileId path parameter. Profile ID.
+ type: str
+ portId:
+ description:
+ - PortId path parameter. Port ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getOrganizationConfigTemplateSwitchProfilePort
+ description: Complete reference of the getOrganizationConfigTemplateSwitchProfilePort API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-config-template-switch-profile-port
+- name: Cisco Meraki documentation for switch getOrganizationConfigTemplateSwitchProfilePorts
+ description: Complete reference of the getOrganizationConfigTemplateSwitchProfilePorts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-config-template-switch-profile-ports
+notes:
+ - SDK Method used are
+ switch.Switch.get_organization_config_template_switch_profile_port,
+ switch.Switch.get_organization_config_template_switch_profile_ports,
+
+ - Paths used are
+ get /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports,
+ get /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _configtemplates _switch _profiles _ports
+ cisco.meraki.organizations_config_templates_switch_profiles_ports_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ configTemplateId: string
+ profileId: string
+ register: result
+
+- name: Get organizations _configtemplates _switch _profiles _ports by id
+ cisco.meraki.organizations_config_templates_switch_profiles_ports_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ configTemplateId: string
+ profileId: string
+ portId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "portId": "string",
+ "name": "string",
+ "tags": [
+ "string"
+ ],
+ "enabled": true,
+ "poeEnabled": true,
+ "type": "string",
+ "vlan": 0,
+ "voiceVlan": 0,
+ "allowedVlans": "string",
+ "isolationEnabled": true,
+ "rstpEnabled": true,
+ "stpGuard": "string",
+ "linkNegotiation": "string",
+ "linkNegotiationCapabilities": [
+ "string"
+ ],
+ "portScheduleId": "string",
+ "udld": "string",
+ "accessPolicyType": "string",
+ "accessPolicyNumber": 0,
+ "macAllowList": [
+ "string"
+ ],
+ "stickyMacAllowList": [
+ "string"
+ ],
+ "stickyMacAllowListLimit": 0,
+ "stormControlEnabled": true,
+ "flexibleStackingEnabled": true,
+ "daiTrusted": true,
+ "profile": {
+ "enabled": true,
+ "id": "string",
+ "iname": "string"
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_availabilities_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_availabilities_info.py
new file mode 100644
index 000000000..e85a88c41
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_availabilities_info.py
@@ -0,0 +1,157 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_availabilities_info
+short_description: Information module for organizations _devices _availabilities
+description:
+- Get all organizations _devices _availabilities.
+- >
+ List the availability information for devices in an organization. The data returned by this endpoint is updated
+ every 5 minutes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. Optional parameter to filter device availabilities by network ID. This filter
+ uses multiple exact matches.
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Optional parameter to filter device availabilities by device product types.
+ This filter uses multiple exact matches.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter device availabilities by device serial numbers. This
+ filter uses multiple exact matches.
+ elements: str
+ type: list
+ tags:
+ description:
+ - >
+ Tags query parameter. An optional parameter to filter devices by tags. The filtering is case-sensitive. If
+ tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact
+ matches.
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return devices which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesAvailabilities
+ description: Complete reference of the getOrganizationDevicesAvailabilities API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-availabilities
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_availabilities,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/availabilities,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _availabilities
+ cisco.meraki.organizations_devices_availabilities_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ productTypes: []
+ serials: []
+ tags: []
+ tagsFilterType: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "mac": "string",
+ "name": "string",
+ "network": {
+ "id": "string"
+ },
+ "productType": "string",
+ "serial": "string",
+ "status": "string",
+ "tags": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_info.py
new file mode 100644
index 000000000..ea91eff27
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_info.py
@@ -0,0 +1,221 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_info
+short_description: Information module for organizations _devices
+description:
+- Get all organizations _devices.
+- List the devices in an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ configurationUpdatedAfter:
+ description:
+ - >
+ ConfigurationUpdatedAfter query parameter. Filter results by whether or not the device's configuration has
+ been updated after the given timestamp.
+ type: str
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter devices by network.
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Optional parameter to filter devices by product type. Valid types are
+ wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor.
+ elements: str
+ type: list
+ tags:
+ description:
+ - Tags query parameter. Optional parameter to filter devices by tags.
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. Optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return networks which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+ name:
+ description:
+ - >
+ Name query parameter. Optional parameter to filter devices by name. All returned devices will have a name
+ that contains the search term or is an exact match.
+ type: str
+ mac:
+ description:
+ - >
+ Mac query parameter. Optional parameter to filter devices by MAC address. All returned devices will have a
+ MAC address that contains the search term or is an exact match.
+ type: str
+ serial:
+ description:
+ - >
+ Serial query parameter. Optional parameter to filter devices by serial number. All returned devices will
+ have a serial number that contains the search term or is an exact match.
+ type: str
+ model:
+ description:
+ - >
+ Model query parameter. Optional parameter to filter devices by model. All returned devices will have a model
+ that contains the search term or is an exact match.
+ type: str
+ macs:
+ description:
+ - >
+ Macs query parameter. Optional parameter to filter devices by one or more MAC addresses. All returned
+ devices will have a MAC address that is an exact match.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter devices by one or more serial numbers. All returned
+ devices will have a serial number that is an exact match.
+ elements: str
+ type: list
+ sensorMetrics:
+ description:
+ - >
+ SensorMetrics query parameter. Optional parameter to filter devices by the metrics that they provide. Only
+ applies to sensor devices.
+ elements: str
+ type: list
+ sensorAlertProfileIds:
+ description:
+ - >
+ SensorAlertProfileIds query parameter. Optional parameter to filter devices by the alert profiles that are
+ bound to them. Only applies to sensor devices.
+ elements: str
+ type: list
+ models:
+ description:
+ - >
+ Models query parameter. Optional parameter to filter devices by one or more models. All returned devices
+ will have a model that is an exact match.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevices
+ description: Complete reference of the getOrganizationDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices
+ cisco.meraki.organizations_devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ configurationUpdatedAfter: string
+ networkIds: []
+ productTypes: []
+ tags: []
+ tagsFilterType: string
+ name: string
+ mac: string
+ serial: string
+ model: string
+ macs: []
+ serials: []
+ sensorMetrics: []
+ sensorAlertProfileIds: []
+ models: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "lat": 0,
+ "lng": 0,
+ "address": "string",
+ "notes": "string",
+ "tags": [
+ "string"
+ ],
+ "networkId": "string",
+ "serial": "string",
+ "model": "string",
+ "mac": "string",
+ "lanIp": "string",
+ "firmware": "string",
+ "productType": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_power_modules_statuses_by_device_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_power_modules_statuses_by_device_info.py
new file mode 100644
index 000000000..ea3eeaf79
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_power_modules_statuses_by_device_info.py
@@ -0,0 +1,164 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_power_modules_statuses_by_device_info
+short_description: Information module for organizations _devices _powermodules _statuses _bydevice
+description:
+- Get all organizations _devices _powermodules _statuses _bydevice.
+- >
+ List the power status information for devices in an organization. The data returned by this endpoint is updated
+ every 5 minutes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. Optional parameter to filter device availabilities by network ID. This filter
+ uses multiple exact matches.
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Optional parameter to filter device availabilities by device product types.
+ This filter uses multiple exact matches.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter device availabilities by device serial numbers. This
+ filter uses multiple exact matches.
+ elements: str
+ type: list
+ tags:
+ description:
+ - >
+ Tags query parameter. An optional parameter to filter devices by tags. The filtering is case-sensitive. If
+ tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact
+ matches.
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return devices which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesPowerModulesStatusesByDevice
+ description: Complete reference of the getOrganizationDevicesPowerModulesStatusesByDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-power-modules-statuses-by-device
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_power_modules_statuses_by_device,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/powerModules/statuses/byDevice,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _powermodules _statuses _bydevice
+ cisco.meraki.organizations_devices_power_modules_statuses_by_device_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ productTypes: []
+ serials: []
+ tags: []
+ tagsFilterType: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "mac": "string",
+ "name": "string",
+ "network": {
+ "id": "string"
+ },
+ "productType": "string",
+ "serial": "string",
+ "tags": [
+ "string"
+ ],
+ "slots": [
+ {
+ "number": 0,
+ "serial": "string",
+ "model": "string",
+ "status": "string"
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_provisioning_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_provisioning_statuses_info.py
new file mode 100644
index 000000000..11f37ad66
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_provisioning_statuses_info.py
@@ -0,0 +1,162 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_provisioning_statuses_info
+short_description: Information module for organizations _devices _provisioning _statuses
+description:
+- Get all organizations _devices _provisioning _statuses.
+- List the provisioning statuses information for devices in an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. Optional parameter to filter device by network ID. This filter uses multiple
+ exact matches.
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Optional parameter to filter device by device product types. This filter uses
+ multiple exact matches.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter device by device serial numbers. This filter uses
+ multiple exact matches.
+ elements: str
+ type: list
+ status:
+ description:
+ - >
+ Status query parameter. An optional parameter to filter devices by the provisioning status. Accepted
+ statuses unprovisioned, incomplete, complete.
+ type: str
+ tags:
+ description:
+ - >
+ Tags query parameter. An optional parameter to filter devices by tags. The filtering is case-sensitive. If
+ tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact
+ matches.
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return devices which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesProvisioningStatuses
+ description: Complete reference of the getOrganizationDevicesProvisioningStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-provisioning-statuses
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_provisioning_statuses,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/provisioning/statuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _provisioning _statuses
+ cisco.meraki.organizations_devices_provisioning_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ productTypes: []
+ serials: []
+ status: string
+ tags: []
+ tagsFilterType: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "mac": "string",
+ "name": "string",
+ "network": {
+ "id": "string"
+ },
+ "productType": "string",
+ "serial": "string",
+ "status": "string",
+ "tags": [
+ "string"
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_info.py
new file mode 100644
index 000000000..535d692b1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_info.py
@@ -0,0 +1,172 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_statuses_info
+short_description: Information module for organizations _devices _statuses
+description:
+- Get all organizations _devices _statuses.
+- List the status of every Meraki device in the organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter devices by network ids.
+ elements: str
+ type: list
+ serials:
+ description:
+ - Serials query parameter. Optional parameter to filter devices by serials.
+ elements: str
+ type: list
+ statuses:
+ description:
+ - >
+ Statuses query parameter. Optional parameter to filter devices by statuses. Valid statuses are "online",
+ "alerting", "offline", "dormant".
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. An optional parameter to filter device statuses by product type. Valid types
+ are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor.
+ elements: str
+ type: list
+ models:
+ description:
+ - Models query parameter. Optional parameter to filter devices by models.
+ elements: str
+ type: list
+ tags:
+ description:
+ - >
+ Tags query parameter. An optional parameter to filter devices by tags. The filtering is case-sensitive. If
+ tags are included, 'tagsFilterType' should also be included (see below).
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return devices which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesStatuses
+ description: Complete reference of the getOrganizationDevicesStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-statuses
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_statuses,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/statuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _statuses
+ cisco.meraki.organizations_devices_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ serials: []
+ statuses: []
+ productTypes: []
+ models: []
+ tags: []
+ tagsFilterType: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "name": "string",
+ "serial": "string",
+ "mac": "string",
+ "publicIp": "string",
+ "networkId": "string",
+ "status": "string",
+ "lastReportedAt": "string",
+ "lanIp": "string",
+ "gateway": "string",
+ "ipType": "string",
+ "primaryDns": "string",
+ "secondaryDns": "string",
+ "productType": "string",
+ "components": {
+ "powerSupplies": [
+ "string"
+ ]
+ },
+ "model": "string",
+ "tags": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_overview_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_overview_info.py
new file mode 100644
index 000000000..2ba8069d6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_statuses_overview_info.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_statuses_overview_info
+short_description: Information module for organizations _devices _statuses _overview
+description:
+- Get all organizations _devices _statuses _overview.
+- Return an overview of current device statuses.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. An optional parameter to filter device statuses by product type. Valid types
+ are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor.
+ elements: str
+ type: list
+ networkIds:
+ description:
+ - NetworkIds query parameter. An optional parameter to filter device statuses by network.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesStatusesOverview
+ description: Complete reference of the getOrganizationDevicesStatusesOverview API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-statuses-overview
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_statuses_overview,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/statuses/overview,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _statuses _overview
+ cisco.meraki.organizations_devices_statuses_overview_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ productTypes: []
+ networkIds: []
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "byStatus": {
+ "online": 0,
+ "alerting": 0,
+ "offline": 0,
+ "dormant": 0
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_addresses_by_device_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_addresses_by_device_info.py
new file mode 100644
index 000000000..b29c6a345
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_addresses_by_device_info.py
@@ -0,0 +1,170 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_uplinks_addresses_by_device_info
+short_description: Information module for organizations _devices _uplinks _addresses _bydevice
+description:
+- Get all organizations _devices _uplinks _addresses _bydevice.
+- List the current uplink addresses for devices in an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. Optional parameter to filter device uplinks by network ID. This filter uses
+ multiple exact matches.
+ elements: str
+ type: list
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Optional parameter to filter device uplinks by device product types. This
+ filter uses multiple exact matches.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter device availabilities by device serial numbers. This
+ filter uses multiple exact matches.
+ elements: str
+ type: list
+ tags:
+ description:
+ - >
+ Tags query parameter. An optional parameter to filter devices by tags. The filtering is case-sensitive. If
+ tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact
+ matches.
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate
+ whether to return devices which contain ANY or ALL of the included tags. If no type is included,
+ 'withAnyTags' will be selected.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesUplinksAddressesByDevice
+ description: Complete reference of the getOrganizationDevicesUplinksAddressesByDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-uplinks-addresses-by-device
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_uplinks_addresses_by_device,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/uplinks/addresses/byDevice,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _uplinks _addresses _bydevice
+ cisco.meraki.organizations_devices_uplinks_addresses_by_device_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ productTypes: []
+ serials: []
+ tags: []
+ tagsFilterType: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "mac": "string",
+ "name": "string",
+ "network": {
+ "id": "string"
+ },
+ "productType": "string",
+ "serial": "string",
+ "tags": [
+ "string"
+ ],
+ "uplinks": [
+ {
+ "interface": "string",
+ "addresses": [
+ {
+ "protocol": "string",
+ "assignmentMode": "string",
+ "address": "string",
+ "gateway": "string",
+ "public": {
+ "address": "string"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_loss_and_latency_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_loss_and_latency_info.py
new file mode 100644
index 000000000..ee4226017
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_devices_uplinks_loss_and_latency_info.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_devices_uplinks_loss_and_latency_info
+short_description: Information module for organizations _devices _uplinkslossandlatency
+description:
+- Get all organizations _devices _uplinkslossandlatency.
+- Return the uplink loss and latency for every MX in the organization from at latest 2 minutes ago.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 60 days from today.
+ type: str
+ t1:
+ description:
+ - >
+ T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 5 minutes after t0. The
+ latest possible time that t1 can be is 2 minutes into the past.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 5 minutes. The
+ default is 5 minutes.
+ type: float
+ uplink:
+ description:
+ - >
+ Uplink query parameter. Optional filter for a specific WAN uplink. Valid uplinks are wan1, wan2, cellular.
+ Default will return all uplinks.
+ type: str
+ ip:
+ description:
+ - Ip query parameter. Optional filter for a specific destination IP. Default will return all destination IPs.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationDevicesUplinksLossAndLatency
+ description: Complete reference of the getOrganizationDevicesUplinksLossAndLatency API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-uplinks-loss-and-latency
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_devices_uplinks_loss_and_latency,
+
+ - Paths used are
+ get /organizations/{organizationId}/devices/uplinksLossAndLatency,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _devices _uplinkslossandlatency
+ cisco.meraki.organizations_devices_uplinks_loss_and_latency_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ uplink: string
+ ip: string
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "networkId": "string",
+ "serial": "string",
+ "uplink": "string",
+ "ip": "string",
+ "timeSeries": [
+ {
+ "ts": "string",
+ "lossPercent": 0,
+ "latencyMs": 0
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_info.py
new file mode 100644
index 000000000..12f704ef6
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_info.py
@@ -0,0 +1,89 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_early_access_features_info
+short_description: Information module for organizations _earlyaccess _features
+description:
+- Get all organizations _earlyaccess _features.
+- List the available early access features for organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationEarlyAccessFeatures
+ description: Complete reference of the getOrganizationEarlyAccessFeatures API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-early-access-features
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_early_access_features,
+
+ - Paths used are
+ get /organizations/{organizationId}/earlyAccess/features,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _earlyaccess _features
+ cisco.meraki.organizations_early_access_features_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "shortName": "string",
+ "name": "string",
+ "descriptions": {
+ "short": "string",
+ "long": "string"
+ },
+ "topic": "string",
+ "isOrgScopedOnly": true,
+ "documentationLink": "string",
+ "supportLink": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins.py
new file mode 100644
index 000000000..cc2b37c20
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins.py
@@ -0,0 +1,150 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_early_access_features_opt_ins
+short_description: Resource module for organizations _earlyaccess _features _optins
+description:
+- Manage operations create, update and delete of the resource organizations _earlyaccess _features _optins.
+- Create a new early access feature opt-in for an organization.
+- Delete an early access feature opt-in.
+- Update an early access feature opt-in for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ limitScopeToNetworks:
+ description: A list of network IDs to apply the opt-in to.
+ elements: str
+ type: list
+ optInId:
+ description: OptInId path parameter. Opt in ID.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ shortName:
+ description: Short name of the early access feature.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationEarlyAccessFeaturesOptIn
+ description: Complete reference of the createOrganizationEarlyAccessFeaturesOptIn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-early-access-features-opt-in
+- name: Cisco Meraki documentation for organizations deleteOrganizationEarlyAccessFeaturesOptIn
+ description: Complete reference of the deleteOrganizationEarlyAccessFeaturesOptIn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-early-access-features-opt-in
+- name: Cisco Meraki documentation for organizations updateOrganizationEarlyAccessFeaturesOptIn
+ description: Complete reference of the updateOrganizationEarlyAccessFeaturesOptIn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-early-access-features-opt-in
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_early_access_features_opt_in,
+ organizations.Organizations.delete_organization_early_access_features_opt_in,
+ organizations.Organizations.update_organization_early_access_features_opt_in,
+
+ - Paths used are
+ post /organizations/{organizationId}/earlyAccess/features/optIns,
+ delete /organizations/{organizationId}/earlyAccess/features/optIns/{optInId},
+ put /organizations/{organizationId}/earlyAccess/features/optIns/{optInId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_early_access_features_opt_ins:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ limitScopeToNetworks:
+ - N_12345
+ organizationId: string
+ shortName: has_magnetic_beta
+
+- name: Update by id
+ cisco.meraki.organizations_early_access_features_opt_ins:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ limitScopeToNetworks:
+ - N_12345
+ optInId: string
+ organizationId: string
+
+- name: Delete by id
+ cisco.meraki.organizations_early_access_features_opt_ins:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ optInId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins_info.py
new file mode 100644
index 000000000..46fa222bd
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_early_access_features_opt_ins_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_early_access_features_opt_ins_info
+short_description: Information module for organizations _earlyaccess _features _optins
+description:
+- Get all organizations _earlyaccess _features _optins.
+- Get organizations _earlyaccess _features _optins by id.
+- List the early access feature opt-ins for an organization.
+- Show an early access feature opt-in for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ optInId:
+ description:
+ - OptInId path parameter. Opt in ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationEarlyAccessFeaturesOptIn
+ description: Complete reference of the getOrganizationEarlyAccessFeaturesOptIn API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-early-access-features-opt-in
+- name: Cisco Meraki documentation for organizations getOrganizationEarlyAccessFeaturesOptIns
+ description: Complete reference of the getOrganizationEarlyAccessFeaturesOptIns API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-early-access-features-opt-ins
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_early_access_features_opt_in,
+ organizations.Organizations.get_organization_early_access_features_opt_ins,
+
+ - Paths used are
+ get /organizations/{organizationId}/earlyAccess/features/optIns,
+ get /organizations/{organizationId}/earlyAccess/features/optIns/{optInId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _earlyaccess _features _optins
+ cisco.meraki.organizations_early_access_features_opt_ins_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _earlyaccess _features _optins by id
+ cisco.meraki.organizations_early_access_features_opt_ins_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ optInId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_by_device_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_by_device_info.py
new file mode 100644
index 000000000..72755428d
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_by_device_info.py
@@ -0,0 +1,163 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_firmware_upgrades_by_device_info
+short_description: Information module for organizations _firmware _upgrades _bydevice
+description:
+- Get all organizations _firmware _upgrades _bydevice.
+- Get firmware upgrade status for the filtered devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 50. Default is 50.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter by network.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter by serial number. All returned devices will have a
+ serial number that is an exact match.
+ elements: str
+ type: list
+ macs:
+ description:
+ - >
+ Macs query parameter. Optional parameter to filter by one or more MAC addresses belonging to devices. All
+ devices returned belong to MAC addresses that are an exact match.
+ elements: str
+ type: list
+ firmwareUpgradeIds:
+ description:
+ - FirmwareUpgradeIds query parameter. Optional parameter to filter by firmware upgrade ids.
+ elements: str
+ type: list
+ firmwareUpgradeBatchIds:
+ description:
+ - FirmwareUpgradeBatchIds query parameter. Optional parameter to filter by firmware upgrade batch ids.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationFirmwareUpgradesByDevice
+ description: Complete reference of the getOrganizationFirmwareUpgradesByDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-firmware-upgrades-by-device
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_firmware_upgrades_by_device,
+
+ - Paths used are
+ get /organizations/{organizationId}/firmware/upgrades/byDevice,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _firmware _upgrades _bydevice
+ cisco.meraki.organizations_firmware_upgrades_by_device_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ serials: []
+ macs: []
+ firmwareUpgradeIds: []
+ firmwareUpgradeBatchIds: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "serial": "string",
+ "name": "string",
+ "deviceStatus": "string",
+ "upgrade": {
+ "time": "string",
+ "fromVersion": {
+ "id": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "toVersion": {
+ "id": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "status": "string",
+ "id": "string",
+ "upgradeBatchId": "string",
+ "staged": {
+ "group": {
+ "id": "string"
+ }
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_info.py
new file mode 100644
index 000000000..0179aaf68
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_firmware_upgrades_info.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_firmware_upgrades_info
+short_description: Information module for organizations _firmware _upgrades
+description:
+- Get all organizations _firmware _upgrades.
+- Get firmware upgrade information for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ status:
+ description:
+ - Status query parameter. The status of an upgrade.
+ elements: str
+ type: list
+ productType:
+ description:
+ - ProductType query parameter. The product type in a given upgrade ID.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationFirmwareUpgrades
+ description: Complete reference of the getOrganizationFirmwareUpgrades API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-firmware-upgrades
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_firmware_upgrades,
+
+ - Paths used are
+ get /organizations/{organizationId}/firmware/upgrades,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _firmware _upgrades
+ cisco.meraki.organizations_firmware_upgrades_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ status: []
+ productType: []
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "upgradeId": "string",
+ "upgradeBatchId": "string",
+ "network": {
+ "id": "string",
+ "name": "string"
+ },
+ "status": "string",
+ "time": "string",
+ "completedAt": "string",
+ "productType": "string",
+ "toVersion": {
+ "id": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ },
+ "fromVersion": {
+ "id": "string",
+ "shortName": "string",
+ "releaseType": "string",
+ "releaseDate": "string"
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_info.py
new file mode 100644
index 000000000..d42e2bc0a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_info.py
@@ -0,0 +1,129 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_info
+short_description: Information module for organizations
+description:
+- Get all organizations.
+- Get organizations by id.
+- List the organizations that the user has privileges on.
+- Return an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganization
+ description: Complete reference of the getOrganization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization
+- name: Cisco Meraki documentation for organizations getOrganizations
+ description: Complete reference of the getOrganizations API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organizations
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization,
+ organizations.Organizations.get_organizations,
+
+ - Paths used are
+ get /organizations,
+ get /organizations/{organizationId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations
+ cisco.meraki.organizations_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ register: result
+
+- name: Get organizations by id
+ cisco.meraki.organizations_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "name": "string",
+ "url": "string",
+ "api": {
+ "enabled": true
+ },
+ "licensing": {
+ "model": "string"
+ },
+ "cloud": {
+ "region": {
+ "name": "string"
+ }
+ },
+ "management": {
+ "details": [
+ {
+ "name": "string",
+ "value": "string"
+ }
+ ]
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_applications_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_applications_info.py
new file mode 100644
index 000000000..e3afc1e48
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_applications_info.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_insight_applications_info
+short_description: Information module for organizations _insight _applications
+description:
+- Get all organizations _insight _applications.
+- List all Insight tracked applications.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for insight getOrganizationInsightApplications
+ description: Complete reference of the getOrganizationInsightApplications API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-insight-applications
+notes:
+ - SDK Method used are
+ insight.Insight.get_organization_insight_applications,
+
+ - Paths used are
+ get /organizations/{organizationId}/insight/applications,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _insight _applications
+ cisco.meraki.organizations_insight_applications_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "applicationId": "string",
+ "name": "string",
+ "thresholds": {
+ "type": "string",
+ "byNetwork": [
+ {
+ "networkId": "string",
+ "goodput": 0,
+ "responseDuration": 0
+ }
+ ]
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers.py
new file mode 100644
index 000000000..afc622fdf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers.py
@@ -0,0 +1,154 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_insight_monitored_media_servers
+short_description: Resource module for organizations _insight _monitoredmediaservers
+description:
+- Manage operations create, update and delete of the resource organizations _insight _monitoredmediaservers.
+- Add a media server to be monitored for this organization. Only valid for organizations with Meraki Insight.
+- Delete a monitored media server from this organization. Only valid for organizations with Meraki Insight.
+- Update a monitored media server for this organization. Only valid for organizations with Meraki Insight.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ address:
+ description: The IP address (IPv4 only) or hostname of the media server to monitor.
+ type: str
+ bestEffortMonitoringEnabled:
+ description: Indicates that if the media server doesn't respond to ICMP pings, the
+ nearest hop will be used in its stead.
+ type: bool
+ monitoredMediaServerId:
+ description: MonitoredMediaServerId path parameter. Monitored media server ID.
+ type: str
+ name:
+ description: The name of the VoIP provider.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for insight createOrganizationInsightMonitoredMediaServer
+ description: Complete reference of the createOrganizationInsightMonitoredMediaServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-insight-monitored-media-server
+- name: Cisco Meraki documentation for insight deleteOrganizationInsightMonitoredMediaServer
+ description: Complete reference of the deleteOrganizationInsightMonitoredMediaServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-insight-monitored-media-server
+- name: Cisco Meraki documentation for insight updateOrganizationInsightMonitoredMediaServer
+ description: Complete reference of the updateOrganizationInsightMonitoredMediaServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-insight-monitored-media-server
+notes:
+ - SDK Method used are
+ insight.Insight.create_organization_insight_monitored_media_server,
+ insight.Insight.delete_organization_insight_monitored_media_server,
+ insight.Insight.update_organization_insight_monitored_media_server,
+
+ - Paths used are
+ post /organizations/{organizationId}/insight/monitoredMediaServers,
+ delete /organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId},
+ put /organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_insight_monitored_media_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ address: 123.123.123.1
+ bestEffortMonitoringEnabled: true
+ name: Sample VoIP Provider
+ organizationId: string
+
+- name: Update by id
+ cisco.meraki.organizations_insight_monitored_media_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ address: 123.123.123.1
+ bestEffortMonitoringEnabled: true
+ monitoredMediaServerId: string
+ name: Sample VoIP Provider
+ organizationId: string
+
+- name: Delete by id
+ cisco.meraki.organizations_insight_monitored_media_servers:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ monitoredMediaServerId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers_info.py
new file mode 100644
index 000000000..bc6bc218f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_insight_monitored_media_servers_info.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_insight_monitored_media_servers_info
+short_description: Information module for organizations _insight _monitoredmediaservers
+description:
+- Get all organizations _insight _monitoredmediaservers.
+- Get organizations _insight _monitoredmediaservers by id.
+- List the monitored media servers for this organization. Only valid for organizations with Meraki Insight.
+- Return a monitored media server for this organization. Only valid for organizations with Meraki Insight.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ monitoredMediaServerId:
+ description:
+ - MonitoredMediaServerId path parameter. Monitored media server ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for insight getOrganizationInsightMonitoredMediaServer
+ description: Complete reference of the getOrganizationInsightMonitoredMediaServer API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-insight-monitored-media-server
+- name: Cisco Meraki documentation for insight getOrganizationInsightMonitoredMediaServers
+ description: Complete reference of the getOrganizationInsightMonitoredMediaServers API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-insight-monitored-media-servers
+notes:
+ - SDK Method used are
+ insight.Insight.get_organization_insight_monitored_media_server,
+ insight.Insight.get_organization_insight_monitored_media_servers,
+
+ - Paths used are
+ get /organizations/{organizationId}/insight/monitoredMediaServers,
+ get /organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _insight _monitoredmediaservers
+ cisco.meraki.organizations_insight_monitored_media_servers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _insight _monitoredmediaservers by id
+ cisco.meraki.organizations_insight_monitored_media_servers_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ monitoredMediaServerId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "name": "string",
+ "address": "string",
+ "bestEffortMonitoringEnabled": true
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_claim.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_claim.py
new file mode 100644
index 000000000..93e5c7ee1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_claim.py
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_claim
+short_description: Resource module for organizations _inventory _claim
+description:
+- Manage operation create of the resource organizations _inventory _claim.
+- >
+ Claim a list of devices, licenses, and/or orders into an organization inventory. When claiming by order, all
+ devices and licenses in the order will be claimed; licenses will be added to the organization and devices will be
+ placed in the organization's inventory. Use /organizations/{organizationId}/inventory/release to release devices
+ from an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ licenses:
+ description: The licenses that should be claimed.
+ elements: dict
+ suboptions:
+ key:
+ description: The key of the license.
+ type: str
+ mode:
+ description: Co-term licensing only either 'renew' or 'addDevices'. 'addDevices'
+ will increase the license limit, while 'renew' will extend the amount of time
+ until expiration. Defaults to 'addDevices'. All licenses must be claimed with
+ the same mode, and at most one renewal can be claimed at a time. Does not
+ apply to organizations using per-device licensing model.
+ type: str
+ type: list
+ orders:
+ description: The numbers of the orders that should be claimed.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ serials:
+ description: The serials of the devices that should be claimed.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations claimIntoOrganizationInventory
+ description: Complete reference of the claimIntoOrganizationInventory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!claim-into-organization-inventory
+notes:
+ - SDK Method used are
+ organizations.Organizations.claim_into_organization_inventory,
+
+ - Paths used are
+ post /organizations/{organizationId}/inventory/claim,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_inventory_claim:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ licenses:
+ - key: Z2XXXXXXXXXX
+ mode: addDevices
+ orders:
+ - 4CXXXXXXX
+ organizationId: string
+ serials:
+ - Q234-ABCD-5678
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_devices_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_devices_info.py
new file mode 100644
index 000000000..9a589ab56
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_devices_info.py
@@ -0,0 +1,212 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_devices_info
+short_description: Information module for organizations _inventory _devices
+description:
+- Get all organizations _inventory _devices.
+- Get organizations _inventory _devices by id.
+- Return a single device from the inventory of an organization.
+- Return the device inventory for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ usedState:
+ description:
+ - UsedState query parameter. Filter results by used or unused inventory. Accepted values are 'used' or 'unused'.
+ type: str
+ search:
+ description:
+ - Search query parameter. Search for devices in inventory based on serial number, mac address, or model.
+ type: str
+ macs:
+ description:
+ - Macs query parameter. Search for devices in inventory based on mac addresses.
+ elements: str
+ type: list
+ networkIds:
+ description:
+ - NetworkIds query parameter. Search for devices in inventory based on network ids.
+ elements: str
+ type: list
+ serials:
+ description:
+ - Serials query parameter. Search for devices in inventory based on serials.
+ elements: str
+ type: list
+ models:
+ description:
+ - Models query parameter. Search for devices in inventory based on model.
+ elements: str
+ type: list
+ orderNumbers:
+ description:
+ - OrderNumbers query parameter. Search for devices in inventory based on order numbers.
+ elements: str
+ type: list
+ tags:
+ description:
+ - >
+ Tags query parameter. Filter devices by tags. The filtering is case-sensitive. If tags are included,
+ 'tagsFilterType' should also be included (see below).
+ elements: str
+ type: list
+ tagsFilterType:
+ description:
+ - >
+ TagsFilterType query parameter. To use with 'tags' parameter, to filter devices which contain ANY or ALL
+ given tags. Accepted values are 'withAnyTags' or 'withAllTags', default is 'withAnyTags'.
+ type: str
+ productTypes:
+ description:
+ - >
+ ProductTypes query parameter. Filter devices by product type. Accepted values are appliance, camera,
+ cellularGateway, sensor, switch, systemsManager, and wireless.
+ elements: str
+ type: list
+ serial:
+ description:
+ - Serial path parameter.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationInventoryDevice
+ description: Complete reference of the getOrganizationInventoryDevice API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-inventory-device
+- name: Cisco Meraki documentation for organizations getOrganizationInventoryDevices
+ description: Complete reference of the getOrganizationInventoryDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-inventory-devices
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_inventory_device,
+ organizations.Organizations.get_organization_inventory_devices,
+
+ - Paths used are
+ get /organizations/{organizationId}/inventory/devices,
+ get /organizations/{organizationId}/inventory/devices/{serial},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _inventory _devices
+ cisco.meraki.organizations_inventory_devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ usedState: string
+ search: string
+ macs: []
+ networkIds: []
+ serials: []
+ models: []
+ orderNumbers: []
+ tags: []
+ tagsFilterType: string
+ productTypes: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+- name: Get organizations _inventory _devices by id
+ cisco.meraki.organizations_inventory_devices_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ serial: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "mac": "string",
+ "serial": "string",
+ "name": "string",
+ "model": "string",
+ "networkId": "string",
+ "orderNumber": "string",
+ "claimedAt": "string",
+ "licenseExpirationDate": "string",
+ "tags": [
+ "string"
+ ],
+ "productType": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_export_events.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_export_events.py
new file mode 100644
index 000000000..8339ab0bf
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_export_events.py
@@ -0,0 +1,88 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_onboarding_cloud_monitoring_export_events
+short_description: Resource module for organizations _inventory _onboarding _cloudmonitoring _exportevents
+description:
+- Manage operation create of the resource organizations _inventory _onboarding _cloudmonitoring _exportevents.
+- Imports event logs related to the onboarding app into elastisearch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ logEvent:
+ description: The type of log event this is recording, e.g. Download or opening a
+ banner.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ request:
+ description: Used to describe if this event was the result of a redirect. E.g. A
+ query param if an info banner is being used.
+ type: str
+ targetOS:
+ description: The name of the onboarding distro being downloaded.
+ type: str
+ timestamp:
+ description: A JavaScript UTC datetime stamp for when the even occurred.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationInventoryOnboardingCloudMonitoringExportEvent
+ description: Complete reference of the createOrganizationInventoryOnboardingCloudMonitoringExportEvent API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-inventory-onboarding-cloud-monitoring-export-event
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_inventory_onboarding_cloud_monitoring_export_event,
+
+ - Paths used are
+ post /organizations/{organizationId}/inventory/onboarding/cloudMonitoring/exportEvents,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_inventory_onboarding_cloud_monitoring_export_events:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ logEvent: download
+ organizationId: string
+ request: r=cb
+ targetOS: mac
+ timestamp: 1526087474
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports.py
new file mode 100644
index 000000000..21f5c9770
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports.py
@@ -0,0 +1,95 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_onboarding_cloud_monitoring_imports
+short_description: Resource module for organizations _inventory _onboarding _cloudmonitoring _imports
+description:
+- Manage operation create of the resource organizations _inventory _onboarding _cloudmonitoring _imports.
+- Commits the import operation to complete the onboarding of a device into Dashboard for monitoring.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ devices:
+ description: A set of device imports to commit.
+ elements: dict
+ suboptions:
+ deviceId:
+ description: Import ID from the Import operation.
+ type: str
+ networkId:
+ description: Network Id.
+ type: str
+ udi:
+ description: Device UDI certificate.
+ type: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationInventoryOnboardingCloudMonitoringImport
+ description: Complete reference of the createOrganizationInventoryOnboardingCloudMonitoringImport API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-inventory-onboarding-cloud-monitoring-import
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_inventory_onboarding_cloud_monitoring_import,
+
+ - Paths used are
+ post /organizations/{organizationId}/inventory/onboarding/cloudMonitoring/imports,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_inventory_onboarding_cloud_monitoring_imports:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ devices:
+ - deviceId: 161b2602-a713-4aac-b1eb-d9b55205353d
+ networkId: '1338481'
+ udi: PID:C9200L-24P-4G SN:JAE25220R2K
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ sample: >
+ [
+ {
+ "status": "string",
+ "importId": "string",
+ "message": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports_info.py
new file mode 100644
index 000000000..c6e3cbbd7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_imports_info.py
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_onboarding_cloud_monitoring_imports_info
+short_description: Information module for organizations _inventory _onboarding _cloudmonitoring _imports
+description:
+- Get all organizations _inventory _onboarding _cloudmonitoring _imports.
+- Check the status of a committed Import operation.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ importIds:
+ description:
+ - ImportIds query parameter. Import ids from an imports.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationInventoryOnboardingCloudMonitoringImports
+ description: Complete reference of the getOrganizationInventoryOnboardingCloudMonitoringImports API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-inventory-onboarding-cloud-monitoring-imports
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_inventory_onboarding_cloud_monitoring_imports,
+
+ - Paths used are
+ get /organizations/{organizationId}/inventory/onboarding/cloudMonitoring/imports,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _inventory _onboarding _cloudmonitoring _imports
+ cisco.meraki.organizations_inventory_onboarding_cloud_monitoring_imports_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ importIds: []
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "importId": "string",
+ "device": {
+ "url": "string",
+ "created": true,
+ "status": "string"
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_networks_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_networks_info.py
new file mode 100644
index 000000000..daf4a9029
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_networks_info.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_onboarding_cloud_monitoring_networks_info
+short_description: Information module for organizations _inventory _onboarding _cloudmonitoring _networks
+description:
+- Get all organizations _inventory _onboarding _cloudmonitoring _networks.
+- Returns list of networks eligible for adding cloud monitored device.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ deviceType:
+ description:
+ - DeviceType query parameter. Device Type switch or wireless controller.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 100000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationInventoryOnboardingCloudMonitoringNetworks
+ description: Complete reference of the getOrganizationInventoryOnboardingCloudMonitoringNetworks API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-inventory-onboarding-cloud-monitoring-networks
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_inventory_onboarding_cloud_monitoring_networks,
+
+ - Paths used are
+ get /organizations/{organizationId}/inventory/onboarding/cloudMonitoring/networks,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _inventory _onboarding _cloudmonitoring _networks
+ cisco.meraki.organizations_inventory_onboarding_cloud_monitoring_networks_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ deviceType: string
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "id": "string",
+ "organizationId": "string",
+ "name": "string",
+ "productTypes": [
+ "string"
+ ],
+ "timeZone": "string",
+ "tags": [
+ "string"
+ ],
+ "enrollmentString": "string",
+ "url": "string",
+ "notes": "string",
+ "isBoundToConfigTemplate": true
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_prepare.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_prepare.py
new file mode 100644
index 000000000..d49e9788a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_onboarding_cloud_monitoring_prepare.py
@@ -0,0 +1,224 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_onboarding_cloud_monitoring_prepare
+short_description: Resource module for organizations _inventory _onboarding _cloudmonitoring _prepare
+description:
+- Manage operation create of the resource organizations _inventory _onboarding _cloudmonitoring _prepare.
+- >
+ Initiates or updates an import session. An import ID will be generated and used when you are ready to commit the
+ import.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ devices:
+ description: A set of devices to import (or update).
+ elements: dict
+ suboptions:
+ sudi:
+ description: Device SUDI certificate.
+ type: str
+ tunnel:
+ description: TLS Related Parameters.
+ suboptions:
+ certificateName:
+ description: Name of the configured TLS certificate.
+ type: str
+ localInterface:
+ description: Number of the vlan expected to be used to connect to the cloud.
+ type: int
+ loopbackNumber:
+ description: Number of the configured Loopback Interface used for TLS overlay.
+ type: int
+ name:
+ description: Name of the configured TLS tunnel.
+ type: str
+ type: dict
+ user:
+ description: User parameters.
+ suboptions:
+ username:
+ description: The name of the device user for Meraki monitoring.
+ type: str
+ type: dict
+ vty:
+ description: VTY Related Parameters.
+ suboptions:
+ accessList:
+ description: AccessList details.
+ suboptions:
+ vtyIn:
+ description: VTY in ACL.
+ suboptions:
+ name:
+ description: Name.
+ type: str
+ type: dict
+ vtyOut:
+ description: VTY out ACL.
+ suboptions:
+ name:
+ description: Name.
+ type: str
+ type: dict
+ type: dict
+ authentication:
+ description: VTY AAA authentication.
+ suboptions:
+ group:
+ description: Group Details.
+ suboptions:
+ name:
+ description: Group Name.
+ type: str
+ type: dict
+ type: dict
+ authorization:
+ description: VTY AAA authorization.
+ suboptions:
+ group:
+ description: Group Details.
+ suboptions:
+ name:
+ description: Group Name.
+ type: str
+ type: dict
+ type: dict
+ endLineNumber:
+ description: Ending line VTY number.
+ type: int
+ rotaryNumber:
+ description: SSH rotary number.
+ type: int
+ startLineNumber:
+ description: Starting line VTY number.
+ type: int
+ type: dict
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationInventoryOnboardingCloudMonitoringPrepare
+ description: Complete reference of the createOrganizationInventoryOnboardingCloudMonitoringPrepare API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-inventory-onboarding-cloud-monitoring-prepare
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_inventory_onboarding_cloud_monitoring_prepare,
+
+ - Paths used are
+ post /organizations/{organizationId}/inventory/onboarding/cloudMonitoring/prepare,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_inventory_onboarding_cloud_monitoring_prepare:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ devices:
+ - sudi: "-----BEGIN CERTIFICATE-----\n MIIDyTCCArGgAwIBAgIKBBNXOVCGU1YztjANBgkqhkiG9w0BAQsFADAnMQ4wDAYD\n\
+ \ VQQKEwVDaXNjbzEVMBMGA1UEAxMMQUNUMiBTVURJIENBMB4XDTIxMDUzMTEzNTUx\n \
+ \ NVoXDTI5MDUxNDIwMjU0MVowbTEpMCcGA1UEBRMgUElEOkM5MjAwTC0yNFAtNEcg\n \
+ \ U046SkFFMjUyMjBSMksxDjAMBgNVBAoTBUNpc2NvMRgwFgYDVQQLEw9BQ1QtMiBM\n \
+ \ aXRlIFNVREkxFjAUBgNVBAMTDUM5MjAwTC0yNFAtNEcwggEiMA0GCSqGSIb3DQEB\n AQUAA4IBDwAwggEKAoIBAQDaUPxW76g...
+ \ TR1TuP36bHh13X3vtGiDsCD88Ci2TZIqd/EDkkc7v9ipUUYVVH+YDrPt2Aukb1PH\n \
+ \ D6K0R+KhgEzRo5x54TlU6oWvjUpwNZUwwdhMWIQaUVkMyZBYNy0jGPLO8jwZhyBg\n \
+ \ 1Fneybr9pwedGbLrAaz+gdEikB8B4a/fvPjVfL5Ngb4QRjFqWuE+X3nLc0kHedep\n \
+ \ 6nfgpUNXMlStVm5nIXKP6OjmzfCHPYh9L2Ehs1TrSk1ser9Ofx0ZMVL/jBZR2EIj\n OZ8tH6KlX2/B2pbSPIO6kD5c4UA8Cf1...
+ \ VR0PAQH/BAQDAgXgMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUSNjx8cJw1Vu7\n \
+ \ fHMJk6+4uDAD+H8wTQYDVR0RBEYwRKBCBgkrBgEEAQkVAgOgNRMzQ2hpcElEPVVV\n \
+ \ VUNNaElGcUVFMklFUUVBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9MB0GA1Ud\n \
+ \ DgQWBBRdhMkFD/z5hokaQeLbaRsp4hkvbzANBgkqhkiG9w0BAQsFAAOCAQEAMtuh\n YpBz4xEZ7YdJsLpw67Q0TTJGnTBRpzA...
+ \ OwmH/iZ+tDfYQ3W3ElWTW93871DkuW4WQIfbnoHg/F7bF0DKYVkD3rpZjyz3NhzH\n \
+ \ d7cjTdJXQ85bTAOXDuxKH3qewrXxxOGXgh3I6NUq0UwMTWh84lND7Jl+ZAQkYNS2\n \
+ \ iHanTZFQBk3ML0NUb7fKDYGRTZRqwQ/upIO4S6LV1cxH/6V0qbMy3sCSHZoMLrW3\n \
+ \ 0m3M6yKpe5+VZzHZwmWdUf3Ot+zKjhveK5/YNsMIASdvtvymxUizq2Hr1hvR/kPc\n p1vuyWxipU8JfzOh/A==\n\
+ \ -----END CERTIFICATE-----\n "
+ tunnel:
+ certificateName: DeviceSUDI
+ localInterface: 1
+ loopbackNumber: 1000
+ name: MERAKI
+ user:
+ username: Meraki
+ vty:
+ accessList:
+ vtyIn:
+ name: MERAKI_IN
+ vtyOut:
+ name: MERAKI_OUT
+ authentication:
+ group:
+ name: ''
+ authorization:
+ group:
+ name: MERAKI
+ endLineNumber: 17
+ rotaryNumber: 50
+ startLineNumber: 16
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ sample: >
+ [
+ {
+ "message": "string",
+ "udi": "string",
+ "deviceId": "string",
+ "status": "string",
+ "configParams": {
+ "tunnel": {
+ "mode": "string",
+ "port": "string",
+ "host": "string",
+ "name": "string",
+ "rootCertificate": {
+ "content": "string",
+ "name": "string"
+ }
+ },
+ "cloudStaticIp": "string",
+ "user": {
+ "publicKey": "string",
+ "username": "string",
+ "secret": {
+ "hash": "string"
+ }
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_release.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_release.py
new file mode 100644
index 000000000..d0442ec75
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_inventory_release.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_inventory_release
+short_description: Resource module for organizations _inventory _release
+description:
+- Manage operation create of the resource organizations _inventory _release.
+- Release a list of claimed devices from an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ serials:
+ description: Serials of the devices that should be released.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations releaseFromOrganizationInventory
+ description: Complete reference of the releaseFromOrganizationInventory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!release-from-organization-inventory
+notes:
+ - SDK Method used are
+ organizations.Organizations.release_from_organization_inventory,
+
+ - Paths used are
+ post /organizations/{organizationId}/inventory/release,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_inventory_release:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ serials:
+ - Q234-ABCD-5678
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses.py
new file mode 100644
index 000000000..89a0bd1db
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses.py
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses
+short_description: Resource module for organizations _licenses
+description:
+- Manage operation update of the resource organizations _licenses.
+- Update a license.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ deviceSerial:
+ description: The serial number of the device to assign this license to. Set this
+ to null to unassign the license. If a different license is already active on the
+ device, this parameter will control queueing/dequeuing this license.
+ type: str
+ licenseId:
+ description: LicenseId path parameter. License ID.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations updateOrganizationLicense
+ description: Complete reference of the updateOrganizationLicense API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-license
+notes:
+ - SDK Method used are
+ organizations.Organizations.update_organization_license,
+
+ - Paths used are
+ put /organizations/{organizationId}/licenses/{licenseId},
+"""
+
+EXAMPLES = r"""
+- name: Update by id
+ cisco.meraki.organizations_licenses:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ deviceSerial: Q234-ABCD-5678
+ licenseId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "deviceSerial": "string",
+ "networkId": "string",
+ "state": "string",
+ "seatCount": 0,
+ "totalDurationInDays": 0,
+ "durationInDays": 0,
+ "permanentlyQueuedLicenses": [
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "durationInDays": 0
+ }
+ ],
+ "claimDate": "string",
+ "activationDate": "string",
+ "expirationDate": "string",
+ "headLicenseId": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_assign_seats.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_assign_seats.py
new file mode 100644
index 000000000..2306e020a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_assign_seats.py
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses_assign_seats
+short_description: Resource module for organizations _licenses _assignseats
+description:
+- Manage operation create of the resource organizations _licenses _assignseats.
+- Assign SM seats to a network. This will increase the managed SM device limit of the network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ licenseId:
+ description: The ID of the SM license to assign seats from.
+ type: str
+ networkId:
+ description: The ID of the SM network to assign the seats to.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ seatCount:
+ description: The number of seats to assign to the SM network. Must be less than
+ or equal to the total number of seats of the license.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations assignOrganizationLicensesSeats
+ description: Complete reference of the assignOrganizationLicensesSeats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!assign-organization-licenses-seats
+notes:
+ - SDK Method used are
+ organizations.Organizations.assign_organization_licenses_seats,
+
+ - Paths used are
+ post /organizations/{organizationId}/licenses/assignSeats,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_licenses_assign_seats:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ licenseId: '1234'
+ networkId: N_24329156
+ organizationId: string
+ seatCount: 20
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "resultingLicenses": [
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "deviceSerial": "string",
+ "networkId": "string",
+ "state": "string",
+ "seatCount": 0,
+ "totalDurationInDays": 0,
+ "durationInDays": 0,
+ "permanentlyQueuedLicenses": [
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "durationInDays": 0
+ }
+ ],
+ "claimDate": "string",
+ "activationDate": "string",
+ "expirationDate": "string",
+ "headLicenseId": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_info.py
new file mode 100644
index 000000000..767d34d5a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_info.py
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses_info
+short_description: Information module for organizations _licenses
+description:
+- Get organizations _licenses by id.
+- Display a license.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ licenseId:
+ description:
+ - LicenseId path parameter. License ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationLicense
+ description: Complete reference of the getOrganizationLicense API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-license
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_license,
+
+ - Paths used are
+ get /organizations/{organizationId}/licenses/{licenseId},
+"""
+
+EXAMPLES = r"""
+- name: Get organizations _licenses by id
+ cisco.meraki.organizations_licenses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ licenseId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "deviceSerial": "string",
+ "networkId": "string",
+ "state": "string",
+ "seatCount": 0,
+ "totalDurationInDays": 0,
+ "durationInDays": 0,
+ "permanentlyQueuedLicenses": [
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "durationInDays": 0
+ }
+ ],
+ "claimDate": "string",
+ "activationDate": "string",
+ "expirationDate": "string",
+ "headLicenseId": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move.py
new file mode 100644
index 000000000..933d20f61
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move.py
@@ -0,0 +1,86 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses_move
+short_description: Resource module for organizations _licenses _move
+description:
+- Manage operation create of the resource organizations _licenses _move.
+- Move licenses to another organization. This will also move any devices that the licenses are assigned to.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ destOrganizationId:
+ description: The ID of the organization to move the licenses to.
+ type: str
+ licenseIds:
+ description: A list of IDs of licenses to move to the new organization.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations moveOrganizationLicenses
+ description: Complete reference of the moveOrganizationLicenses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!move-organization-licenses
+notes:
+ - SDK Method used are
+ organizations.Organizations.move_organization_licenses,
+
+ - Paths used are
+ post /organizations/{organizationId}/licenses/move,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_licenses_move:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ destOrganizationId: '2930418'
+ licenseIds:
+ - '123'
+ - '456'
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "destOrganizationId": "string",
+ "licenseIds": [
+ "string"
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move_seats.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move_seats.py
new file mode 100644
index 000000000..912304fa1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_move_seats.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses_move_seats
+short_description: Resource module for organizations _licenses _moveseats
+description:
+- Manage operation create of the resource organizations _licenses _moveseats.
+- Move SM seats to another organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ destOrganizationId:
+ description: The ID of the organization to move the SM seats to.
+ type: str
+ licenseId:
+ description: The ID of the SM license to move the seats from.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ seatCount:
+ description: The number of seats to move to the new organization. Must be less than
+ or equal to the total number of seats of the license.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations moveOrganizationLicensesSeats
+ description: Complete reference of the moveOrganizationLicensesSeats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!move-organization-licenses-seats
+notes:
+ - SDK Method used are
+ organizations.Organizations.move_organization_licenses_seats,
+
+ - Paths used are
+ post /organizations/{organizationId}/licenses/moveSeats,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_licenses_move_seats:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ destOrganizationId: '2930418'
+ licenseId: '1234'
+ organizationId: string
+ seatCount: 20
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "destOrganizationId": "string",
+ "licenseId": "string",
+ "seatCount": 0
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_overview_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_overview_info.py
new file mode 100644
index 000000000..f10a0a179
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_overview_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses_overview_info
+short_description: Information module for organizations _licenses _overview
+description:
+- Get all organizations _licenses _overview.
+- Return an overview of the license state for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationLicensesOverview
+ description: Complete reference of the getOrganizationLicensesOverview API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-licenses-overview
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_licenses_overview,
+
+ - Paths used are
+ get /organizations/{organizationId}/licenses/overview,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _licenses _overview
+ cisco.meraki.organizations_licenses_overview_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_renew_seats.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_renew_seats.py
new file mode 100644
index 000000000..7cc5c95a5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licenses_renew_seats.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licenses_renew_seats
+short_description: Resource module for organizations _licenses _renewseats
+description:
+- Manage operation create of the resource organizations _licenses _renewseats.
+- >
+ Renew SM seats of a license. This will extend the license expiration date of managed SM devices covered by this
+ license.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ licenseIdToRenew:
+ description: The ID of the SM license to renew. This license must already be assigned
+ to an SM network.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ unusedLicenseId:
+ description: The SM license to use to renew the seats on 'licenseIdToRenew'. This
+ license must have at least as many seats available as there are seats on 'licenseIdToRenew'.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations renewOrganizationLicensesSeats
+ description: Complete reference of the renewOrganizationLicensesSeats API.
+ link: https://developer.cisco.com/meraki/api-v1/#!renew-organization-licenses-seats
+notes:
+ - SDK Method used are
+ organizations.Organizations.renew_organization_licenses_seats,
+
+ - Paths used are
+ post /organizations/{organizationId}/licenses/renewSeats,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_licenses_renew_seats:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ licenseIdToRenew: '123'
+ organizationId: string
+ unusedLicenseId: '1234'
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "resultingLicenses": [
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "deviceSerial": "string",
+ "networkId": "string",
+ "state": "string",
+ "seatCount": 0,
+ "totalDurationInDays": 0,
+ "durationInDays": 0,
+ "permanentlyQueuedLicenses": [
+ {
+ "id": "string",
+ "licenseType": "string",
+ "licenseKey": "string",
+ "orderNumber": "string",
+ "durationInDays": 0
+ }
+ ],
+ "claimDate": "string",
+ "activationDate": "string",
+ "expirationDate": "string",
+ "headLicenseId": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_info.py
new file mode 100644
index 000000000..30ace84a7
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_info.py
@@ -0,0 +1,134 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licensing_coterm_licenses_info
+short_description: Information module for organizations _licensing _coterm _licenses
+description:
+- Get all organizations _licensing _coterm _licenses.
+- List the licenses in a coterm organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ invalidated:
+ description:
+ - Invalidated query parameter. Filter for licenses that are invalidated.
+ type: bool
+ expired:
+ description:
+ - Expired query parameter. Filter for licenses that are expired.
+ type: bool
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for licensing getOrganizationLicensingCotermLicenses
+ description: Complete reference of the getOrganizationLicensingCotermLicenses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-licensing-coterm-licenses
+notes:
+ - SDK Method used are
+ licensing.Licensing.get_organization_licensing_coterm_licenses,
+
+ - Paths used are
+ get /organizations/{organizationId}/licensing/coterm/licenses,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _licensing _coterm _licenses
+ cisco.meraki.organizations_licensing_coterm_licenses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ invalidated: True
+ expired: True
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "key": "string",
+ "organizationId": "string",
+ "duration": 0,
+ "mode": "string",
+ "startedAt": "string",
+ "claimedAt": "string",
+ "invalidated": true,
+ "invalidatedAt": "string",
+ "expired": true,
+ "editions": [
+ {
+ "edition": "string",
+ "productType": "string"
+ }
+ ],
+ "counts": [
+ {
+ "model": "string",
+ "count": 0
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_move.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_move.py
new file mode 100644
index 000000000..4351b761a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_licensing_coterm_licenses_move.py
@@ -0,0 +1,158 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_licensing_coterm_licenses_move
+short_description: Resource module for organizations _licensing _coterm _licenses _move
+description:
+- Manage operation create of the resource organizations _licensing _coterm _licenses _move.
+- Moves a license to a different organization coterm only .
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ destination:
+ description: Destination data for the license move.
+ suboptions:
+ mode:
+ description: The claim mode of the moved license.
+ type: str
+ organizationId:
+ description: The organization to move the license to.
+ type: str
+ type: dict
+ licenses:
+ description: The list of licenses to move.
+ elements: dict
+ suboptions:
+ counts:
+ description: The counts to move from the license by model type.
+ elements: dict
+ suboptions:
+ count:
+ description: The number of counts to move.
+ type: int
+ model:
+ description: The license model type to move counts of.
+ type: str
+ type: list
+ key:
+ description: The license key to move counts from.
+ type: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for licensing moveOrganizationLicensingCotermLicenses
+ description: Complete reference of the moveOrganizationLicensingCotermLicenses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!move-organization-licensing-coterm-licenses
+notes:
+ - SDK Method used are
+ licensing.Licensing.move_organization_licensing_coterm_licenses,
+
+ - Paths used are
+ post /organizations/{organizationId}/licensing/coterm/licenses/move,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_licensing_coterm_licenses_move:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ destination:
+ mode: addDevices
+ organizationId: '123'
+ licenses:
+ - counts:
+ - count: 5
+ model: MR Enterprise
+ key: Z2AA-BBBB-CCCC
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "remainderLicenses": [
+ {
+ "key": "string",
+ "organizationId": "string",
+ "duration": 0,
+ "mode": "string",
+ "startedAt": "string",
+ "claimedAt": "string",
+ "invalidated": true,
+ "invalidatedAt": "string",
+ "expired": true,
+ "editions": [
+ {
+ "edition": "string",
+ "productType": "string"
+ }
+ ],
+ "counts": [
+ {
+ "model": "string",
+ "count": 0
+ }
+ ]
+ }
+ ],
+ "movedLicenses": [
+ {
+ "key": "string",
+ "organizationId": "string",
+ "duration": 0,
+ "mode": "string",
+ "startedAt": "string",
+ "claimedAt": "string",
+ "invalidated": true,
+ "invalidatedAt": "string",
+ "expired": true,
+ "editions": [
+ {
+ "edition": "string",
+ "productType": "string"
+ }
+ ],
+ "counts": [
+ {
+ "model": "string",
+ "count": 0
+ }
+ ]
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_login_security.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_login_security.py
new file mode 100644
index 000000000..1e4d85137
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_login_security.py
@@ -0,0 +1,183 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_login_security
+short_description: Resource module for organizations _loginsecurity
+description:
+- Manage operation update of the resource organizations _loginsecurity.
+- Update the login security settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ accountLockoutAttempts:
+ description: Number of consecutive failed login attempts after which users' accounts
+ will be locked.
+ type: int
+ apiAuthentication:
+ description: Details for indicating whether organization will restrict access to
+ API (but not Dashboard) to certain IP addresses.
+ suboptions:
+ ipRestrictionsForKeys:
+ description: Details for API-only IP restrictions.
+ suboptions:
+ enabled:
+ description: Boolean indicating whether the organization will restrict API
+ key (not Dashboard GUI) usage to a specific list of IP addresses or CIDR
+ ranges.
+ type: bool
+ ranges:
+ description: List of acceptable IP ranges. Entries can be single IP addresses,
+ IP address ranges, and CIDR subnets.
+ elements: str
+ type: list
+ type: dict
+ type: dict
+ enforceAccountLockout:
+ description: Boolean indicating whether users' Dashboard accounts will be locked
+ out after a specified number of consecutive failed login attempts.
+ type: bool
+ enforceDifferentPasswords:
+ description: Boolean indicating whether users, when setting a new password, are
+ forced to choose a new password that is different from any past passwords.
+ type: bool
+ enforceIdleTimeout:
+ description: Boolean indicating whether users will be logged out after being idle
+ for the specified number of minutes.
+ type: bool
+ enforceLoginIpRanges:
+ description: Boolean indicating whether organization will restrict access to Dashboard
+ (including the API) from certain IP addresses.
+ type: bool
+ enforcePasswordExpiration:
+ description: Boolean indicating whether users are forced to change their password
+ every X number of days.
+ type: bool
+ enforceStrongPasswords:
+ description: Boolean indicating whether users will be forced to choose strong passwords
+ for their accounts. Strong passwords are at least 8 characters that contain 3
+ of the following number, uppercase letter, lowercase letter, and symbol.
+ type: bool
+ enforceTwoFactorAuth:
+ description: Boolean indicating whether users in this organization will be required
+ to use an extra verification code when logging in to Dashboard. This code will
+ be sent to their mobile phone via SMS, or can be generated by the authenticator
+ application.
+ type: bool
+ idleTimeoutMinutes:
+ description: Number of minutes users can remain idle before being logged out of
+ their accounts.
+ type: int
+ loginIpRanges:
+ description: List of acceptable IP ranges. Entries can be single IP addresses, IP
+ address ranges, and CIDR subnets.
+ elements: str
+ type: list
+ numDifferentPasswords:
+ description: Number of recent passwords that new password must be distinct from.
+ type: int
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ passwordExpirationDays:
+ description: Number of days after which users will be forced to change their password.
+ type: int
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations updateOrganizationLoginSecurity
+ description: Complete reference of the updateOrganizationLoginSecurity API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-login-security
+notes:
+ - SDK Method used are
+ organizations.Organizations.update_organization_login_security,
+
+ - Paths used are
+ put /organizations/{organizationId}/loginSecurity,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_login_security:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ accountLockoutAttempts: 3
+ apiAuthentication:
+ ipRestrictionsForKeys:
+ enabled: true
+ ranges:
+ - 192.195.83.1
+ - 192.168.33.33
+ enforceAccountLockout: true
+ enforceDifferentPasswords: true
+ enforceIdleTimeout: true
+ enforceLoginIpRanges: true
+ enforcePasswordExpiration: true
+ enforceStrongPasswords: true
+ enforceTwoFactorAuth: true
+ idleTimeoutMinutes: 30
+ loginIpRanges:
+ - 192.195.83.1
+ - 192.195.83.255
+ numDifferentPasswords: 3
+ organizationId: string
+ passwordExpirationDays: 90
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "enforcePasswordExpiration": true,
+ "passwordExpirationDays": 0,
+ "enforceDifferentPasswords": true,
+ "numDifferentPasswords": 0,
+ "enforceStrongPasswords": true,
+ "enforceAccountLockout": true,
+ "accountLockoutAttempts": 0,
+ "enforceIdleTimeout": true,
+ "idleTimeoutMinutes": 0,
+ "enforceTwoFactorAuth": true,
+ "enforceLoginIpRanges": true,
+ "loginIpRanges": [
+ "string"
+ ],
+ "apiAuthentication": {
+ "ipRestrictionsForKeys": {
+ "enabled": true,
+ "ranges": [
+ "string"
+ ]
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_login_security_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_login_security_info.py
new file mode 100644
index 000000000..c9845c74e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_login_security_info.py
@@ -0,0 +1,98 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_login_security_info
+short_description: Information module for organizations _loginsecurity
+description:
+- Get all organizations _loginsecurity.
+- Returns the login security settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationLoginSecurity
+ description: Complete reference of the getOrganizationLoginSecurity API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-login-security
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_login_security,
+
+ - Paths used are
+ get /organizations/{organizationId}/loginSecurity,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _loginsecurity
+ cisco.meraki.organizations_login_security_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "enforcePasswordExpiration": true,
+ "passwordExpirationDays": 0,
+ "enforceDifferentPasswords": true,
+ "numDifferentPasswords": 0,
+ "enforceStrongPasswords": true,
+ "enforceAccountLockout": true,
+ "accountLockoutAttempts": 0,
+ "enforceIdleTimeout": true,
+ "idleTimeoutMinutes": 0,
+ "enforceTwoFactorAuth": true,
+ "enforceLoginIpRanges": true,
+ "loginIpRanges": [
+ "string"
+ ],
+ "apiAuthentication": {
+ "ipRestrictionsForKeys": {
+ "enabled": true,
+ "ranges": [
+ "string"
+ ]
+ }
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_networks_combine.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_networks_combine.py
new file mode 100644
index 000000000..06360f5f5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_networks_combine.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_networks_combine
+short_description: Resource module for organizations _networks _combine
+description:
+- Manage operation create of the resource organizations _networks _combine.
+- Combine multiple networks into a single network.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enrollmentString:
+ description: A unique identifier which can be used for device enrollment or easy
+ access through the Meraki SM Registration page or the Self Service Portal. Please
+ note that changing this field may cause existing bookmarks to break. All networks
+ that are part of this combined network will have their enrollment string appended
+ by '-network_type'. If left empty, all exisitng enrollment strings will be deleted.
+ type: str
+ name:
+ description: The name of the combined network.
+ type: str
+ networkIds:
+ description: A list of the network IDs that will be combined. If an ID of a combined
+ network is included in this list, the other networks in the list will be grouped
+ into that network.
+ elements: str
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations combineOrganizationNetworks
+ description: Complete reference of the combineOrganizationNetworks API.
+ link: https://developer.cisco.com/meraki/api-v1/#!combine-organization-networks
+notes:
+ - SDK Method used are
+ organizations.Organizations.combine_organization_networks,
+
+ - Paths used are
+ post /organizations/{organizationId}/networks/combine,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_networks_combine:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ enrollmentString: my-enrollment-string
+ name: Long Island Office
+ networkIds:
+ - N_1234
+ - N_5678
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "resultingNetwork": {
+ "id": "string",
+ "organizationId": "string",
+ "name": "string",
+ "productTypes": [
+ "string"
+ ],
+ "timeZone": "string",
+ "tags": [
+ "string"
+ ],
+ "enrollmentString": "string",
+ "url": "string",
+ "notes": "string",
+ "isBoundToConfigTemplate": true
+ }
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_openapi_spec_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_openapi_spec_info.py
new file mode 100644
index 000000000..6747690be
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_openapi_spec_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_openapi_spec_info
+short_description: Information module for organizations _openapispec
+description:
+- Get all organizations _openapispec.
+- Return the OpenAPI 2.0 Specification of the organization's API documentation in JSON.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationOpenapiSpec
+ description: Complete reference of the getOrganizationOpenapiSpec API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-openapi-spec
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_openapi_spec,
+
+ - Paths used are
+ get /organizations/{organizationId}/openapiSpec,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _openapispec
+ cisco.meraki.organizations_openapi_spec_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects.py
new file mode 100644
index 000000000..eeaccf112
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects.py
@@ -0,0 +1,172 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_policy_objects
+short_description: Resource module for organizations _policyobjects
+description:
+- Manage operations create, update and delete of the resource organizations _policyobjects.
+- Creates a new Policy Object.
+- Deletes a Policy Object.
+- Updates a Policy Object.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ category:
+ description: Category of a policy object (one of adaptivePolicy, network).
+ type: str
+ cidr:
+ description: CIDR Value of a policy object (e.g. 10.11.12.1/24").
+ type: str
+ fqdn:
+ description: Fully qualified domain name of policy object (e.g. "example.com").
+ type: str
+ groupIds:
+ description: The IDs of policy object groups the policy object belongs to.
+ elements: int
+ type: list
+ ip:
+ description: IP Address of a policy object (e.g. "1.2.3.4").
+ type: str
+ mask:
+ description: Mask of a policy object (e.g. "255.255.0.0").
+ type: str
+ name:
+ description: Name of a policy object, unique within the organization (alphanumeric,
+ space, dash, or underscore characters only).
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ policyObjectId:
+ description: PolicyObjectId path parameter. Policy object ID.
+ type: str
+ type:
+ description: Type of a policy object (one of adaptivePolicyIpv4Cidr, cidr, fqdn,
+ ipAndMask).
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationPolicyObject
+ description: Complete reference of the createOrganizationPolicyObject API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-policy-object
+- name: Cisco Meraki documentation for organizations deleteOrganizationPolicyObject
+ description: Complete reference of the deleteOrganizationPolicyObject API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-policy-object
+- name: Cisco Meraki documentation for organizations updateOrganizationPolicyObject
+ description: Complete reference of the updateOrganizationPolicyObject API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-policy-object
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_policy_object,
+ organizations.Organizations.delete_organization_policy_object,
+ organizations.Organizations.update_organization_policy_object,
+
+ - Paths used are
+ post /organizations/{organizationId}/policyObjects,
+ delete /organizations/{organizationId}/policyObjects/{policyObjectId},
+ put /organizations/{organizationId}/policyObjects/{policyObjectId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_policy_objects:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ category: network
+ groupIds: []
+ name: Web Servers - Datacenter 10
+ organizationId: string
+ type: cidr
+
+- name: Update by id
+ cisco.meraki.organizations_policy_objects:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ groupIds: []
+ name: Web Servers - Datacenter 10
+ organizationId: string
+ policyObjectId: string
+ type: cidr
+
+- name: Delete by id
+ cisco.meraki.organizations_policy_objects:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ organizationId: string
+ policyObjectId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups.py
new file mode 100644
index 000000000..34bcc5920
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups.py
@@ -0,0 +1,155 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_policy_objects_groups
+short_description: Resource module for organizations _policyobjects _groups
+description:
+- Manage operations create, update and delete of the resource organizations _policyobjects _groups.
+- Creates a new Policy Object Group.
+- Deletes a Policy Object Group.
+- Updates a Policy Object Group.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ category:
+ description: Category of a policy object group (one of NetworkObjectGroup, GeoLocationGroup,
+ PortObjectGroup, ApplicationGroup).
+ type: str
+ name:
+ description: A name for the group of network addresses, unique within the organization
+ (alphanumeric, space, dash, or underscore characters only).
+ type: str
+ objectIds:
+ description: A list of Policy Object ID's that this NetworkObjectGroup should be
+ associated to (note these ID's will replace the existing associated Policy Objects).
+ elements: int
+ type: list
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ policyObjectGroupId:
+ description: PolicyObjectGroupId path parameter. Policy object group ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationPolicyObjectsGroup
+ description: Complete reference of the createOrganizationPolicyObjectsGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-policy-objects-group
+- name: Cisco Meraki documentation for organizations deleteOrganizationPolicyObjectsGroup
+ description: Complete reference of the deleteOrganizationPolicyObjectsGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-policy-objects-group
+- name: Cisco Meraki documentation for organizations updateOrganizationPolicyObjectsGroup
+ description: Complete reference of the updateOrganizationPolicyObjectsGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-policy-objects-group
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_policy_objects_group,
+ organizations.Organizations.delete_organization_policy_objects_group,
+ organizations.Organizations.update_organization_policy_objects_group,
+
+ - Paths used are
+ post /organizations/{organizationId}/policyObjects/groups,
+ delete /organizations/{organizationId}/policyObjects/groups/{policyObjectGroupId},
+ put /organizations/{organizationId}/policyObjects/groups/{policyObjectGroupId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_policy_objects_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: Web Servers - Datacenter 10
+ objectIds: []
+ organizationId: string
+
+- name: Update by id
+ cisco.meraki.organizations_policy_objects_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ name: Web Servers - Datacenter 10
+ objectIds: []
+ organizationId: string
+ policyObjectGroupId: string
+
+- name: Delete by id
+ cisco.meraki.organizations_policy_objects_groups:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ organizationId: string
+ policyObjectGroupId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups_info.py
new file mode 100644
index 000000000..e4db45f02
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_groups_info.py
@@ -0,0 +1,139 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_policy_objects_groups_info
+short_description: Information module for organizations _policyobjects _groups
+description:
+- Get all organizations _policyobjects _groups.
+- Get organizations _policyobjects _groups by id.
+- Lists Policy Object Groups belonging to the organization.
+- Shows details of a Policy Object Group.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 10 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ policyObjectGroupId:
+ description:
+ - PolicyObjectGroupId path parameter. Policy object group ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationPolicyObjectsGroup
+ description: Complete reference of the getOrganizationPolicyObjectsGroup API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-policy-objects-group
+- name: Cisco Meraki documentation for organizations getOrganizationPolicyObjectsGroups
+ description: Complete reference of the getOrganizationPolicyObjectsGroups API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-policy-objects-groups
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_policy_objects_group,
+ organizations.Organizations.get_organization_policy_objects_groups,
+
+ - Paths used are
+ get /organizations/{organizationId}/policyObjects/groups,
+ get /organizations/{organizationId}/policyObjects/groups/{policyObjectGroupId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _policyobjects _groups
+ cisco.meraki.organizations_policy_objects_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+- name: Get organizations _policyobjects _groups by id
+ cisco.meraki.organizations_policy_objects_groups_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ policyObjectGroupId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_info.py
new file mode 100644
index 000000000..0ceccfc31
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_policy_objects_info.py
@@ -0,0 +1,139 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_policy_objects_info
+short_description: Information module for organizations _policyobjects
+description:
+- Get all organizations _policyobjects.
+- Get organizations _policyobjects by id.
+- Lists Policy Objects belonging to the organization.
+- Shows details of a Policy Object.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 10 - 5000. Default is 5000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ policyObjectId:
+ description:
+ - PolicyObjectId path parameter. Policy object ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationPolicyObject
+ description: Complete reference of the getOrganizationPolicyObject API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-policy-object
+- name: Cisco Meraki documentation for organizations getOrganizationPolicyObjects
+ description: Complete reference of the getOrganizationPolicyObjects API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-policy-objects
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_policy_object,
+ organizations.Organizations.get_organization_policy_objects,
+
+ - Paths used are
+ get /organizations/{organizationId}/policyObjects,
+ get /organizations/{organizationId}/policyObjects/{policyObjectId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _policyobjects
+ cisco.meraki.organizations_policy_objects_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+- name: Get organizations _policyobjects by id
+ cisco.meraki.organizations_policy_objects_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ policyObjectId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_saml.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml.py
new file mode 100644
index 000000000..3f9c5ecf0
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_saml
+short_description: Resource module for organizations _saml
+description:
+- Manage operation update of the resource organizations _saml.
+- Updates the SAML SSO enabled settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ enabled:
+ description: Boolean for updating SAML SSO enabled settings.
+ type: bool
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations updateOrganizationSaml
+ description: Complete reference of the updateOrganizationSaml API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-saml
+notes:
+ - SDK Method used are
+ organizations.Organizations.update_organization_saml,
+
+ - Paths used are
+ put /organizations/{organizationId}/saml,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_saml:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ enabled: true
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ true
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps.py
new file mode 100644
index 000000000..89152862f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps.py
@@ -0,0 +1,156 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_saml_idps
+short_description: Resource module for organizations _saml _idps
+description:
+- Manage operations create, update and delete of the resource organizations _saml _idps.
+- Create a SAML IdP for your organization.
+- Remove a SAML IdP in your organization.
+- Update a SAML IdP in your organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ idpId:
+ description: IdpId path parameter. Idp ID.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ sloLogoutUrl:
+ description: Dashboard will redirect users to this URL when they sign out.
+ type: str
+ x509certSha1Fingerprint:
+ description: Fingerprint (SHA1) of the SAML certificate provided by your Identity
+ Provider (IdP). This will be used for encryption / validation.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationSamlIdp
+ description: Complete reference of the createOrganizationSamlIdp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-saml-idp
+- name: Cisco Meraki documentation for organizations deleteOrganizationSamlIdp
+ description: Complete reference of the deleteOrganizationSamlIdp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-saml-idp
+- name: Cisco Meraki documentation for organizations updateOrganizationSamlIdp
+ description: Complete reference of the updateOrganizationSamlIdp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-saml-idp
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_saml_idp,
+ organizations.Organizations.delete_organization_saml_idp,
+ organizations.Organizations.update_organization_saml_idp,
+
+ - Paths used are
+ post /organizations/{organizationId}/saml/idps,
+ delete /organizations/{organizationId}/saml/idps/{idpId},
+ put /organizations/{organizationId}/saml/idps/{idpId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_saml_idps:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ organizationId: string
+ sloLogoutUrl: https://somewhere.com
+ x509certSha1Fingerprint: 00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99
+
+- name: Update by id
+ cisco.meraki.organizations_saml_idps:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ idpId: string
+ organizationId: string
+ sloLogoutUrl: https://somewhere.com
+ x509certSha1Fingerprint: 00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99
+
+- name: Delete by id
+ cisco.meraki.organizations_saml_idps:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ idpId: string
+ organizationId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ sample: >
+ [
+ {
+ "idpId": "string",
+ "consumerUrl": "string",
+ "x509certSha1Fingerprint": "string",
+ "sloLogoutUrl": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps_info.py
new file mode 100644
index 000000000..4f3ce2af1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_idps_info.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_saml_idps_info
+short_description: Information module for organizations _saml _idps
+description:
+- Get all organizations _saml _idps.
+- Get organizations _saml _idps by id.
+- Get a SAML IdP from your organization.
+- List the SAML IdPs in your organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ idpId:
+ description:
+ - IdpId path parameter. Idp ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSamlIdp
+ description: Complete reference of the getOrganizationSamlIdp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-saml-idp
+- name: Cisco Meraki documentation for organizations getOrganizationSamlIdps
+ description: Complete reference of the getOrganizationSamlIdps API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-saml-idps
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_saml_idp,
+ organizations.Organizations.get_organization_saml_idps,
+
+ - Paths used are
+ get /organizations/{organizationId}/saml/idps,
+ get /organizations/{organizationId}/saml/idps/{idpId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _saml _idps
+ cisco.meraki.organizations_saml_idps_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _saml _idps by id
+ cisco.meraki.organizations_saml_idps_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ idpId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "idpId": "string",
+ "consumerUrl": "string",
+ "x509certSha1Fingerprint": "string",
+ "sloLogoutUrl": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_info.py
new file mode 100644
index 000000000..0b3c33b4a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_saml_info
+short_description: Information module for organizations _saml
+description:
+- Get all organizations _saml.
+- Returns the SAML SSO enabled settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSaml
+ description: Complete reference of the getOrganizationSaml API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-saml
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_saml,
+
+ - Paths used are
+ get /organizations/{organizationId}/saml,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _saml
+ cisco.meraki.organizations_saml_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: int
+ sample: >
+ true
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles.py
new file mode 100644
index 000000000..77ada3876
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles.py
@@ -0,0 +1,201 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_saml_roles
+short_description: Resource module for organizations _samlroles
+description:
+- Manage operations create, update and delete of the resource organizations _samlroles.
+- Create a SAML role.
+- Remove a SAML role.
+- Update a SAML role.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ networks:
+ description: The list of networks that the SAML administrator has privileges on.
+ elements: dict
+ suboptions:
+ access:
+ description: The privilege of the SAML administrator on the network. Can be
+ one of 'full', 'read-only', 'guest-ambassador', 'monitor-only' or 'ssid-admin'.
+ type: str
+ id:
+ description: The network ID.
+ type: str
+ type: list
+ orgAccess:
+ description: The privilege of the SAML administrator on the organization. Can be
+ one of 'none', 'read-only', 'full' or 'enterprise'.
+ type: str
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ role:
+ description: The role of the SAML administrator.
+ type: str
+ samlRoleId:
+ description: SamlRoleId path parameter. Saml role ID.
+ type: str
+ tags:
+ description: The list of tags that the SAML administrator has privleges on.
+ elements: dict
+ suboptions:
+ access:
+ description: The privilege of the SAML administrator on the tag. Can be one
+ of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'.
+ type: str
+ tag:
+ description: The name of the tag.
+ type: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations createOrganizationSamlRole
+ description: Complete reference of the createOrganizationSamlRole API.
+ link: https://developer.cisco.com/meraki/api-v1/#!create-organization-saml-role
+- name: Cisco Meraki documentation for organizations deleteOrganizationSamlRole
+ description: Complete reference of the deleteOrganizationSamlRole API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-saml-role
+- name: Cisco Meraki documentation for organizations updateOrganizationSamlRole
+ description: Complete reference of the updateOrganizationSamlRole API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-saml-role
+notes:
+ - SDK Method used are
+ organizations.Organizations.create_organization_saml_role,
+ organizations.Organizations.delete_organization_saml_role,
+ organizations.Organizations.update_organization_saml_role,
+
+ - Paths used are
+ post /organizations/{organizationId}/samlRoles,
+ delete /organizations/{organizationId}/samlRoles/{samlRoleId},
+ put /organizations/{organizationId}/samlRoles/{samlRoleId},
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_saml_roles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networks:
+ - access: full
+ id: N_24329156
+ orgAccess: none
+ organizationId: string
+ role: myrole
+ tags:
+ - access: read-only
+ tag: west
+
+- name: Update by id
+ cisco.meraki.organizations_saml_roles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ networks:
+ - access: full
+ id: N_24329156
+ orgAccess: none
+ organizationId: string
+ role: myrole
+ samlRoleId: string
+ tags:
+ - access: read-only
+ tag: west
+
+- name: Delete by id
+ cisco.meraki.organizations_saml_roles:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: absent
+ organizationId: string
+ samlRoleId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "role": "string",
+ "orgAccess": "string",
+ "networks": [
+ {
+ "id": "string",
+ "access": "string"
+ }
+ ],
+ "tags": [
+ {
+ "tag": "string",
+ "access": "string"
+ }
+ ]
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles_info.py
new file mode 100644
index 000000000..35bcd5bc2
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_saml_roles_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_saml_roles_info
+short_description: Information module for organizations _samlroles
+description:
+- Get all organizations _samlroles.
+- Get organizations _samlroles by id.
+- List the SAML roles for this organization.
+- Return a SAML role.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ samlRoleId:
+ description:
+ - SamlRoleId path parameter. Saml role ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSamlRole
+ description: Complete reference of the getOrganizationSamlRole API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-saml-role
+- name: Cisco Meraki documentation for organizations getOrganizationSamlRoles
+ description: Complete reference of the getOrganizationSamlRoles API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-saml-roles
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_saml_role,
+ organizations.Organizations.get_organization_saml_roles,
+
+ - Paths used are
+ get /organizations/{organizationId}/samlRoles,
+ get /organizations/{organizationId}/samlRoles/{samlRoleId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _samlroles
+ cisco.meraki.organizations_saml_roles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _samlroles by id
+ cisco.meraki.organizations_saml_roles_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ samlRoleId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {}
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_history_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_history_info.py
new file mode 100644
index 000000000..c27a764e1
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_history_info.py
@@ -0,0 +1,184 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_sensor_readings_history_info
+short_description: Information module for organizations _sensor _readings _history
+description:
+- Get all organizations _sensor _readings _history.
+- Return all reported readings from sensors in a given timespan, sorted by timestamp.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ t0:
+ description:
+ - >
+ T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 365 days and
+ 6 hours from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 7 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days. The
+ default is 2 hours.
+ type: float
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter readings by network.
+ elements: str
+ type: list
+ serials:
+ description:
+ - Serials query parameter. Optional parameter to filter readings by sensor.
+ elements: str
+ type: list
+ metrics:
+ description:
+ - >
+ Metrics query parameter. Types of sensor readings to retrieve. If no metrics are supplied, all available
+ types of readings will be retrieved. Allowed values are battery, button, door, humidity, indoorAirQuality,
+ noise, pm25, temperature, tvoc, and water.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getOrganizationSensorReadingsHistory
+ description: Complete reference of the getOrganizationSensorReadingsHistory API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-sensor-readings-history
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_organization_sensor_readings_history,
+
+ - Paths used are
+ get /organizations/{organizationId}/sensor/readings/history,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _sensor _readings _history
+ cisco.meraki.organizations_sensor_readings_history_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ t0: string
+ t1: string
+ timespan: 0
+ networkIds: []
+ serials: []
+ metrics: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "serial": "string",
+ "network": {
+ "id": "string",
+ "name": "string"
+ },
+ "ts": "string",
+ "metric": "string",
+ "battery": {
+ "percentage": 0
+ },
+ "button": {
+ "pressType": "string"
+ },
+ "door": {
+ "open": true
+ },
+ "humidity": {
+ "relativePercentage": 0
+ },
+ "indoorAirQuality": {
+ "score": 0
+ },
+ "noise": {
+ "ambient": {
+ "level": 0
+ }
+ },
+ "pm25": {
+ "concentration": 0
+ },
+ "temperature": {
+ "fahrenheit": 0,
+ "celsius": 0
+ },
+ "tvoc": {
+ "concentration": 0
+ },
+ "water": {
+ "present": true
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_latest_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_latest_info.py
new file mode 100644
index 000000000..615c3827e
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_sensor_readings_latest_info.py
@@ -0,0 +1,168 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_sensor_readings_latest_info
+short_description: Information module for organizations _sensor _readings _latest
+description:
+- Get all organizations _sensor _readings _latest.
+- Return the latest available reading for each metric from each sensor, sorted by sensor serial.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 100. Default is 100.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter readings by network.
+ elements: str
+ type: list
+ serials:
+ description:
+ - Serials query parameter. Optional parameter to filter readings by sensor.
+ elements: str
+ type: list
+ metrics:
+ description:
+ - >
+ Metrics query parameter. Types of sensor readings to retrieve. If no metrics are supplied, all available
+ types of readings will be retrieved. Allowed values are battery, button, door, humidity, indoorAirQuality,
+ noise, pm25, temperature, tvoc, and water.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sensor getOrganizationSensorReadingsLatest
+ description: Complete reference of the getOrganizationSensorReadingsLatest API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-sensor-readings-latest
+notes:
+ - SDK Method used are
+ sensor.Sensor.get_organization_sensor_readings_latest,
+
+ - Paths used are
+ get /organizations/{organizationId}/sensor/readings/latest,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _sensor _readings _latest
+ cisco.meraki.organizations_sensor_readings_latest_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ serials: []
+ metrics: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "serial": "string",
+ "network": {
+ "id": "string",
+ "name": "string"
+ },
+ "readings": [
+ {
+ "ts": "string",
+ "metric": "string",
+ "battery": {
+ "percentage": 0
+ },
+ "button": {
+ "pressType": "string"
+ },
+ "door": {
+ "open": true
+ },
+ "humidity": {
+ "relativePercentage": 0
+ },
+ "indoorAirQuality": {
+ "score": 0
+ },
+ "noise": {
+ "ambient": {
+ "level": 0
+ }
+ },
+ "pm25": {
+ "concentration": 0
+ },
+ "temperature": {
+ "fahrenheit": 0,
+ "celsius": 0
+ },
+ "tvoc": {
+ "concentration": 0
+ },
+ "water": {
+ "present": true
+ }
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_sm_apns_cert_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_sm_apns_cert_info.py
new file mode 100644
index 000000000..549f2e4df
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_sm_apns_cert_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_sm_apns_cert_info
+short_description: Information module for organizations _sm _apnscert
+description:
+- Get all organizations _sm _apnscert.
+- Get the organization's APNS certificate.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getOrganizationSmApnsCert
+ description: Complete reference of the getOrganizationSmApnsCert API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-sm-apns-cert
+notes:
+ - SDK Method used are
+ sm.Sm.get_organization_sm_apns_cert,
+
+ - Paths used are
+ get /organizations/{organizationId}/sm/apnsCert,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _sm _apnscert
+ cisco.meraki.organizations_sm_apns_cert_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: str
+ sample: >
+ "string"
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_sm_vpp_accounts_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_sm_vpp_accounts_info.py
new file mode 100644
index 000000000..04f2f337f
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_sm_vpp_accounts_info.py
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_sm_vpp_accounts_info
+short_description: Information module for organizations _sm _vppaccounts
+description:
+- Get all organizations _sm _vppaccounts.
+- Get organizations _sm _vppaccounts by id.
+- Get a hash containing the unparsed token of the VPP account with the given ID.
+- List the VPP accounts in the organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ vppAccountId:
+ description:
+ - VppAccountId path parameter. Vpp account ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for sm getOrganizationSmVppAccount
+ description: Complete reference of the getOrganizationSmVppAccount API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-sm-vpp-account
+- name: Cisco Meraki documentation for sm getOrganizationSmVppAccounts
+ description: Complete reference of the getOrganizationSmVppAccounts API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-sm-vpp-accounts
+notes:
+ - SDK Method used are
+ sm.Sm.get_organization_sm_vpp_account,
+ sm.Sm.get_organization_sm_vpp_accounts,
+
+ - Paths used are
+ get /organizations/{organizationId}/sm/vppAccounts,
+ get /organizations/{organizationId}/sm/vppAccounts/{vppAccountId},
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _sm _vppaccounts
+ cisco.meraki.organizations_sm_vpp_accounts_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+- name: Get organizations _sm _vppaccounts by id
+ cisco.meraki.organizations_sm_vpp_accounts_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ vppAccountId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {
+ "id": "string",
+ "vppServiceToken": "string"
+ }
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_snmp.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_snmp.py
new file mode 100644
index 000000000..f64326118
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_snmp.py
@@ -0,0 +1,101 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_snmp
+short_description: Resource module for organizations _snmp
+description:
+- Manage operation update of the resource organizations _snmp.
+- Update the SNMP settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ peerIps:
+ description: The list of IPv4 addresses that are allowed to access the SNMP server.
+ elements: str
+ type: list
+ v2cEnabled:
+ description: Boolean indicating whether SNMP version 2c is enabled for the organization.
+ type: bool
+ v3AuthMode:
+ description: The SNMP version 3 authentication mode. Can be either 'MD5' or 'SHA'.
+ type: str
+ v3AuthPass:
+ description: The SNMP version 3 authentication password. Must be at least 8 characters
+ if specified.
+ type: str
+ v3Enabled:
+ description: Boolean indicating whether SNMP version 3 is enabled for the organization.
+ type: bool
+ v3PrivMode:
+ description: The SNMP version 3 privacy mode. Can be either 'DES' or 'AES128'.
+ type: str
+ v3PrivPass:
+ description: The SNMP version 3 privacy password. Must be at least 8 characters
+ if specified.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations updateOrganizationSnmp
+ description: Complete reference of the updateOrganizationSnmp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!update-organization-snmp
+notes:
+ - SDK Method used are
+ organizations.Organizations.update_organization_snmp,
+
+ - Paths used are
+ put /organizations/{organizationId}/snmp,
+"""
+
+EXAMPLES = r"""
+- name: Update all
+ cisco.meraki.organizations_snmp:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ state: present
+ organizationId: string
+ peerIps:
+ - 123.123.123.1
+ v2cEnabled: false
+ v3AuthMode: SHA
+ v3Enabled: true
+ v3PrivMode: AES128
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_snmp_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_snmp_info.py
new file mode 100644
index 000000000..4f3872a0b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_snmp_info.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_snmp_info
+short_description: Information module for organizations _snmp
+description:
+- Get all organizations _snmp.
+- Return the SNMP settings for an organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSnmp
+ description: Complete reference of the getOrganizationSnmp API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-snmp
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_snmp,
+
+ - Paths used are
+ get /organizations/{organizationId}/snmp,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _snmp
+ cisco.meraki.organizations_snmp_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample:
+ - {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_appliances_by_utilization_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_appliances_by_utilization_info.py
new file mode 100644
index 000000000..94e1b796b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_appliances_by_utilization_info.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_appliances_by_utilization_info
+short_description: Information module for organizations _summary _top _appliances _byutilization
+description:
+- Get all organizations _summary _top _appliances _byutilization.
+- Return the top 10 appliances sorted by utilization over given time range.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopAppliancesByUtilization
+ description: Complete reference of the getOrganizationSummaryTopAppliancesByUtilization API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-appliances-by-utilization
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_appliances_by_utilization,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/appliances/byUtilization,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _appliances _byutilization
+ cisco.meraki.organizations_summary_top_appliances_by_utilization_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "network": {
+ "name": "string",
+ "id": "string"
+ },
+ "name": "string",
+ "mac": "string",
+ "serial": "string",
+ "model": "string",
+ "utilization": {
+ "average": {
+ "percentage": 0
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_by_usage_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_by_usage_info.py
new file mode 100644
index 000000000..ad3ac8cfb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_by_usage_info.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_clients_by_usage_info
+short_description: Information module for organizations _summary _top _clients _byusage
+description:
+- Get all organizations _summary _top _clients _byusage.
+- Return metrics for organization's top 10 clients by data usage in mb over given time range.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopClientsByUsage
+ description: Complete reference of the getOrganizationSummaryTopClientsByUsage API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-clients-by-usage
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_clients_by_usage,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/clients/byUsage,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _clients _byusage
+ cisco.meraki.organizations_summary_top_clients_by_usage_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "mac": "string",
+ "id": "string",
+ "network": {
+ "name": "string",
+ "id": "string"
+ },
+ "usage": {
+ "total": 0,
+ "upstream": 0,
+ "downstream": 0,
+ "percentage": 0
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_manufacturers_by_usage_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_manufacturers_by_usage_info.py
new file mode 100644
index 000000000..eefbae45c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_clients_manufacturers_by_usage_info.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_clients_manufacturers_by_usage_info
+short_description: Information module for organizations _summary _top _clients _manufacturers _byusage
+description:
+- Get all organizations _summary _top _clients _manufacturers _byusage.
+- Return metrics for organization's top clients by data usage in mb over given time range, grouped by manufacturer.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopClientsManufacturersByUsage
+ description: Complete reference of the getOrganizationSummaryTopClientsManufacturersByUsage API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-clients-manufacturers-by-usage
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_clients_manufacturers_by_usage,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/clients/manufacturers/byUsage,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _clients _manufacturers _byusage
+ cisco.meraki.organizations_summary_top_clients_manufacturers_by_usage_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "clients": {
+ "counts": {
+ "total": 0
+ }
+ },
+ "usage": {
+ "total": 0,
+ "upstream": 0,
+ "downstream": 0
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_by_usage_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_by_usage_info.py
new file mode 100644
index 000000000..4268e26a3
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_by_usage_info.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_devices_by_usage_info
+short_description: Information module for organizations _summary _top _devices _byusage
+description:
+- Get all organizations _summary _top _devices _byusage.
+- >
+ Return metrics for organization's top 10 devices sorted by data usage over given time range. Default unit is
+ megabytes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopDevicesByUsage
+ description: Complete reference of the getOrganizationSummaryTopDevicesByUsage API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-devices-by-usage
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_devices_by_usage,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/devices/byUsage,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _devices _byusage
+ cisco.meraki.organizations_summary_top_devices_by_usage_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "model": "string",
+ "serial": "string",
+ "mac": "string",
+ "productType": "string",
+ "network": {
+ "name": "string",
+ "id": "string"
+ },
+ "usage": {
+ "total": 0,
+ "percentage": 0
+ },
+ "clients": {
+ "counts": {
+ "total": 0
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_models_by_usage_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_models_by_usage_info.py
new file mode 100644
index 000000000..e5b35838a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_devices_models_by_usage_info.py
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_devices_models_by_usage_info
+short_description: Information module for organizations _summary _top _devices _models _byusage
+description:
+- Get all organizations _summary _top _devices _models _byusage.
+- >
+ Return metrics for organization's top 10 device models sorted by data usage over given time range. Default unit is
+ megabytes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopDevicesModelsByUsage
+ description: Complete reference of the getOrganizationSummaryTopDevicesModelsByUsage API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-devices-models-by-usage
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_devices_models_by_usage,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/devices/models/byUsage,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _devices _models _byusage
+ cisco.meraki.organizations_summary_top_devices_models_by_usage_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "model": "string",
+ "count": 0,
+ "usage": {
+ "total": 0,
+ "average": 0
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_ssids_by_usage_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_ssids_by_usage_info.py
new file mode 100644
index 000000000..7f1b29d4b
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_ssids_by_usage_info.py
@@ -0,0 +1,109 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_ssids_by_usage_info
+short_description: Information module for organizations _summary _top _ssids _byusage
+description:
+- Get all organizations _summary _top _ssids _byusage.
+- Return metrics for organization's top 10 ssids by data usage over given time range. Default unit is megabytes.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopSsidsByUsage
+ description: Complete reference of the getOrganizationSummaryTopSsidsByUsage API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-ssids-by-usage
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_ssids_by_usage,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/ssids/byUsage,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _ssids _byusage
+ cisco.meraki.organizations_summary_top_ssids_by_usage_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "usage": {
+ "total": 0,
+ "downstream": 0,
+ "upstream": 0,
+ "percentage": 0
+ },
+ "clients": {
+ "counts": {
+ "total": 0
+ }
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_switches_by_energy_usage_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_switches_by_energy_usage_info.py
new file mode 100644
index 000000000..9efaa85a5
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_summary_top_switches_by_energy_usage_info.py
@@ -0,0 +1,107 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_summary_top_switches_by_energy_usage_info
+short_description: Information module for organizations _summary _top _switches _byenergyusage
+description:
+- Get all organizations _summary _top _switches _byenergyusage.
+- Return metrics for organization's top 10 switches by energy usage over given time range. Default unit is joules.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationSummaryTopSwitchesByEnergyUsage
+ description: Complete reference of the getOrganizationSummaryTopSwitchesByEnergyUsage API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-summary-top-switches-by-energy-usage
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_summary_top_switches_by_energy_usage,
+
+ - Paths used are
+ get /organizations/{organizationId}/summary/top/switches/byEnergyUsage,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _summary _top _switches _byenergyusage
+ cisco.meraki.organizations_summary_top_switches_by_energy_usage_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ organizationId: string
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "network": {
+ "name": "string",
+ "id": "string"
+ },
+ "name": "string",
+ "mac": "string",
+ "model": "string",
+ "usage": {
+ "total": 0
+ }
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_switch_devices_clone.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_switch_devices_clone.py
new file mode 100644
index 000000000..60d98ae7a
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_switch_devices_clone.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_switch_devices_clone
+short_description: Resource module for organizations _switch _devices _clone
+description:
+- Manage operation create of the resource organizations _switch _devices _clone.
+- >
+ Clone port-level and some switch-level configuration settings from a source switch to one or more target switches.
+ Cloned settings include Aggregation Groups, Power Settings, Multicast Settings, MTU Configuration, STP Bridge
+ priority, Port Mirroring.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ sourceSerial:
+ description: Serial number of the source switch (must be on a network not bound
+ to a template).
+ type: str
+ targetSerials:
+ description: Array of serial numbers of one or more target switches (must be on
+ a network not bound to a template).
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch cloneOrganizationSwitchDevices
+ description: Complete reference of the cloneOrganizationSwitchDevices API.
+ link: https://developer.cisco.com/meraki/api-v1/#!clone-organization-switch-devices
+notes:
+ - SDK Method used are
+ switch.Switch.clone_organization_switch_devices,
+
+ - Paths used are
+ post /organizations/{organizationId}/switch/devices/clone,
+"""
+
+EXAMPLES = r"""
+- name: Create
+ cisco.meraki.organizations_switch_devices_clone:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ sourceSerial: Q234-ABCD-5678
+ targetSerials:
+ - Q234-ABCD-0001
+ - Q234-ABCD-0002
+ - Q234-ABCD-0003
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_switch_ports_by_switch_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_switch_ports_by_switch_info.py
new file mode 100644
index 000000000..067ebd9de
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_switch_ports_by_switch_info.py
@@ -0,0 +1,190 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_switch_ports_by_switch_info
+short_description: Information module for organizations _switch _ports _byswitch
+description:
+- Get all organizations _switch _ports _byswitch.
+- List the switchports in an organization by switch.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 50. Default is 50.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - NetworkIds query parameter. Optional parameter to filter switchports by network.
+ elements: str
+ type: list
+ portProfileIds:
+ description:
+ - PortProfileIds query parameter. Optional parameter to filter switchports belonging to the specified port profiles.
+ elements: str
+ type: list
+ name:
+ description:
+ - >
+ Name query parameter. Optional parameter to filter switchports belonging to switches by name. All returned
+ switches will have a name that contains the search term or is an exact match.
+ type: str
+ mac:
+ description:
+ - >
+ Mac query parameter. Optional parameter to filter switchports belonging to switches by MAC address. All
+ returned switches will have a MAC address that contains the search term or is an exact match.
+ type: str
+ macs:
+ description:
+ - >
+ Macs query parameter. Optional parameter to filter switchports by one or more MAC addresses belonging to
+ devices. All switchports returned belong to MAC addresses of switches that are an exact match.
+ elements: str
+ type: list
+ serial:
+ description:
+ - >
+ Serial query parameter. Optional parameter to filter switchports belonging to switches by serial number. All
+ returned switches will have a serial number that contains the search term or is an exact match.
+ type: str
+ serials:
+ description:
+ - >
+ Serials query parameter. Optional parameter to filter switchports belonging to switches with one or more
+ serial numbers. All switchports returned belong to serial numbers of switches that are an exact match.
+ elements: str
+ type: list
+ configurationUpdatedAfter:
+ description:
+ - >
+ ConfigurationUpdatedAfter query parameter. Optional parameter to filter results by switches where the
+ configuration has been updated after the given timestamp.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for switch getOrganizationSwitchPortsBySwitch
+ description: Complete reference of the getOrganizationSwitchPortsBySwitch API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-switch-ports-by-switch
+notes:
+ - SDK Method used are
+ switch.Switch.get_organization_switch_ports_by_switch,
+
+ - Paths used are
+ get /organizations/{organizationId}/switch/ports/bySwitch,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _switch _ports _byswitch
+ cisco.meraki.organizations_switch_ports_by_switch_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ portProfileIds: []
+ name: string
+ mac: string
+ macs: []
+ serial: string
+ serials: []
+ configurationUpdatedAfter: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "name": "string",
+ "serial": "string",
+ "mac": "string",
+ "network": {
+ "name": "string",
+ "id": "string"
+ },
+ "model": "string",
+ "ports": [
+ {
+ "portId": "string",
+ "name": "string",
+ "tags": [
+ "string"
+ ],
+ "enabled": true,
+ "poeEnabled": true,
+ "type": "string",
+ "vlan": 0,
+ "voiceVlan": 0,
+ "allowedVlans": "string",
+ "rstpEnabled": true,
+ "stpGuard": "string",
+ "linkNegotiation": "string",
+ "accessPolicyType": "string",
+ "stickyMacAllowList": [
+ "string"
+ ],
+ "stickyMacAllowListLimit": 0
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_uplinks_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_uplinks_statuses_info.py
new file mode 100644
index 000000000..c29419b36
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_uplinks_statuses_info.py
@@ -0,0 +1,152 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_uplinks_statuses_info
+short_description: Information module for organizations _uplinks _statuses
+description:
+- Get all organizations _uplinks _statuses.
+- List the uplink status of every Meraki MX, MG and Z series devices in the organization.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. A list of network IDs. The returned devices will be filtered to only include
+ these networks.
+ elements: str
+ type: list
+ serials:
+ description:
+ - >
+ Serials query parameter. A list of serial numbers. The returned devices will be filtered to only include
+ these serials.
+ elements: str
+ type: list
+ iccids:
+ description:
+ - Iccids query parameter. A list of ICCIDs. The returned devices will be filtered to only include these ICCIDs.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationUplinksStatuses
+ description: Complete reference of the getOrganizationUplinksStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-uplinks-statuses
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_uplinks_statuses,
+
+ - Paths used are
+ get /organizations/{organizationId}/uplinks/statuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _uplinks _statuses
+ cisco.meraki.organizations_uplinks_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ serials: []
+ iccids: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "networkId": "string",
+ "serial": "string",
+ "model": "string",
+ "lastReportedAt": "string",
+ "uplinks": [
+ {
+ "interface": "string",
+ "status": "string",
+ "ip": "string",
+ "gateway": "string",
+ "publicIp": "string",
+ "primaryDns": "string",
+ "secondaryDns": "string",
+ "ipAssignedBy": "string",
+ "provider": "string",
+ "signalStat": {
+ "rsrp": "string",
+ "rsrq": "string"
+ },
+ "connectionType": "string",
+ "apn": "string",
+ "dns1": "string",
+ "dns2": "string",
+ "signalType": "string",
+ "iccid": "string"
+ }
+ ]
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_users.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_users.py
new file mode 100644
index 000000000..cbb837fd4
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_users.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_users
+short_description: Resource module for organizations _users
+description:
+- Manage operation delete of the resource organizations _users.
+- Delete a user and all of its authentication methods.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module
+author: Francisco Munoz (@fmunoz)
+options:
+ organizationId:
+ description: OrganizationId path parameter. Organization ID.
+ type: str
+ userId:
+ description: UserId path parameter. User ID.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations deleteOrganizationUser
+ description: Complete reference of the deleteOrganizationUser API.
+ link: https://developer.cisco.com/meraki/api-v1/#!delete-organization-user
+notes:
+ - SDK Method used are
+ organizations.Organizations.delete_organization_user,
+
+ - Paths used are
+ delete /organizations/{organizationId}/users/{userId},
+"""
+
+EXAMPLES = r"""
+- name: Delete by id
+ cisco.meraki.organizations_users:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ organizationId: string
+ userId: string
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: dict
+ sample: >
+ {}
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_webhooks_logs_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_webhooks_logs_info.py
new file mode 100644
index 000000000..7bd8e07eb
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_webhooks_logs_info.py
@@ -0,0 +1,134 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_webhooks_logs_info
+short_description: Information module for organizations _webhooks _logs
+description:
+- Get all organizations _webhooks _logs.
+- Return the log of webhook POSTs sent.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ t0:
+ description:
+ - T0 query parameter. The beginning of the timespan for the data. The maximum lookback period is 90 days from today.
+ type: str
+ t1:
+ description:
+ - T1 query parameter. The end of the timespan for the data. T1 can be a maximum of 31 days after t0.
+ type: str
+ timespan:
+ description:
+ - >
+ Timespan query parameter. The timespan for which the information will be fetched. If specifying timespan, do
+ not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The
+ default is 1 day.
+ type: float
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ url:
+ description:
+ - Url query parameter. The URL the webhook was sent to.
+ type: str
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for organizations getOrganizationWebhooksLogs
+ description: Complete reference of the getOrganizationWebhooksLogs API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-webhooks-logs
+notes:
+ - SDK Method used are
+ organizations.Organizations.get_organization_webhooks_logs,
+
+ - Paths used are
+ get /organizations/{organizationId}/webhooks/logs,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _webhooks _logs
+ cisco.meraki.organizations_webhooks_logs_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ t0: string
+ t1: string
+ timespan: 0
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ url: string
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "alertType": "string",
+ "loggedAt": "string",
+ "networkId": "string",
+ "organizationId": "string",
+ "responseCode": 0,
+ "responseDuration": 0,
+ "sentAt": "string",
+ "url": "string"
+ }
+ ]
+"""
diff --git a/ansible_collections/cisco/meraki/plugins/modules/organizations_wireless_devices_ethernet_statuses_info.py b/ansible_collections/cisco/meraki/plugins/modules/organizations_wireless_devices_ethernet_statuses_info.py
new file mode 100644
index 000000000..d8a5c190c
--- /dev/null
+++ b/ansible_collections/cisco/meraki/plugins/modules/organizations_wireless_devices_ethernet_statuses_info.py
@@ -0,0 +1,141 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021, Cisco Systems
+# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: organizations_wireless_devices_ethernet_statuses_info
+short_description: Information module for organizations _wireless _devices _ethernet _statuses
+description:
+- Get all organizations _wireless _devices _ethernet _statuses.
+- Endpoint to see power status for wireless devices.
+version_added: '2.16.0'
+extends_documentation_fragment:
+ - cisco.meraki.module_info
+ - cisco.meraki.module_info_pagination
+author: Francisco Munoz (@fmunoz)
+options:
+ headers:
+ description: Additional headers.
+ type: dict
+ organizationId:
+ description:
+ - OrganizationId path parameter. Organization ID.
+ type: str
+ perPage:
+ description:
+ - PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100.
+ type: int
+ startingAfter:
+ description:
+ - >
+ StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ endingBefore:
+ description:
+ - >
+ EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a
+ timestamp or an ID but it is not limited to those. This parameter should not be defined by client
+ applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.
+ type: str
+ networkIds:
+ description:
+ - >
+ NetworkIds query parameter. A list of Meraki network IDs to filter results to contain only specified
+ networks. E.g. NetworkIds=N_12345678&networkIds=L_3456.
+ elements: str
+ type: list
+requirements:
+- meraki >= 2.4.9
+- python >= 3.5
+seealso:
+- name: Cisco Meraki documentation for wireless getOrganizationWirelessDevicesEthernetStatuses
+ description: Complete reference of the getOrganizationWirelessDevicesEthernetStatuses API.
+ link: https://developer.cisco.com/meraki/api-v1/#!get-organization-wireless-devices-ethernet-statuses
+notes:
+ - SDK Method used are
+ wireless.Wireless.get_organization_wireless_devices_ethernet_statuses,
+
+ - Paths used are
+ get /organizations/{organizationId}/wireless/devices/ethernet/statuses,
+"""
+
+EXAMPLES = r"""
+- name: Get all organizations _wireless _devices _ethernet _statuses
+ cisco.meraki.organizations_wireless_devices_ethernet_statuses_info:
+ meraki_api_key: "{{meraki_api_key}}"
+ meraki_base_url: "{{meraki_base_url}}"
+ meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
+ meraki_certificate_path: "{{meraki_certificate_path}}"
+ meraki_requests_proxy: "{{meraki_requests_proxy}}"
+ meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
+ meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
+ meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
+ meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
+ meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
+ meraki_maximum_retries: "{{meraki_maximum_retries}}"
+ meraki_output_log: "{{meraki_output_log}}"
+ meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
+ meraki_log_path: "{{meraki_log_path}}"
+ meraki_print_console: "{{meraki_print_console}}"
+ meraki_suppress_logging: "{{meraki_suppress_logging}}"
+ meraki_simulate: "{{meraki_simulate}}"
+ meraki_be_geo_id: "{{meraki_be_geo_id}}"
+ meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
+ meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
+ perPage: 0
+ startingAfter: string
+ endingBefore: string
+ networkIds: []
+ organizationId: string
+ total_pages: -1
+ direction: next
+ register: result
+
+"""
+RETURN = r"""
+meraki_response:
+ description: A dictionary or list with the response returned by the Cisco Meraki Python SDK
+ returned: always
+ type: list
+ elements: dict
+ sample: >
+ [
+ {
+ "serial": "string",
+ "name": "string",
+ "network": {
+ "id": "string"
+ },
+ "power": {
+ "mode": "string",
+ "ac": {
+ "isConnected": true
+ },
+ "poe": {
+ "isConnected": true
+ }
+ },
+ "ports": [
+ {
+ "name": "string",
+ "poe": {
+ "standard": "string"
+ },
+ "linkNegotiation": {
+ "duplex": "string",
+ "speed": 0
+ }
+ }
+ ],
+ "aggregation": {
+ "enabled": true,
+ "speed": 0
+ }
+ }
+ ]
+"""