├── .ansible-lint ├── .ansible-lint-ignore ├── .github └── workflows │ ├── ansible-lint.yml │ ├── docs.yml │ └── sanity_tests.yml ├── .gitignore ├── CHANGELOG.rst ├── LICENSE ├── Makefile ├── Pipfile ├── README.md ├── changelogs ├── changelog.yaml ├── config.yaml └── fragments │ ├── add_event_queries.yml │ ├── event_query.yml │ └── meraki_inventory_plugin.yml ├── docs ├── Makefile ├── _gh_include │ ├── footer.inc │ └── header.inc ├── conf.py ├── index.rst ├── platform_meraki.rst └── requirements.txt ├── galaxy.yml ├── meta └── runtime.yml ├── playbooks ├── .DS_Store ├── Bulk_change_DNS_from_file.yaml ├── Create_a_Network.yaml ├── Get_AP_Serials.yaml ├── Get_All_Devices.yaml ├── Get_IP_MGNT_info.yaml ├── Get_IP_MGNT_info_from_file.yaml ├── Set_IP_MGNT_info.yaml ├── What_Org.yaml ├── Who_Am_I.yaml ├── administered_identities_me_api_keys_revoke.yml ├── administered_identities_me_info.yml ├── administrerd_identities_me_api_keys_generate.yml ├── credentials.template ├── device_blink_leds.yml ├── device_lldp_cdp.yml ├── device_statuses.yml ├── device_switch_ports.yml ├── devices.yml ├── devices_info.yml ├── devices_live_tools_ping.yml ├── devices_switch_routing_interfaces.yml ├── files │ └── test.template ├── hosts ├── ms_playbook.yml ├── mv_playbook.yml ├── mx_deployment.yml ├── network_devices_claim.yml ├── networks.yml ├── networks_appliance_firewall_l7_firewall_rules.yml ├── networks_appliance_traffic_shaping_rules.yml ├── networks_appliance_vlans.yml ├── networks_devices_claim_2.yml ├── networks_devices_remove.yml ├── networks_syslog_servers.yml ├── networks_wireless_ssids_identityPsks.yml ├── organization.yml ├── organization_info.yml ├── organization_summary.yml ├── organizations_adaptivePolicy_acls.yml ├── organizations_adaptive_policy_groups.yml ├── organizations_admin copy.yml ├── organizations_admin.yml ├── organizations_admin_info.yml ├── organizations_camera_custom_analytics_artifacts.yml ├── organizations_clients_search_info.yml ├── organizations_config_templates.yml ├── organizations_config_templates_info.yml ├── organizations_devices_info.yml ├── organizations_login_security.yml ├── organizations_saml_idps.yml ├── switch_port_config.yml ├── test.yml ├── who_am_i.yml ├── wifi_deploy_one.yml └── wifi_deployment.yml ├── plugins ├── README.md ├── __init__.py ├── action │ ├── administered_identities_me_api_keys_generate.py │ ├── administered_identities_me_api_keys_info.py │ ├── administered_identities_me_api_keys_revoke.py │ ├── administered_identities_me_info.py │ ├── administered_licensing_subscription_entitlements_info.py │ ├── administered_licensing_subscription_subscriptions_bind.py │ ├── administered_licensing_subscription_subscriptions_claim.py │ ├── administered_licensing_subscription_subscriptions_claim_key_validate.py │ ├── administered_licensing_subscription_subscriptions_compliance_statuses_info.py │ ├── administered_licensing_subscription_subscriptions_info.py │ ├── devices.py │ ├── devices_appliance_performance_info.py │ ├── devices_appliance_radio_settings.py │ ├── devices_appliance_radio_settings_info.py │ ├── devices_appliance_uplinks_settings.py │ ├── devices_appliance_uplinks_settings_info.py │ ├── devices_appliance_vmx_authentication_token.py │ ├── devices_blink_leds.py │ ├── devices_camera_analytics_live_info.py │ ├── devices_camera_custom_analytics.py │ ├── devices_camera_custom_analytics_info.py │ ├── devices_camera_generate_snapshot.py │ ├── devices_camera_quality_and_retention.py │ ├── devices_camera_quality_and_retention_info.py │ ├── devices_camera_sense.py │ ├── devices_camera_sense_info.py │ ├── devices_camera_video_link_info.py │ ├── devices_camera_video_settings.py │ ├── devices_camera_video_settings_info.py │ ├── devices_camera_wireless_profiles.py │ ├── devices_camera_wireless_profiles_info.py │ ├── devices_cellular_gateway_lan.py │ ├── devices_cellular_gateway_lan_info.py │ ├── devices_cellular_gateway_port_forwarding_rules.py │ ├── devices_cellular_gateway_port_forwarding_rules_info.py │ ├── devices_cellular_sims.py │ ├── devices_cellular_sims_info.py │ ├── devices_info.py │ ├── devices_live_tools_arp_table.py │ ├── devices_live_tools_arp_table_info.py │ ├── devices_live_tools_cable_test.py │ ├── devices_live_tools_cable_test_info.py │ ├── devices_live_tools_leds_blink.py │ ├── devices_live_tools_ping.py │ ├── devices_live_tools_ping_device.py │ ├── devices_live_tools_ping_device_info.py │ ├── devices_live_tools_ping_info.py │ ├── devices_live_tools_throughput_test.py │ ├── devices_live_tools_throughput_test_info.py │ ├── devices_live_tools_wake_on_lan.py │ ├── devices_live_tools_wake_on_lan_info.py │ ├── devices_lldp_cdp_info.py │ ├── devices_management_interface.py │ ├── devices_management_interface_info.py │ ├── devices_sensor_commands.py │ ├── devices_sensor_commands_info.py │ ├── devices_sensor_relationships.py │ ├── devices_sensor_relationships_info.py │ ├── devices_switch_ports.py │ ├── devices_switch_ports_cycle.py │ ├── devices_switch_ports_info.py │ ├── devices_switch_ports_statuses_info.py │ ├── devices_switch_routing_interfaces.py │ ├── devices_switch_routing_interfaces_dhcp.py │ ├── devices_switch_routing_interfaces_dhcp_info.py │ ├── devices_switch_routing_interfaces_info.py │ ├── devices_switch_routing_static_routes.py │ ├── devices_switch_routing_static_routes_info.py │ ├── devices_switch_warm_spare.py │ ├── devices_switch_warm_spare_info.py │ ├── devices_wireless_alternate_management_interface_ipv6.py │ ├── devices_wireless_bluetooth_settings.py │ ├── devices_wireless_bluetooth_settings_info.py │ ├── devices_wireless_connection_stats_info.py │ ├── devices_wireless_electronic_shelf_label.py │ ├── devices_wireless_electronic_shelf_label_info.py │ ├── devices_wireless_latency_stats_info.py │ ├── devices_wireless_radio_settings.py │ ├── devices_wireless_radio_settings_info.py │ ├── devices_wireless_status_info.py │ ├── networks.py │ ├── networks_alerts_history_info.py │ ├── networks_alerts_settings.py │ ├── networks_alerts_settings_info.py │ ├── networks_appliance_connectivity_monitoring_destinations.py │ ├── networks_appliance_connectivity_monitoring_destinations_info.py │ ├── networks_appliance_content_filtering.py │ ├── networks_appliance_content_filtering_categories_info.py │ ├── networks_appliance_content_filtering_info.py │ ├── networks_appliance_firewall_cellular_firewall_rules.py │ ├── networks_appliance_firewall_cellular_firewall_rules_info.py │ ├── networks_appliance_firewall_firewalled_services.py │ ├── networks_appliance_firewall_firewalled_services_info.py │ ├── networks_appliance_firewall_inbound_firewall_rules.py │ ├── networks_appliance_firewall_inbound_firewall_rules_info.py │ ├── networks_appliance_firewall_l3_firewall_rules.py │ ├── networks_appliance_firewall_l3_firewall_rules_info.py │ ├── networks_appliance_firewall_l7_firewall_rules.py │ ├── networks_appliance_firewall_l7_firewall_rules_application_categories_info.py │ ├── networks_appliance_firewall_l7_firewall_rules_info.py │ ├── networks_appliance_firewall_multicast_forwarding.py │ ├── networks_appliance_firewall_one_to_many_nat_rules.py │ ├── networks_appliance_firewall_one_to_many_nat_rules_info.py │ ├── networks_appliance_firewall_one_to_one_nat_rules.py │ ├── networks_appliance_firewall_one_to_one_nat_rules_info.py │ ├── networks_appliance_firewall_port_forwarding_rules.py │ ├── networks_appliance_firewall_port_forwarding_rules_info.py │ ├── networks_appliance_firewall_settings.py │ ├── networks_appliance_firewall_settings_info.py │ ├── networks_appliance_ports.py │ ├── networks_appliance_ports_info.py │ ├── networks_appliance_prefixes_delegated_statics.py │ ├── networks_appliance_prefixes_delegated_statics_info.py │ ├── networks_appliance_rf_profiles.py │ ├── networks_appliance_rf_profiles_info.py │ ├── networks_appliance_sdwan_internet_policies.py │ ├── networks_appliance_security_intrusion.py │ ├── networks_appliance_security_intrusion_info.py │ ├── networks_appliance_security_malware.py │ ├── networks_appliance_security_malware_info.py │ ├── networks_appliance_settings.py │ ├── networks_appliance_settings_info.py │ ├── networks_appliance_single_lan.py │ ├── networks_appliance_single_lan_info.py │ ├── networks_appliance_ssids.py │ ├── networks_appliance_ssids_info.py │ ├── networks_appliance_traffic_shaping.py │ ├── networks_appliance_traffic_shaping_custom_performance_classes.py │ ├── networks_appliance_traffic_shaping_custom_performance_classes_info.py │ ├── networks_appliance_traffic_shaping_info.py │ ├── networks_appliance_traffic_shaping_rules.py │ ├── networks_appliance_traffic_shaping_rules_info.py │ ├── networks_appliance_traffic_shaping_uplink_bandwidth.py │ ├── networks_appliance_traffic_shaping_uplink_bandwidth_info.py │ ├── networks_appliance_traffic_shaping_uplink_selection.py │ ├── networks_appliance_traffic_shaping_uplink_selection_info.py │ ├── networks_appliance_traffic_shaping_vpn_exclusions.py │ ├── networks_appliance_vlans.py │ ├── networks_appliance_vlans_info.py │ ├── networks_appliance_vlans_settings.py │ ├── networks_appliance_vlans_settings_info.py │ ├── networks_appliance_vpn_bgp.py │ ├── networks_appliance_vpn_bgp_info.py │ ├── networks_appliance_vpn_site_to_site_vpn.py │ ├── networks_appliance_vpn_site_to_site_vpn_info.py │ ├── networks_appliance_warm_spare.py │ ├── networks_appliance_warm_spare_info.py │ ├── networks_appliance_warm_spare_swap.py │ ├── networks_bind.py │ ├── networks_bluetooth_clients_info.py │ ├── networks_camera_quality_retention_profiles.py │ ├── networks_camera_quality_retention_profiles_info.py │ ├── networks_camera_wireless_profiles.py │ ├── networks_camera_wireless_profiles_info.py │ ├── networks_cancel.py │ ├── networks_cellular_gateway_connectivity_monitoring_destinations.py │ ├── networks_cellular_gateway_connectivity_monitoring_destinations_info.py │ ├── networks_cellular_gateway_dhcp.py │ ├── networks_cellular_gateway_dhcp_info.py │ ├── networks_cellular_gateway_subnet_pool.py │ ├── networks_cellular_gateway_subnet_pool_info.py │ ├── networks_cellular_gateway_uplink.py │ ├── networks_cellular_gateway_uplink_info.py │ ├── networks_clients_info.py │ ├── networks_clients_overview_info.py │ ├── networks_clients_policy.py │ ├── networks_clients_policy_info.py │ ├── networks_clients_provision.py │ ├── networks_clients_splash_authorization_status.py │ ├── networks_clients_splash_authorization_status_info.py │ ├── networks_devices_claim.py │ ├── networks_devices_claim_vmx.py │ ├── networks_devices_remove.py │ ├── networks_events_event_types_info.py │ ├── networks_events_info.py │ ├── networks_firmware_upgrades.py │ ├── networks_firmware_upgrades_info.py │ ├── networks_firmware_upgrades_rollbacks.py │ ├── networks_firmware_upgrades_staged_events.py │ ├── networks_firmware_upgrades_staged_events_defer.py │ ├── networks_firmware_upgrades_staged_events_info.py │ ├── networks_firmware_upgrades_staged_events_rollbacks.py │ ├── networks_firmware_upgrades_staged_groups.py │ ├── networks_firmware_upgrades_staged_groups_info.py │ ├── networks_firmware_upgrades_staged_stages.py │ ├── networks_firmware_upgrades_staged_stages_info.py │ ├── networks_floor_plans.py │ ├── networks_floor_plans_auto_locate_jobs_batch.py │ ├── networks_floor_plans_devices_batch_update.py │ ├── networks_floor_plans_info.py │ ├── networks_group_policies.py │ ├── networks_group_policies_info.py │ ├── networks_health_alerts_info.py │ ├── networks_info.py │ ├── networks_insight_applications_health_by_time_info.py │ ├── networks_meraki_auth_users.py │ ├── networks_meraki_auth_users_info.py │ ├── networks_mqtt_brokers.py │ ├── networks_netflow.py │ ├── networks_netflow_info.py │ ├── networks_pii_pii_keys_info.py │ ├── networks_pii_requests_delete.py │ ├── networks_pii_requests_info.py │ ├── networks_pii_sm_devices_for_key_info.py │ ├── networks_pii_sm_owners_for_key_info.py │ ├── networks_policies_by_client_info.py │ ├── networks_publish.py │ ├── networks_recalculate.py │ ├── networks_sensor_alerts_current_overview_by_metric_info.py │ ├── networks_sensor_alerts_overview_by_metric_info.py │ ├── networks_sensor_alerts_profiles.py │ ├── networks_sensor_alerts_profiles_info.py │ ├── networks_sensor_mqtt_brokers.py │ ├── networks_sensor_mqtt_brokers_info.py │ ├── networks_sensor_relationships_info.py │ ├── networks_settings.py │ ├── networks_settings_info.py │ ├── networks_sm_bypass_activation_lock_attempts.py │ ├── networks_sm_bypass_activation_lock_attempts_info.py │ ├── networks_sm_devices_cellular_usage_history_info.py │ ├── networks_sm_devices_certs_info.py │ ├── networks_sm_devices_checkin.py │ ├── networks_sm_devices_connectivity_info.py │ ├── networks_sm_devices_desktop_logs_info.py │ ├── networks_sm_devices_device_command_logs_info.py │ ├── networks_sm_devices_device_profiles_info.py │ ├── networks_sm_devices_fields.py │ ├── networks_sm_devices_info.py │ ├── networks_sm_devices_install_apps.py │ ├── networks_sm_devices_lock.py │ ├── networks_sm_devices_modify_tags.py │ ├── networks_sm_devices_move.py │ ├── networks_sm_devices_network_adapters_info.py │ ├── networks_sm_devices_performance_history_info.py │ ├── networks_sm_devices_reboot.py │ ├── networks_sm_devices_refresh_details.py │ ├── networks_sm_devices_security_centers_info.py │ ├── networks_sm_devices_shutdown.py │ ├── networks_sm_devices_unenroll.py │ ├── networks_sm_devices_uninstall_apps.py │ ├── networks_sm_devices_wipe.py │ ├── networks_sm_devices_wlan_lists_info.py │ ├── networks_sm_profiles_info.py │ ├── networks_sm_target_groups.py │ ├── networks_sm_target_groups_info.py │ ├── networks_sm_trusted_access_configs_info.py │ ├── networks_sm_user_access_devices_delete.py │ ├── networks_sm_user_access_devices_info.py │ ├── networks_sm_users_device_profiles_info.py │ ├── networks_sm_users_info.py │ ├── networks_sm_users_softwares_info.py │ ├── networks_snmp.py │ ├── networks_snmp_info.py │ ├── networks_split.py │ ├── networks_switch_access_control_lists.py │ ├── networks_switch_access_control_lists_info.py │ ├── networks_switch_access_policies.py │ ├── networks_switch_access_policies_info.py │ ├── networks_switch_alternate_management_interface.py │ ├── networks_switch_alternate_management_interface_info.py │ ├── networks_switch_dhcp_server_policy.py │ ├── networks_switch_dhcp_server_policy_arp_inspection_trusted_servers.py │ ├── networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info.py │ ├── networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info.py │ ├── networks_switch_dhcp_server_policy_info.py │ ├── networks_switch_dhcp_v4_servers_seen_info.py │ ├── networks_switch_dscp_to_cos_mappings.py │ ├── networks_switch_dscp_to_cos_mappings_info.py │ ├── networks_switch_link_aggregations.py │ ├── networks_switch_link_aggregations_info.py │ ├── networks_switch_mtu.py │ ├── networks_switch_mtu_info.py │ ├── networks_switch_port_schedules.py │ ├── networks_switch_port_schedules_info.py │ ├── networks_switch_qos_rules_order.py │ ├── networks_switch_qos_rules_order_info.py │ ├── networks_switch_routing_multicast.py │ ├── networks_switch_routing_multicast_info.py │ ├── networks_switch_routing_multicast_rendezvous_points.py │ ├── networks_switch_routing_multicast_rendezvous_points_info.py │ ├── networks_switch_routing_ospf.py │ ├── networks_switch_routing_ospf_info.py │ ├── networks_switch_settings.py │ ├── networks_switch_settings_info.py │ ├── networks_switch_stacks.py │ ├── networks_switch_stacks_add.py │ ├── networks_switch_stacks_info.py │ ├── networks_switch_stacks_remove.py │ ├── networks_switch_stacks_routing_interfaces.py │ ├── networks_switch_stacks_routing_interfaces_dhcp.py │ ├── networks_switch_stacks_routing_interfaces_dhcp_info.py │ ├── networks_switch_stacks_routing_interfaces_info.py │ ├── networks_switch_stacks_routing_static_routes.py │ ├── networks_switch_stacks_routing_static_routes_info.py │ ├── networks_switch_storm_control.py │ ├── networks_switch_storm_control_info.py │ ├── networks_switch_stp.py │ ├── networks_switch_stp_info.py │ ├── networks_syslog_servers.py │ ├── networks_syslog_servers_info.py │ ├── networks_topology_link_layer_info.py │ ├── networks_traffic_analysis.py │ ├── networks_traffic_analysis_info.py │ ├── networks_traffic_shaping_application_categories_info.py │ ├── networks_traffic_shaping_dscp_tagging_options_info.py │ ├── networks_unbind.py │ ├── networks_vlan_profiles.py │ ├── networks_vlan_profiles_assignments_by_device_info.py │ ├── networks_vlan_profiles_assignments_reassign.py │ ├── networks_vlan_profiles_info.py │ ├── networks_webhooks_http_servers.py │ ├── networks_webhooks_http_servers_info.py │ ├── networks_webhooks_payload_templates.py │ ├── networks_webhooks_payload_templates_info.py │ ├── networks_webhooks_webhook_tests_info.py │ ├── networks_wireless_air_marshal_rules.py │ ├── networks_wireless_air_marshal_rules_delete.py │ ├── networks_wireless_air_marshal_rules_update.py │ ├── networks_wireless_air_marshal_settings.py │ ├── networks_wireless_alternate_management_interface.py │ ├── networks_wireless_alternate_management_interface_info.py │ ├── networks_wireless_billing.py │ ├── networks_wireless_billing_info.py │ ├── networks_wireless_bluetooth_settings.py │ ├── networks_wireless_bluetooth_settings_info.py │ ├── networks_wireless_channel_utilization_history_info.py │ ├── networks_wireless_client_count_history_info.py │ ├── networks_wireless_clients_connection_stats_info.py │ ├── networks_wireless_clients_latency_stats_info.py │ ├── networks_wireless_connection_stats_info.py │ ├── networks_wireless_data_rate_history_info.py │ ├── networks_wireless_devices_connection_stats_info.py │ ├── networks_wireless_electronic_shelf_label.py │ ├── networks_wireless_electronic_shelf_label_configured_devices_info.py │ ├── networks_wireless_electronic_shelf_label_info.py │ ├── networks_wireless_ethernet_ports_profiles.py │ ├── networks_wireless_ethernet_ports_profiles_assign.py │ ├── networks_wireless_ethernet_ports_profiles_info.py │ ├── networks_wireless_ethernet_ports_profiles_set_default.py │ ├── networks_wireless_failed_connections_info.py │ ├── networks_wireless_latency_history_info.py │ ├── networks_wireless_latency_stats_info.py │ ├── networks_wireless_mesh_statuses_info.py │ ├── networks_wireless_rf_profiles.py │ ├── networks_wireless_rf_profiles_info.py │ ├── networks_wireless_settings.py │ ├── networks_wireless_settings_info.py │ ├── networks_wireless_signal_quality_history_info.py │ ├── networks_wireless_ssids.py │ ├── networks_wireless_ssids_bonjour_forwarding.py │ ├── networks_wireless_ssids_bonjour_forwarding_info.py │ ├── networks_wireless_ssids_device_type_group_policies.py │ ├── networks_wireless_ssids_device_type_group_policies_info.py │ ├── networks_wireless_ssids_eap_override.py │ ├── networks_wireless_ssids_eap_override_info.py │ ├── networks_wireless_ssids_firewall_l3_firewall_rules.py │ ├── networks_wireless_ssids_firewall_l3_firewall_rules_info.py │ ├── networks_wireless_ssids_firewall_l7_firewall_rules.py │ ├── networks_wireless_ssids_firewall_l7_firewall_rules_info.py │ ├── networks_wireless_ssids_hotspot20.py │ ├── networks_wireless_ssids_hotspot20_info.py │ ├── networks_wireless_ssids_identity_psks.py │ ├── networks_wireless_ssids_identity_psks_info.py │ ├── networks_wireless_ssids_info.py │ ├── networks_wireless_ssids_schedules.py │ ├── networks_wireless_ssids_schedules_info.py │ ├── networks_wireless_ssids_splash_settings.py │ ├── networks_wireless_ssids_splash_settings_info.py │ ├── networks_wireless_ssids_traffic_shaping_rules.py │ ├── networks_wireless_ssids_traffic_shaping_rules_info.py │ ├── networks_wireless_ssids_vpn.py │ ├── networks_wireless_ssids_vpn_info.py │ ├── networks_wireless_usage_history_info.py │ ├── organizations.py │ ├── organizations_action_batches.py │ ├── organizations_action_batches_info.py │ ├── organizations_adaptive_policy_acls.py │ ├── organizations_adaptive_policy_acls_info.py │ ├── organizations_adaptive_policy_groups.py │ ├── organizations_adaptive_policy_groups_info.py │ ├── organizations_adaptive_policy_overview_info.py │ ├── organizations_adaptive_policy_policies.py │ ├── organizations_adaptive_policy_policies_info.py │ ├── organizations_adaptive_policy_settings.py │ ├── organizations_adaptive_policy_settings_info.py │ ├── organizations_admins.py │ ├── organizations_admins_info.py │ ├── organizations_alerts_profiles.py │ ├── organizations_api_requests_info.py │ ├── organizations_api_requests_overview_info.py │ ├── organizations_api_requests_overview_response_codes_by_interval_info.py │ ├── organizations_appliance_dns_local_profiles.py │ ├── organizations_appliance_dns_local_profiles_assignments_bulk_create.py │ ├── organizations_appliance_dns_local_profiles_assignments_bulk_delete.py │ ├── organizations_appliance_dns_local_profiles_assignments_info.py │ ├── organizations_appliance_dns_local_profiles_info.py │ ├── organizations_appliance_dns_local_records.py │ ├── organizations_appliance_dns_local_records_info.py │ ├── organizations_appliance_dns_split_profiles.py │ ├── organizations_appliance_dns_split_profiles_assignments_bulk_create.py │ ├── organizations_appliance_dns_split_profiles_assignments_bulk_delete.py │ ├── organizations_appliance_dns_split_profiles_assignments_info.py │ ├── organizations_appliance_dns_split_profiles_info.py │ ├── organizations_appliance_firewall_multicast_forwarding_by_network_info.py │ ├── organizations_appliance_security_intrusion.py │ ├── organizations_appliance_security_intrusion_info.py │ ├── organizations_appliance_traffic_shaping_vpn_exclusions_by_network_info.py │ ├── organizations_appliance_uplinks_statuses_overview_info.py │ ├── organizations_appliance_uplinks_usage_by_network_info.py │ ├── organizations_appliance_vpn_third_party_vpnpeers.py │ ├── organizations_appliance_vpn_third_party_vpnpeers_info.py │ ├── organizations_appliance_vpn_vpn_firewall_rules.py │ ├── organizations_appliance_vpn_vpn_firewall_rules_info.py │ ├── organizations_assets.py │ ├── organizations_assurance_alerts_dismiss.py │ ├── organizations_assurance_alerts_info.py │ ├── organizations_assurance_alerts_overview_by_network_info.py │ ├── organizations_assurance_alerts_overview_by_type_info.py │ ├── organizations_assurance_alerts_overview_historical_info.py │ ├── organizations_assurance_alerts_overview_info.py │ ├── organizations_assurance_alerts_restore.py │ ├── organizations_branding_policies.py │ ├── organizations_branding_policies_info.py │ ├── organizations_branding_policies_priorities.py │ ├── organizations_branding_policies_priorities_info.py │ ├── organizations_camera_boundaries_areas_by_device_info.py │ ├── organizations_camera_boundaries_lines_by_device_info.py │ ├── organizations_camera_custom_analytics_artifacts.py │ ├── organizations_camera_custom_analytics_artifacts_info.py │ ├── organizations_camera_detections_history_by_boundary_by_interval_info.py │ ├── organizations_camera_permissions_info.py │ ├── organizations_camera_roles.py │ ├── organizations_camera_roles_info.py │ ├── organizations_cellular_gateway_esims_inventory_info.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts_communication_plans_info.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts_info.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts_rate_plans_info.py │ ├── organizations_cellular_gateway_esims_service_providers_info.py │ ├── organizations_cellular_gateway_esims_swap.py │ ├── organizations_cellular_gateway_uplink_statuses_info.py │ ├── organizations_claim.py │ ├── organizations_clients_bandwidth_usage_history_info.py │ ├── organizations_clients_overview_info.py │ ├── organizations_clients_search_info.py │ ├── organizations_clone.py │ ├── organizations_config_templates.py │ ├── organizations_config_templates_info.py │ ├── organizations_config_templates_switch_profiles_info.py │ ├── organizations_config_templates_switch_profiles_ports.py │ ├── organizations_config_templates_switch_profiles_ports_info.py │ ├── organizations_devices_availabilities_change_history_info.py │ ├── organizations_devices_availabilities_info.py │ ├── organizations_devices_controller_migrations.py │ ├── organizations_devices_controller_migrations_info.py │ ├── organizations_devices_details_bulk_update.py │ ├── organizations_devices_info.py │ ├── organizations_devices_overview_by_model_info.py │ ├── organizations_devices_power_modules_statuses_by_device_info.py │ ├── organizations_devices_provisioning_statuses_info.py │ ├── organizations_devices_statuses_info.py │ ├── organizations_devices_statuses_overview_info.py │ ├── organizations_devices_system_memory_usage_history_by_interval_info.py │ ├── organizations_devices_uplinks_addresses_by_device_info.py │ ├── organizations_devices_uplinks_loss_and_latency_info.py │ ├── organizations_early_access_features_info.py │ ├── organizations_early_access_features_opt_ins.py │ ├── organizations_early_access_features_opt_ins_info.py │ ├── organizations_firmware_upgrades_by_device_info.py │ ├── organizations_firmware_upgrades_info.py │ ├── organizations_floor_plans_auto_locate_devices_info.py │ ├── organizations_floor_plans_auto_locate_statuses_info.py │ ├── organizations_info.py │ ├── organizations_insight_applications_info.py │ ├── organizations_insight_monitored_media_servers.py │ ├── organizations_insight_monitored_media_servers_info.py │ ├── organizations_integrations_xdr_networks_disable.py │ ├── organizations_integrations_xdr_networks_enable.py │ ├── organizations_integrations_xdr_networks_info.py │ ├── organizations_inventory_claim.py │ ├── organizations_inventory_devices_info.py │ ├── organizations_inventory_onboarding_cloud_monitoring_export_events.py │ ├── organizations_inventory_onboarding_cloud_monitoring_imports.py │ ├── organizations_inventory_onboarding_cloud_monitoring_imports_info.py │ ├── organizations_inventory_onboarding_cloud_monitoring_networks_info.py │ ├── organizations_inventory_onboarding_cloud_monitoring_prepare.py │ ├── organizations_inventory_release.py │ ├── organizations_licenses.py │ ├── organizations_licenses_assign_seats.py │ ├── organizations_licenses_info.py │ ├── organizations_licenses_move.py │ ├── organizations_licenses_move_seats.py │ ├── organizations_licenses_overview_info.py │ ├── organizations_licenses_renew_seats.py │ ├── organizations_licensing_coterm_licenses_info.py │ ├── organizations_licensing_coterm_licenses_move.py │ ├── organizations_login_security.py │ ├── organizations_login_security_info.py │ ├── organizations_networks_combine.py │ ├── organizations_openapi_spec_info.py │ ├── organizations_policy_objects.py │ ├── organizations_policy_objects_groups.py │ ├── organizations_policy_objects_groups_info.py │ ├── organizations_policy_objects_info.py │ ├── organizations_saml.py │ ├── organizations_saml_idps.py │ ├── organizations_saml_idps_info.py │ ├── organizations_saml_info.py │ ├── organizations_saml_roles.py │ ├── organizations_saml_roles_info.py │ ├── organizations_sensor_readings_history_info.py │ ├── organizations_sensor_readings_latest_info.py │ ├── organizations_sm_admins_roles.py │ ├── organizations_sm_admins_roles_info.py │ ├── organizations_sm_apns_cert_info.py │ ├── organizations_sm_sentry_policies_assignments.py │ ├── organizations_sm_sentry_policies_assignments_by_network_info.py │ ├── organizations_sm_vpp_accounts_info.py │ ├── organizations_snmp.py │ ├── organizations_snmp_info.py │ ├── organizations_splash_themes.py │ ├── organizations_splash_themes_info.py │ ├── organizations_summary_top_appliances_by_utilization_info.py │ ├── organizations_summary_top_applications_by_usage_info.py │ ├── organizations_summary_top_applications_categories_by_usage_info.py │ ├── organizations_summary_top_clients_by_usage_info.py │ ├── organizations_summary_top_clients_manufacturers_by_usage_info.py │ ├── organizations_summary_top_devices_by_usage_info.py │ ├── organizations_summary_top_devices_models_by_usage_info.py │ ├── organizations_summary_top_networks_by_status_info.py │ ├── organizations_summary_top_ssids_by_usage_info.py │ ├── organizations_summary_top_switches_by_energy_usage_info.py │ ├── organizations_switch_devices_clone.py │ ├── organizations_switch_ports_by_switch_info.py │ ├── organizations_switch_ports_clients_overview_by_device_info.py │ ├── organizations_switch_ports_overview_info.py │ ├── organizations_switch_ports_statuses_by_switch_info.py │ ├── organizations_switch_ports_topology_discovery_by_device_info.py │ ├── organizations_switch_ports_usage_history_by_device_by_interval_info.py │ ├── organizations_uplinks_statuses_info.py │ ├── organizations_webhooks_callbacks_statuses_info.py │ ├── organizations_webhooks_logs_info.py │ ├── organizations_wireless_air_marshal_rules_info.py │ ├── organizations_wireless_air_marshal_settings_by_network_info.py │ ├── organizations_wireless_clients_overview_by_device_info.py │ ├── organizations_wireless_controller_availabilities_change_history_info.py │ ├── organizations_wireless_controller_clients_overview_history_by_device_by_interval_info.py │ ├── organizations_wireless_controller_connections_info.py │ ├── organizations_wireless_controller_devices_interfaces_l2_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l2_statuses_change_history_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l2_usage_history_by_interval_info.py │ ├── organizations_wireless_controller_devices_interfaces_l3_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l3_statuses_change_history_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l3_usage_history_by_interval_info.py │ ├── organizations_wireless_controller_devices_interfaces_packets_overview_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_usage_history_by_interval_info.py │ ├── organizations_wireless_controller_devices_redundancy_failover_history_info.py │ ├── organizations_wireless_controller_devices_redundancy_statuses_info.py │ ├── organizations_wireless_controller_devices_system_utilization_history_by_interval_info.py │ ├── organizations_wireless_controller_overview_by_device_info.py │ ├── organizations_wireless_devices_channel_utilization_by_device_info.py │ ├── organizations_wireless_devices_channel_utilization_by_network_info.py │ ├── organizations_wireless_devices_channel_utilization_history_by_device_by_interval_info.py │ ├── organizations_wireless_devices_channel_utilization_history_by_network_by_interval_info.py │ ├── organizations_wireless_devices_ethernet_statuses_info.py │ ├── organizations_wireless_devices_packet_loss_by_client_info.py │ ├── organizations_wireless_devices_packet_loss_by_device_info.py │ ├── organizations_wireless_devices_packet_loss_by_network_info.py │ ├── organizations_wireless_devices_power_mode_history_info.py │ ├── organizations_wireless_devices_system_cpu_load_history_info.py │ ├── organizations_wireless_devices_wireless_controllers_by_device_info.py │ ├── organizations_wireless_radio_auto_rf_channels_recalculate.py │ ├── organizations_wireless_rf_profiles_assignments_by_device_info.py │ ├── organizations_wireless_ssids_firewall_isolation_allowlist_entries.py │ ├── organizations_wireless_ssids_firewall_isolation_allowlist_entries_info.py │ └── organizations_wireless_ssids_statuses_by_device_info.py ├── doc_fragments │ ├── __init__.py │ ├── meraki.py │ ├── module.py │ ├── module_info.py │ └── module_info_pagination.py ├── inventory │ ├── __init__.py │ └── meraki.py ├── module_utils │ └── network │ │ └── meraki │ │ ├── __init__.py │ │ └── meraki.py ├── modules │ ├── __init__.py │ ├── administered_identities_me_api_keys_generate.py │ ├── administered_identities_me_api_keys_info.py │ ├── administered_identities_me_api_keys_revoke.py │ ├── administered_identities_me_info.py │ ├── administered_licensing_subscription_entitlements_info.py │ ├── administered_licensing_subscription_subscriptions_bind.py │ ├── administered_licensing_subscription_subscriptions_claim.py │ ├── administered_licensing_subscription_subscriptions_claim_key_validate.py │ ├── administered_licensing_subscription_subscriptions_compliance_statuses_info.py │ ├── administered_licensing_subscription_subscriptions_info.py │ ├── devices.py │ ├── devices_appliance_performance_info.py │ ├── devices_appliance_radio_settings.py │ ├── devices_appliance_radio_settings_info.py │ ├── devices_appliance_uplinks_settings.py │ ├── devices_appliance_uplinks_settings_info.py │ ├── devices_appliance_vmx_authentication_token.py │ ├── devices_blink_leds.py │ ├── devices_camera_analytics_live_info.py │ ├── devices_camera_custom_analytics.py │ ├── devices_camera_custom_analytics_info.py │ ├── devices_camera_generate_snapshot.py │ ├── devices_camera_quality_and_retention.py │ ├── devices_camera_quality_and_retention_info.py │ ├── devices_camera_sense.py │ ├── devices_camera_sense_info.py │ ├── devices_camera_video_link_info.py │ ├── devices_camera_video_settings.py │ ├── devices_camera_video_settings_info.py │ ├── devices_camera_wireless_profiles.py │ ├── devices_camera_wireless_profiles_info.py │ ├── devices_cellular_gateway_lan.py │ ├── devices_cellular_gateway_lan_info.py │ ├── devices_cellular_gateway_port_forwarding_rules.py │ ├── devices_cellular_gateway_port_forwarding_rules_info.py │ ├── devices_cellular_sims.py │ ├── devices_cellular_sims_info.py │ ├── devices_info.py │ ├── devices_live_tools_arp_table.py │ ├── devices_live_tools_arp_table_info.py │ ├── devices_live_tools_cable_test.py │ ├── devices_live_tools_cable_test_info.py │ ├── devices_live_tools_leds_blink.py │ ├── devices_live_tools_ping.py │ ├── devices_live_tools_ping_device.py │ ├── devices_live_tools_ping_device_info.py │ ├── devices_live_tools_ping_info.py │ ├── devices_live_tools_throughput_test.py │ ├── devices_live_tools_throughput_test_info.py │ ├── devices_live_tools_wake_on_lan.py │ ├── devices_live_tools_wake_on_lan_info.py │ ├── devices_lldp_cdp_info.py │ ├── devices_management_interface.py │ ├── devices_management_interface_info.py │ ├── devices_sensor_commands.py │ ├── devices_sensor_commands_info.py │ ├── devices_sensor_relationships.py │ ├── devices_sensor_relationships_info.py │ ├── devices_switch_ports.py │ ├── devices_switch_ports_cycle.py │ ├── devices_switch_ports_info.py │ ├── devices_switch_ports_statuses_info.py │ ├── devices_switch_routing_interfaces.py │ ├── devices_switch_routing_interfaces_dhcp.py │ ├── devices_switch_routing_interfaces_dhcp_info.py │ ├── devices_switch_routing_interfaces_info.py │ ├── devices_switch_routing_static_routes.py │ ├── devices_switch_routing_static_routes_info.py │ ├── devices_switch_warm_spare.py │ ├── devices_switch_warm_spare_info.py │ ├── devices_wireless_alternate_management_interface_ipv6.py │ ├── devices_wireless_bluetooth_settings.py │ ├── devices_wireless_bluetooth_settings_info.py │ ├── devices_wireless_connection_stats_info.py │ ├── devices_wireless_electronic_shelf_label.py │ ├── devices_wireless_electronic_shelf_label_info.py │ ├── devices_wireless_latency_stats_info.py │ ├── devices_wireless_radio_settings.py │ ├── devices_wireless_radio_settings_info.py │ ├── devices_wireless_status_info.py │ ├── meraki_action_batch.py │ ├── meraki_admin.py │ ├── meraki_alert.py │ ├── meraki_config_template.py │ ├── meraki_device.py │ ├── meraki_firewalled_services.py │ ├── meraki_management_interface.py │ ├── meraki_mr_l3_firewall.py │ ├── meraki_mr_l7_firewall.py │ ├── meraki_mr_radio.py │ ├── meraki_mr_rf_profile.py │ ├── meraki_mr_settings.py │ ├── meraki_mr_ssid.py │ ├── meraki_ms_access_list.py │ ├── meraki_ms_access_policies.py │ ├── meraki_ms_l3_interface.py │ ├── meraki_ms_link_aggregation.py │ ├── meraki_ms_ospf.py │ ├── meraki_ms_stack.py │ ├── meraki_ms_stack_l3_interface.py │ ├── meraki_ms_storm_control.py │ ├── meraki_ms_switchport.py │ ├── meraki_mx_content_filtering.py │ ├── meraki_mx_intrusion_prevention.py │ ├── meraki_mx_l2_interface.py │ ├── meraki_mx_l3_firewall.py │ ├── meraki_mx_l7_firewall.py │ ├── meraki_mx_malware.py │ ├── meraki_mx_nat.py │ ├── meraki_mx_network_vlan_settings.py │ ├── meraki_mx_site_to_site_firewall.py │ ├── meraki_mx_site_to_site_vpn.py │ ├── meraki_mx_static_route.py │ ├── meraki_mx_third_party_vpn_peers.py │ ├── meraki_mx_uplink_bandwidth.py │ ├── meraki_mx_vlan.py │ ├── meraki_network.py │ ├── meraki_network_settings.py │ ├── meraki_organization.py │ ├── meraki_snmp.py │ ├── meraki_syslog.py │ ├── meraki_webhook.py │ ├── meraki_webhook_payload_template.py │ ├── networks.py │ ├── networks_alerts_history_info.py │ ├── networks_alerts_settings.py │ ├── networks_alerts_settings_info.py │ ├── networks_appliance_connectivity_monitoring_destinations.py │ ├── networks_appliance_connectivity_monitoring_destinations_info.py │ ├── networks_appliance_content_filtering.py │ ├── networks_appliance_content_filtering_categories_info.py │ ├── networks_appliance_content_filtering_info.py │ ├── networks_appliance_firewall_cellular_firewall_rules.py │ ├── networks_appliance_firewall_cellular_firewall_rules_info.py │ ├── networks_appliance_firewall_firewalled_services.py │ ├── networks_appliance_firewall_firewalled_services_info.py │ ├── networks_appliance_firewall_inbound_firewall_rules.py │ ├── networks_appliance_firewall_inbound_firewall_rules_info.py │ ├── networks_appliance_firewall_l3_firewall_rules.py │ ├── networks_appliance_firewall_l3_firewall_rules_info.py │ ├── networks_appliance_firewall_l7_firewall_rules.py │ ├── networks_appliance_firewall_l7_firewall_rules_application_categories_info.py │ ├── networks_appliance_firewall_l7_firewall_rules_info.py │ ├── networks_appliance_firewall_multicast_forwarding.py │ ├── networks_appliance_firewall_one_to_many_nat_rules.py │ ├── networks_appliance_firewall_one_to_many_nat_rules_info.py │ ├── networks_appliance_firewall_one_to_one_nat_rules.py │ ├── networks_appliance_firewall_one_to_one_nat_rules_info.py │ ├── networks_appliance_firewall_port_forwarding_rules.py │ ├── networks_appliance_firewall_port_forwarding_rules_info.py │ ├── networks_appliance_firewall_settings.py │ ├── networks_appliance_firewall_settings_info.py │ ├── networks_appliance_ports.py │ ├── networks_appliance_ports_info.py │ ├── networks_appliance_prefixes_delegated_statics.py │ ├── networks_appliance_prefixes_delegated_statics_info.py │ ├── networks_appliance_rf_profiles.py │ ├── networks_appliance_rf_profiles_info.py │ ├── networks_appliance_sdwan_internet_policies.py │ ├── networks_appliance_security_intrusion.py │ ├── networks_appliance_security_intrusion_info.py │ ├── networks_appliance_security_malware.py │ ├── networks_appliance_security_malware_info.py │ ├── networks_appliance_settings.py │ ├── networks_appliance_settings_info.py │ ├── networks_appliance_single_lan.py │ ├── networks_appliance_single_lan_info.py │ ├── networks_appliance_ssids.py │ ├── networks_appliance_ssids_info.py │ ├── networks_appliance_traffic_shaping.py │ ├── networks_appliance_traffic_shaping_custom_performance_classes.py │ ├── networks_appliance_traffic_shaping_custom_performance_classes_info.py │ ├── networks_appliance_traffic_shaping_info.py │ ├── networks_appliance_traffic_shaping_rules.py │ ├── networks_appliance_traffic_shaping_rules_info.py │ ├── networks_appliance_traffic_shaping_uplink_bandwidth.py │ ├── networks_appliance_traffic_shaping_uplink_bandwidth_info.py │ ├── networks_appliance_traffic_shaping_uplink_selection.py │ ├── networks_appliance_traffic_shaping_uplink_selection_info.py │ ├── networks_appliance_traffic_shaping_vpn_exclusions.py │ ├── networks_appliance_vlans.py │ ├── networks_appliance_vlans_info.py │ ├── networks_appliance_vlans_settings.py │ ├── networks_appliance_vlans_settings_info.py │ ├── networks_appliance_vpn_bgp.py │ ├── networks_appliance_vpn_bgp_info.py │ ├── networks_appliance_vpn_site_to_site_vpn.py │ ├── networks_appliance_vpn_site_to_site_vpn_info.py │ ├── networks_appliance_warm_spare.py │ ├── networks_appliance_warm_spare_info.py │ ├── networks_appliance_warm_spare_swap.py │ ├── networks_bind.py │ ├── networks_bluetooth_clients_info.py │ ├── networks_camera_quality_retention_profiles.py │ ├── networks_camera_quality_retention_profiles_info.py │ ├── networks_camera_wireless_profiles.py │ ├── networks_camera_wireless_profiles_info.py │ ├── networks_cancel.py │ ├── networks_cellular_gateway_connectivity_monitoring_destinations.py │ ├── networks_cellular_gateway_connectivity_monitoring_destinations_info.py │ ├── networks_cellular_gateway_dhcp.py │ ├── networks_cellular_gateway_dhcp_info.py │ ├── networks_cellular_gateway_subnet_pool.py │ ├── networks_cellular_gateway_subnet_pool_info.py │ ├── networks_cellular_gateway_uplink.py │ ├── networks_cellular_gateway_uplink_info.py │ ├── networks_clients_info.py │ ├── networks_clients_overview_info.py │ ├── networks_clients_policy.py │ ├── networks_clients_policy_info.py │ ├── networks_clients_provision.py │ ├── networks_clients_splash_authorization_status.py │ ├── networks_clients_splash_authorization_status_info.py │ ├── networks_devices_claim.py │ ├── networks_devices_claim_vmx.py │ ├── networks_devices_remove.py │ ├── networks_events_event_types_info.py │ ├── networks_events_info.py │ ├── networks_firmware_upgrades.py │ ├── networks_firmware_upgrades_info.py │ ├── networks_firmware_upgrades_rollbacks.py │ ├── networks_firmware_upgrades_staged_events.py │ ├── networks_firmware_upgrades_staged_events_defer.py │ ├── networks_firmware_upgrades_staged_events_info.py │ ├── networks_firmware_upgrades_staged_events_rollbacks.py │ ├── networks_firmware_upgrades_staged_groups.py │ ├── networks_firmware_upgrades_staged_groups_info.py │ ├── networks_firmware_upgrades_staged_stages.py │ ├── networks_firmware_upgrades_staged_stages_info.py │ ├── networks_floor_plans.py │ ├── networks_floor_plans_auto_locate_jobs_batch.py │ ├── networks_floor_plans_devices_batch_update.py │ ├── networks_floor_plans_info.py │ ├── networks_group_policies.py │ ├── networks_group_policies_info.py │ ├── networks_health_alerts_info.py │ ├── networks_info.py │ ├── networks_insight_applications_health_by_time_info.py │ ├── networks_meraki_auth_users.py │ ├── networks_meraki_auth_users_info.py │ ├── networks_mqtt_brokers.py │ ├── networks_netflow.py │ ├── networks_netflow_info.py │ ├── networks_pii_pii_keys_info.py │ ├── networks_pii_requests_delete.py │ ├── networks_pii_requests_info.py │ ├── networks_pii_sm_devices_for_key_info.py │ ├── networks_pii_sm_owners_for_key_info.py │ ├── networks_policies_by_client_info.py │ ├── networks_publish.py │ ├── networks_recalculate.py │ ├── networks_sensor_alerts_current_overview_by_metric_info.py │ ├── networks_sensor_alerts_overview_by_metric_info.py │ ├── networks_sensor_alerts_profiles.py │ ├── networks_sensor_alerts_profiles_info.py │ ├── networks_sensor_mqtt_brokers.py │ ├── networks_sensor_mqtt_brokers_info.py │ ├── networks_sensor_relationships_info.py │ ├── networks_settings.py │ ├── networks_settings_info.py │ ├── networks_sm_bypass_activation_lock_attempts.py │ ├── networks_sm_bypass_activation_lock_attempts_info.py │ ├── networks_sm_devices_cellular_usage_history_info.py │ ├── networks_sm_devices_certs_info.py │ ├── networks_sm_devices_checkin.py │ ├── networks_sm_devices_connectivity_info.py │ ├── networks_sm_devices_desktop_logs_info.py │ ├── networks_sm_devices_device_command_logs_info.py │ ├── networks_sm_devices_device_profiles_info.py │ ├── networks_sm_devices_fields.py │ ├── networks_sm_devices_info.py │ ├── networks_sm_devices_install_apps.py │ ├── networks_sm_devices_lock.py │ ├── networks_sm_devices_modify_tags.py │ ├── networks_sm_devices_move.py │ ├── networks_sm_devices_network_adapters_info.py │ ├── networks_sm_devices_performance_history_info.py │ ├── networks_sm_devices_reboot.py │ ├── networks_sm_devices_refresh_details.py │ ├── networks_sm_devices_security_centers_info.py │ ├── networks_sm_devices_shutdown.py │ ├── networks_sm_devices_unenroll.py │ ├── networks_sm_devices_uninstall_apps.py │ ├── networks_sm_devices_wipe.py │ ├── networks_sm_devices_wlan_lists_info.py │ ├── networks_sm_profiles_info.py │ ├── networks_sm_target_groups.py │ ├── networks_sm_target_groups_info.py │ ├── networks_sm_trusted_access_configs_info.py │ ├── networks_sm_user_access_devices_delete.py │ ├── networks_sm_user_access_devices_info.py │ ├── networks_sm_users_device_profiles_info.py │ ├── networks_sm_users_info.py │ ├── networks_sm_users_softwares_info.py │ ├── networks_snmp.py │ ├── networks_snmp_info.py │ ├── networks_split.py │ ├── networks_switch_access_control_lists.py │ ├── networks_switch_access_control_lists_info.py │ ├── networks_switch_access_policies.py │ ├── networks_switch_access_policies_info.py │ ├── networks_switch_alternate_management_interface.py │ ├── networks_switch_alternate_management_interface_info.py │ ├── networks_switch_dhcp_server_policy.py │ ├── networks_switch_dhcp_server_policy_arp_inspection_trusted_servers.py │ ├── networks_switch_dhcp_server_policy_arp_inspection_trusted_servers_info.py │ ├── networks_switch_dhcp_server_policy_arp_inspection_warnings_by_device_info.py │ ├── networks_switch_dhcp_server_policy_info.py │ ├── networks_switch_dhcp_v4_servers_seen_info.py │ ├── networks_switch_dscp_to_cos_mappings.py │ ├── networks_switch_dscp_to_cos_mappings_info.py │ ├── networks_switch_link_aggregations.py │ ├── networks_switch_link_aggregations_info.py │ ├── networks_switch_mtu.py │ ├── networks_switch_mtu_info.py │ ├── networks_switch_port_schedules.py │ ├── networks_switch_port_schedules_info.py │ ├── networks_switch_qos_rules_order.py │ ├── networks_switch_qos_rules_order_info.py │ ├── networks_switch_routing_multicast.py │ ├── networks_switch_routing_multicast_info.py │ ├── networks_switch_routing_multicast_rendezvous_points.py │ ├── networks_switch_routing_multicast_rendezvous_points_info.py │ ├── networks_switch_routing_ospf.py │ ├── networks_switch_routing_ospf_info.py │ ├── networks_switch_settings.py │ ├── networks_switch_settings_info.py │ ├── networks_switch_stacks.py │ ├── networks_switch_stacks_add.py │ ├── networks_switch_stacks_info.py │ ├── networks_switch_stacks_remove.py │ ├── networks_switch_stacks_routing_interfaces.py │ ├── networks_switch_stacks_routing_interfaces_dhcp.py │ ├── networks_switch_stacks_routing_interfaces_dhcp_info.py │ ├── networks_switch_stacks_routing_interfaces_info.py │ ├── networks_switch_stacks_routing_static_routes.py │ ├── networks_switch_stacks_routing_static_routes_info.py │ ├── networks_switch_storm_control.py │ ├── networks_switch_storm_control_info.py │ ├── networks_switch_stp.py │ ├── networks_switch_stp_info.py │ ├── networks_syslog_servers.py │ ├── networks_syslog_servers_info.py │ ├── networks_topology_link_layer_info.py │ ├── networks_traffic_analysis.py │ ├── networks_traffic_analysis_info.py │ ├── networks_traffic_shaping_application_categories_info.py │ ├── networks_traffic_shaping_dscp_tagging_options_info.py │ ├── networks_unbind.py │ ├── networks_vlan_profiles.py │ ├── networks_vlan_profiles_assignments_by_device_info.py │ ├── networks_vlan_profiles_assignments_reassign.py │ ├── networks_vlan_profiles_info.py │ ├── networks_webhooks_http_servers.py │ ├── networks_webhooks_http_servers_info.py │ ├── networks_webhooks_payload_templates.py │ ├── networks_webhooks_payload_templates_info.py │ ├── networks_webhooks_webhook_tests_info.py │ ├── networks_wireless_air_marshal_rules.py │ ├── networks_wireless_air_marshal_rules_delete.py │ ├── networks_wireless_air_marshal_rules_update.py │ ├── networks_wireless_air_marshal_settings.py │ ├── networks_wireless_alternate_management_interface.py │ ├── networks_wireless_alternate_management_interface_info.py │ ├── networks_wireless_billing.py │ ├── networks_wireless_billing_info.py │ ├── networks_wireless_bluetooth_settings.py │ ├── networks_wireless_bluetooth_settings_info.py │ ├── networks_wireless_channel_utilization_history_info.py │ ├── networks_wireless_client_count_history_info.py │ ├── networks_wireless_clients_connection_stats_info.py │ ├── networks_wireless_clients_latency_stats_info.py │ ├── networks_wireless_connection_stats_info.py │ ├── networks_wireless_data_rate_history_info.py │ ├── networks_wireless_devices_connection_stats_info.py │ ├── networks_wireless_electronic_shelf_label.py │ ├── networks_wireless_electronic_shelf_label_configured_devices_info.py │ ├── networks_wireless_electronic_shelf_label_info.py │ ├── networks_wireless_ethernet_ports_profiles.py │ ├── networks_wireless_ethernet_ports_profiles_assign.py │ ├── networks_wireless_ethernet_ports_profiles_info.py │ ├── networks_wireless_ethernet_ports_profiles_set_default.py │ ├── networks_wireless_failed_connections_info.py │ ├── networks_wireless_latency_history_info.py │ ├── networks_wireless_latency_stats_info.py │ ├── networks_wireless_mesh_statuses_info.py │ ├── networks_wireless_rf_profiles.py │ ├── networks_wireless_rf_profiles_info.py │ ├── networks_wireless_settings.py │ ├── networks_wireless_settings_info.py │ ├── networks_wireless_signal_quality_history_info.py │ ├── networks_wireless_ssids.py │ ├── networks_wireless_ssids_bonjour_forwarding.py │ ├── networks_wireless_ssids_bonjour_forwarding_info.py │ ├── networks_wireless_ssids_device_type_group_policies.py │ ├── networks_wireless_ssids_device_type_group_policies_info.py │ ├── networks_wireless_ssids_eap_override.py │ ├── networks_wireless_ssids_eap_override_info.py │ ├── networks_wireless_ssids_firewall_l3_firewall_rules.py │ ├── networks_wireless_ssids_firewall_l3_firewall_rules_info.py │ ├── networks_wireless_ssids_firewall_l7_firewall_rules.py │ ├── networks_wireless_ssids_firewall_l7_firewall_rules_info.py │ ├── networks_wireless_ssids_hotspot20.py │ ├── networks_wireless_ssids_hotspot20_info.py │ ├── networks_wireless_ssids_identity_psks.py │ ├── networks_wireless_ssids_identity_psks_info.py │ ├── networks_wireless_ssids_info.py │ ├── networks_wireless_ssids_schedules.py │ ├── networks_wireless_ssids_schedules_info.py │ ├── networks_wireless_ssids_splash_settings.py │ ├── networks_wireless_ssids_splash_settings_info.py │ ├── networks_wireless_ssids_traffic_shaping_rules.py │ ├── networks_wireless_ssids_traffic_shaping_rules_info.py │ ├── networks_wireless_ssids_vpn.py │ ├── networks_wireless_ssids_vpn_info.py │ ├── networks_wireless_usage_history_info.py │ ├── organizations.py │ ├── organizations_action_batches.py │ ├── organizations_action_batches_info.py │ ├── organizations_adaptive_policy_acls.py │ ├── organizations_adaptive_policy_acls_info.py │ ├── organizations_adaptive_policy_groups.py │ ├── organizations_adaptive_policy_groups_info.py │ ├── organizations_adaptive_policy_overview_info.py │ ├── organizations_adaptive_policy_policies.py │ ├── organizations_adaptive_policy_policies_info.py │ ├── organizations_adaptive_policy_settings.py │ ├── organizations_adaptive_policy_settings_info.py │ ├── organizations_admins.py │ ├── organizations_admins_info.py │ ├── organizations_alerts_profiles.py │ ├── organizations_api_requests_info.py │ ├── organizations_api_requests_overview_info.py │ ├── organizations_api_requests_overview_response_codes_by_interval_info.py │ ├── organizations_appliance_dns_local_profiles.py │ ├── organizations_appliance_dns_local_profiles_assignments_bulk_create.py │ ├── organizations_appliance_dns_local_profiles_assignments_bulk_delete.py │ ├── organizations_appliance_dns_local_profiles_assignments_info.py │ ├── organizations_appliance_dns_local_profiles_info.py │ ├── organizations_appliance_dns_local_records.py │ ├── organizations_appliance_dns_local_records_info.py │ ├── organizations_appliance_dns_split_profiles.py │ ├── organizations_appliance_dns_split_profiles_assignments_bulk_create.py │ ├── organizations_appliance_dns_split_profiles_assignments_bulk_delete.py │ ├── organizations_appliance_dns_split_profiles_assignments_info.py │ ├── organizations_appliance_dns_split_profiles_info.py │ ├── organizations_appliance_firewall_multicast_forwarding_by_network_info.py │ ├── organizations_appliance_security_intrusion.py │ ├── organizations_appliance_security_intrusion_info.py │ ├── organizations_appliance_traffic_shaping_vpn_exclusions_by_network_info.py │ ├── organizations_appliance_uplinks_statuses_overview_info.py │ ├── organizations_appliance_uplinks_usage_by_network_info.py │ ├── organizations_appliance_vpn_third_party_vpnpeers.py │ ├── organizations_appliance_vpn_third_party_vpnpeers_info.py │ ├── organizations_appliance_vpn_vpn_firewall_rules.py │ ├── organizations_appliance_vpn_vpn_firewall_rules_info.py │ ├── organizations_assets.py │ ├── organizations_assurance_alerts_dismiss.py │ ├── organizations_assurance_alerts_info.py │ ├── organizations_assurance_alerts_overview_by_network_info.py │ ├── organizations_assurance_alerts_overview_by_type_info.py │ ├── organizations_assurance_alerts_overview_historical_info.py │ ├── organizations_assurance_alerts_overview_info.py │ ├── organizations_assurance_alerts_restore.py │ ├── organizations_branding_policies.py │ ├── organizations_branding_policies_info.py │ ├── organizations_branding_policies_priorities.py │ ├── organizations_branding_policies_priorities_info.py │ ├── organizations_camera_boundaries_areas_by_device_info.py │ ├── organizations_camera_boundaries_lines_by_device_info.py │ ├── organizations_camera_custom_analytics_artifacts.py │ ├── organizations_camera_custom_analytics_artifacts_info.py │ ├── organizations_camera_detections_history_by_boundary_by_interval_info.py │ ├── organizations_camera_permissions_info.py │ ├── organizations_camera_roles.py │ ├── organizations_camera_roles_info.py │ ├── organizations_cellular_gateway_esims_inventory_info.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts_communication_plans_info.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts_info.py │ ├── organizations_cellular_gateway_esims_service_providers_accounts_rate_plans_info.py │ ├── organizations_cellular_gateway_esims_service_providers_info.py │ ├── organizations_cellular_gateway_esims_swap.py │ ├── organizations_cellular_gateway_uplink_statuses_info.py │ ├── organizations_claim.py │ ├── organizations_clients_bandwidth_usage_history_info.py │ ├── organizations_clients_overview_info.py │ ├── organizations_clients_search_info.py │ ├── organizations_clone.py │ ├── organizations_config_templates.py │ ├── organizations_config_templates_info.py │ ├── organizations_config_templates_switch_profiles_info.py │ ├── organizations_config_templates_switch_profiles_ports.py │ ├── organizations_config_templates_switch_profiles_ports_info.py │ ├── organizations_devices_availabilities_change_history_info.py │ ├── organizations_devices_availabilities_info.py │ ├── organizations_devices_controller_migrations.py │ ├── organizations_devices_controller_migrations_info.py │ ├── organizations_devices_details_bulk_update.py │ ├── organizations_devices_info.py │ ├── organizations_devices_overview_by_model_info.py │ ├── organizations_devices_power_modules_statuses_by_device_info.py │ ├── organizations_devices_provisioning_statuses_info.py │ ├── organizations_devices_statuses_info.py │ ├── organizations_devices_statuses_overview_info.py │ ├── organizations_devices_system_memory_usage_history_by_interval_info.py │ ├── organizations_devices_uplinks_addresses_by_device_info.py │ ├── organizations_devices_uplinks_loss_and_latency_info.py │ ├── organizations_early_access_features_info.py │ ├── organizations_early_access_features_opt_ins.py │ ├── organizations_early_access_features_opt_ins_info.py │ ├── organizations_firmware_upgrades_by_device_info.py │ ├── organizations_firmware_upgrades_info.py │ ├── organizations_floor_plans_auto_locate_devices_info.py │ ├── organizations_floor_plans_auto_locate_statuses_info.py │ ├── organizations_info.py │ ├── organizations_insight_applications_info.py │ ├── organizations_insight_monitored_media_servers.py │ ├── organizations_insight_monitored_media_servers_info.py │ ├── organizations_integrations_xdr_networks_disable.py │ ├── organizations_integrations_xdr_networks_enable.py │ ├── organizations_integrations_xdr_networks_info.py │ ├── organizations_inventory_claim.py │ ├── organizations_inventory_devices_info.py │ ├── organizations_inventory_onboarding_cloud_monitoring_export_events.py │ ├── organizations_inventory_onboarding_cloud_monitoring_imports.py │ ├── organizations_inventory_onboarding_cloud_monitoring_imports_info.py │ ├── organizations_inventory_onboarding_cloud_monitoring_networks_info.py │ ├── organizations_inventory_onboarding_cloud_monitoring_prepare.py │ ├── organizations_inventory_release.py │ ├── organizations_licenses.py │ ├── organizations_licenses_assign_seats.py │ ├── organizations_licenses_info.py │ ├── organizations_licenses_move.py │ ├── organizations_licenses_move_seats.py │ ├── organizations_licenses_overview_info.py │ ├── organizations_licenses_renew_seats.py │ ├── organizations_licensing_coterm_licenses_info.py │ ├── organizations_licensing_coterm_licenses_move.py │ ├── organizations_login_security.py │ ├── organizations_login_security_info.py │ ├── organizations_networks_combine.py │ ├── organizations_openapi_spec_info.py │ ├── organizations_policy_objects.py │ ├── organizations_policy_objects_groups.py │ ├── organizations_policy_objects_groups_info.py │ ├── organizations_policy_objects_info.py │ ├── organizations_saml.py │ ├── organizations_saml_idps.py │ ├── organizations_saml_idps_info.py │ ├── organizations_saml_info.py │ ├── organizations_saml_roles.py │ ├── organizations_saml_roles_info.py │ ├── organizations_sensor_readings_history_info.py │ ├── organizations_sensor_readings_latest_info.py │ ├── organizations_sm_admins_roles.py │ ├── organizations_sm_admins_roles_info.py │ ├── organizations_sm_apns_cert_info.py │ ├── organizations_sm_sentry_policies_assignments.py │ ├── organizations_sm_sentry_policies_assignments_by_network_info.py │ ├── organizations_sm_vpp_accounts_info.py │ ├── organizations_snmp.py │ ├── organizations_snmp_info.py │ ├── organizations_splash_themes.py │ ├── organizations_splash_themes_info.py │ ├── organizations_summary_top_appliances_by_utilization_info.py │ ├── organizations_summary_top_applications_by_usage_info.py │ ├── organizations_summary_top_applications_categories_by_usage_info.py │ ├── organizations_summary_top_clients_by_usage_info.py │ ├── organizations_summary_top_clients_manufacturers_by_usage_info.py │ ├── organizations_summary_top_devices_by_usage_info.py │ ├── organizations_summary_top_devices_models_by_usage_info.py │ ├── organizations_summary_top_networks_by_status_info.py │ ├── organizations_summary_top_ssids_by_usage_info.py │ ├── organizations_summary_top_switches_by_energy_usage_info.py │ ├── organizations_switch_devices_clone.py │ ├── organizations_switch_ports_by_switch_info.py │ ├── organizations_switch_ports_clients_overview_by_device_info.py │ ├── organizations_switch_ports_overview_info.py │ ├── organizations_switch_ports_statuses_by_switch_info.py │ ├── organizations_switch_ports_topology_discovery_by_device_info.py │ ├── organizations_switch_ports_usage_history_by_device_by_interval_info.py │ ├── organizations_uplinks_statuses_info.py │ ├── organizations_webhooks_callbacks_statuses_info.py │ ├── organizations_webhooks_logs_info.py │ ├── organizations_wireless_air_marshal_rules_info.py │ ├── organizations_wireless_air_marshal_settings_by_network_info.py │ ├── organizations_wireless_clients_overview_by_device_info.py │ ├── organizations_wireless_controller_availabilities_change_history_info.py │ ├── organizations_wireless_controller_clients_overview_history_by_device_by_interval_info.py │ ├── organizations_wireless_controller_connections_info.py │ ├── organizations_wireless_controller_devices_interfaces_l2_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l2_statuses_change_history_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l2_usage_history_by_interval_info.py │ ├── organizations_wireless_controller_devices_interfaces_l3_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l3_statuses_change_history_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_l3_usage_history_by_interval_info.py │ ├── organizations_wireless_controller_devices_interfaces_packets_overview_by_device_info.py │ ├── organizations_wireless_controller_devices_interfaces_usage_history_by_interval_info.py │ ├── organizations_wireless_controller_devices_redundancy_failover_history_info.py │ ├── organizations_wireless_controller_devices_redundancy_statuses_info.py │ ├── organizations_wireless_controller_devices_system_utilization_history_by_interval_info.py │ ├── organizations_wireless_controller_overview_by_device_info.py │ ├── organizations_wireless_devices_channel_utilization_by_device_info.py │ ├── organizations_wireless_devices_channel_utilization_by_network_info.py │ ├── organizations_wireless_devices_channel_utilization_history_by_device_by_interval_info.py │ ├── organizations_wireless_devices_channel_utilization_history_by_network_by_interval_info.py │ ├── organizations_wireless_devices_ethernet_statuses_info.py │ ├── organizations_wireless_devices_packet_loss_by_client_info.py │ ├── organizations_wireless_devices_packet_loss_by_device_info.py │ ├── organizations_wireless_devices_packet_loss_by_network_info.py │ ├── organizations_wireless_devices_power_mode_history_info.py │ ├── organizations_wireless_devices_system_cpu_load_history_info.py │ ├── organizations_wireless_devices_wireless_controllers_by_device_info.py │ ├── organizations_wireless_radio_auto_rf_channels_recalculate.py │ ├── organizations_wireless_rf_profiles_assignments_by_device_info.py │ ├── organizations_wireless_ssids_firewall_isolation_allowlist_entries.py │ ├── organizations_wireless_ssids_firewall_isolation_allowlist_entries_info.py │ └── organizations_wireless_ssids_statuses_by_device_info.py └── plugin_utils │ ├── __init__.py │ ├── exceptions.py │ └── meraki.py ├── requirements.txt ├── scripts └── sublime-build │ └── requirements.txt └── workflows ├── docs.yml └── sanity_tests.yml /.ansible-lint: -------------------------------------------------------------------------------- 1 | # exclude_paths included in this file are parsed relative to this file's location 2 | # and not relative to the CWD of execution. CLI arguments passed to the --exclude 3 | # option are parsed relative to the CWD of execution. 4 | exclude_paths: 5 | - workflows/ 6 | - .github/ 7 | - .ansible-lint -------------------------------------------------------------------------------- /.ansible-lint-ignore: -------------------------------------------------------------------------------- 1 | workflows/docs.yml yaml[truthy] 2 | workflows/docs.yml yaml[new-line-at-end-of-file] 3 | workflows/docs.yml yaml[line-length] 4 | workflows/docs.yml yaml[new-line-at-end-of-file] 5 | workflows/sanity_tests.yml yaml[truthy] 6 | workflows/ansible-lint.yml yaml[new-line-at-end-of-file] 7 | .github/workflows/ansible-lint.yml yaml[new-line-at-end-of-file] 8 | -------------------------------------------------------------------------------- /.github/workflows/ansible-lint.yml: -------------------------------------------------------------------------------- 1 | # .github/workflows/ansible-lint.yml 2 | name: ansible-lint 3 | on: 4 | pull_request: 5 | branches: ["main", "stable", "release/v*"] 6 | jobs: 7 | build: 8 | name: Ansible Lint # Naming the build is important to use it as a status check 9 | runs-on: ubuntu-24.04 10 | steps: 11 | - uses: actions/checkout@v4 12 | - name: Run ansible-lint 13 | uses: ansible/ansible-lint@main 14 | with: 15 | args: "" 16 | setup_python: "true" 17 | working_directory: "" 18 | requirements_file: "" 19 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: docs 2 | 3 | on: 4 | push: 5 | tags: 6 | - v[0-9]+.[0-9]+.[0-9]+ 7 | branches: 8 | - main 9 | 10 | jobs: 11 | docs: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: configure git 16 | run: | 17 | git config user.name "${GITHUB_ACTOR}" 18 | git config user.email "${GITHUB_ACTOR}@bots.github.com" 19 | git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* 20 | - name: Set up Python 21 | uses: actions/setup-python@v5 22 | with: 23 | python-version: "3.8" 24 | - name: Install dependencies 25 | run: | 26 | pip install antsibull-docs 27 | make doc-setup 28 | - name: Build docs 29 | run: make doc 30 | - name: commit docs 31 | run: | 32 | git checkout gh-pages || git checkout -b gh-pages 33 | rm -rf $(basename ${GITHUB_REF}) 34 | mv docs/_build/html $(basename ${GITHUB_REF}) 35 | git show origin/main:docs/_gh_include/header.inc > index.html 36 | (echo main; dirname v*/index.html | sort --version-sort --reverse) \ 37 | | xargs -I@@ \ 38 | -n1 echo '
' \ 39 | '

@@

' >> index.html 40 | git show origin/main:docs/_gh_include/footer.inc >> index.html 41 | git add $(basename ${GITHUB_REF}) index.html 42 | git commit -m "update docs for $(basename ${GITHUB_REF})" || true 43 | - name: push docs 44 | run: git push origin gh-pages 45 | -------------------------------------------------------------------------------- /.github/workflows/sanity_tests.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | branches: [main] 5 | pull_request: 6 | schedule: 7 | - cron: '0 6 * * *' 8 | env: 9 | NAMESPACE: cisco 10 | COLLECTION_NAME: meraki 11 | jobs: 12 | sanity: 13 | name: Sanity (Ⓐ${{ matrix.ansible }}) 14 | strategy: 15 | matrix: 16 | ansible: 17 | - stable-2.17 18 | - stable-2.18 19 | - stable-2.19 20 | - devel 21 | runs-on: ubuntu-22.04 22 | steps: 23 | - name: Check out code 24 | uses: actions/checkout@v3 25 | with: 26 | path: meraki/dashboard-api-ansible 27 | - name: Create directory 28 | run: mkdir -p ./ansible_collections/${{env.NAMESPACE}} 29 | - name: Move repository 30 | run: mv ./meraki/dashboard-api-ansible ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} 31 | - name: Set up Python 32 | uses: actions/setup-python@v3 33 | with: 34 | python-version: '3.11' 35 | - name: Install ansible-base (${{ matrix.ansible }}) 36 | run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check 37 | - name: Run sanity tests 38 | run: ansible-test sanity --docker -v --color 39 | working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | autopep8.sh 2 | tmp/* 3 | __pycache__/ 4 | .vscode/ 5 | .tmp 6 | .cache 7 | *.retry 8 | tests/test_playbooks/vars/server.yml 9 | __pycache__ 10 | *.pyc 11 | *.pyo 12 | *.swp 13 | *.tar.gz 14 | .pytest_cache/ 15 | .mypy_cache/ 16 | venv/ 17 | /build/ 18 | docs/plugins/ 19 | docs/_build/ 20 | changelogs/.plugin-cache.yaml 21 | playbooks/credentials.yml 22 | .DS_Store -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | NAMESPACE := $(shell python -c 'import yaml; print(yaml.safe_load(open("galaxy.yml"))["namespace"])') 2 | NAME := $(shell python -c 'import yaml; print(yaml.safe_load(open("galaxy.yml"))["name"])') 3 | VERSION := $(shell python -c 'import yaml; print(yaml.safe_load(open("galaxy.yml"))["version"])') 4 | MANIFEST := build/collections/ansible_collections/$(NAMESPACE)/$(NAME)/MANIFEST.json 5 | 6 | PLUGIN_TYPES := $(filter-out __%,$(notdir $(wildcard plugins/*))) 7 | METADATA := galaxy.yml LICENSE README.md meta/runtime.yml requirements.txt changelogs/changelog.yaml 8 | $(foreach PLUGIN_TYPE,$(PLUGIN_TYPES),$(eval _$(PLUGIN_TYPE) := $(filter-out %__init__.py,$(wildcard plugins/$(PLUGIN_TYPE)/*.py)))) 9 | DEPENDENCIES := $(METADATA) $(foreach PLUGIN_TYPE,$(PLUGIN_TYPES),$(_$(PLUGIN_TYPE))) $(foreach ROLE,$(ROLES),$(wildcard $(ROLE)/*/*)) $(foreach ROLE,$(ROLES),$(ROLE)/README.md) 10 | 11 | COLLECTION_COMMAND ?= ansible-galaxy 12 | TEST = 13 | FLAGS = 14 | 15 | 16 | default: help 17 | help: 18 | @echo "Please use \`make ' where is one of:" 19 | @echo " help to show this message" 20 | @echo " info to show infos about the collection" 21 | @echo " sanity to run santy tests" 22 | @echo " setup to set up test, lint" 23 | 24 | setup: test-setup 25 | 26 | test-setup: | tests/test_playbooks/vars/server.yml 27 | pip install --upgrade 'pip<20' 28 | pip install --upgrade -r requirements-dev.txt 29 | 30 | tests/test_playbooks/vars/server.yml: 31 | cp $@.example $@ 32 | @echo "For recording, please adjust $@ to match your reference server." 33 | 34 | $(MANIFEST): 35 | ansible-galaxy collection build --force 36 | ansible-galaxy collection install cisco-meraki-* --force 37 | 38 | build/src/%: % 39 | install -m 644 -DT $< $@ 40 | 41 | doc-setup: 42 | pip install --upgrade -r docs/requirements.txt 43 | doc: $(MANIFEST) 44 | mkdir -p ./docs/plugins 45 | antsibull-docs collection --use-current --squash-hierarchy --dest-dir ./docs/plugins $(NAMESPACE).$(NAME) 46 | make -C docs html 47 | 48 | 49 | FORCE: 50 | 51 | .PHONY: help dist lint sanity test test-crud test-check-mode test-other livetest setup test-setup doc-setup doc publish FORCE 52 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | meraki = ">=1.33.0" 8 | 9 | [dev-packages] 10 | 11 | [requires] 12 | python_version = "3.10" 13 | -------------------------------------------------------------------------------- /changelogs/config.yaml: -------------------------------------------------------------------------------- 1 | changelog_filename_template: ../CHANGELOG.rst 2 | changelog_filename_version_depth: 0 3 | changes_file: changelog.yaml 4 | changes_format: combined 5 | keep_fragments: false 6 | mention_ancestor: true 7 | new_plugins_after_name: removed_features 8 | notesdir: fragments 9 | prelude_section_name: release_summary 10 | prelude_section_title: Release Summary 11 | sections: 12 | - - major_changes 13 | - Major Changes 14 | - - minor_changes 15 | - Minor Changes 16 | - - breaking_changes 17 | - Breaking Changes / Porting Guide 18 | - - deprecated_features 19 | - Deprecated Features 20 | - - removed_features 21 | - Removed Features (previously deprecated) 22 | - - security_fixes 23 | - Security Fixes 24 | - - bugfixes 25 | - Bugfixes 26 | - - known_issues 27 | - Known Issues 28 | title: Cisco.Meraki 29 | trivial_section_name: trivial 30 | -------------------------------------------------------------------------------- /changelogs/fragments/add_event_queries.yml: -------------------------------------------------------------------------------- 1 | --- 2 | minor_changes: 3 | - Adds new every queries for indirect host count. 4 | -------------------------------------------------------------------------------- /changelogs/fragments/event_query.yml: -------------------------------------------------------------------------------- 1 | --- 2 | trivial: 3 | - "Event counting - Adds a event query file to count indirectly managed objects." 4 | -------------------------------------------------------------------------------- /changelogs/fragments/meraki_inventory_plugin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | minor_changes: 3 | - Adds a new dynamic inventory plugin for Cisco Meraki devices. 4 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = MerakiAnsibleActions 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/_gh_include/footer.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/_gh_include/header.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Meraki Ansible Actions documentation index 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Meraki Ansible Actions

15 | 16 |
17 | 18 |
19 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. DNA Center Ansible Actions documentation main file, created by 2 | sphinx-quickstart on Tue Dec 12 10:00:39 2018. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Meraki Ansible Actions documentation! 7 | ===================================================== 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | :caption: User documentation 12 | 13 | plugins/index 14 | platform_meraki 15 | 16 | 17 | Indices and tables 18 | ================== 19 | 20 | * :ref:`genindex` 21 | * :ref:`search` 22 | -------------------------------------------------------------------------------- /docs/platform_meraki.rst: -------------------------------------------------------------------------------- 1 | .. _meraki_platform_options: 2 | 3 | *************************************** 4 | Meraki Platform Options 5 | *************************************** 6 | 7 | The `cisco.meraki `_ collection only supports the ``local`` connection type at this time. 8 | 9 | .. contents:: 10 | :local: 11 | 12 | Connections available 13 | ================================================================================ 14 | 15 | .. table:: 16 | :class: documentation-table 17 | 18 | ==================== ========================================== 19 | .. Dashboard API 20 | ==================== ========================================== 21 | Protocol HTTP(S) 22 | 23 | Credentials uses API key from Dashboard 24 | 25 | Connection Settings ``ansible_connection: localhost`` 26 | 27 | Returned Data Format ``data.`` 28 | ==================== ========================================== 29 | 30 | 31 | Example Meraki task 32 | ------------------- 33 | 34 | .. code-block:: yaml 35 | 36 | cisco.meraki.meraki_organization: 37 | auth_key: abc12345 38 | org_name: YourOrg 39 | state: present 40 | delegate_to: localhost 41 | 42 | For modules that do not have the "meraki" prefix, this is an example that you can use as a guide 43 | 44 | .. code-block:: yaml 45 | 46 | cisco.meraki.administered_identities_me_info: 47 | meraki_api_key: "{{ meraki_api_key }}" 48 | meraki_base_url: "{{ meraki_base_url }}" 49 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 50 | meraki_certificate_path: "{{ meraki_certificate_path }}" 51 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 52 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 53 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 54 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 55 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 56 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 57 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 58 | meraki_output_log: "{{ meraki_output_log }}" 59 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 60 | meraki_log_path: "{{ meraki_log_path }}" 61 | meraki_print_console: "{{ meraki_print_console }}" 62 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 63 | meraki_simulate: "{{ meraki_simulate }}" 64 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 65 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 66 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 67 | register: result 68 | 69 | .. seealso:: 70 | 71 | :ref:`timeout_options` -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | PyYAML>=5.4.1 2 | antsibull>=0.17.0 3 | ansible-base>=2.10.0rc2 4 | sphinx-rtd-theme 5 | git+https://github.com/felixfontein/ansible-basic-sphinx-ext 6 | recommonmark 7 | -------------------------------------------------------------------------------- /galaxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | namespace: cisco 3 | name: meraki 4 | version: 2.21.2 5 | readme: README.md 6 | authors: 7 | - Francisco Muñoz 8 | - Bryan Vargas 9 | - William Astorga 10 | - Jose Bogarin 11 | description: Ansible Modules for Meraki 12 | license_file: "LICENSE" 13 | tags: 14 | - cisco 15 | - meraki 16 | - cloud 17 | - collection 18 | - networking 19 | - sdn 20 | dependencies: 21 | ansible.utils: ">=2.0.0,<7.0" 22 | build_ignore: 23 | - docs/_build/ 24 | repository: https://github.com/meraki/dashboard-api-ansible 25 | documentation: https://meraki.github.io/dashboard-api-ansible/ 26 | homepage: https://github.com/meraki/dashboard-api-ansible 27 | issues: https://github.com/meraki/dashboard-api-ansible/issues 28 | -------------------------------------------------------------------------------- /playbooks/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/playbooks/.DS_Store -------------------------------------------------------------------------------- /playbooks/Bulk_change_DNS_from_file.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | vars: 5 | org_id: XXXXXXX 6 | tasks: 7 | - name: Include vars of devices.yaml into the 'devices' variable 8 | ansible.builtin.include_vars: 9 | file: devices.yaml 10 | name: devices 11 | - name: Change DNS management information 12 | cisco.meraki.devices_management_interface: 13 | state: present 14 | serial: "{{ item.value.serial_no }}" 15 | wan1: 16 | staticDns: 17 | - 192.168.20.2 18 | - 8.8.8.8 19 | loop: "{{ lookup('dict', devices) }}" 20 | -------------------------------------------------------------------------------- /playbooks/Create_a_Network.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create Network 6 | cisco.meraki.networks: 7 | state: present 8 | organizationId: "828099381482762270" 9 | name: Made With Ansible networks 10 | notes: Made_with_anisble 11 | productTypes: 12 | - switch 13 | - appliance 14 | - wireless 15 | timeZone: Australia/Sydney 16 | -------------------------------------------------------------------------------- /playbooks/Get_AP_Serials.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | org_id: XXXXXXXX 5 | gather_facts: false 6 | tasks: 7 | - name: Get all organizations _devices 8 | cisco.meraki.organizations_devices_info: 9 | meraki_suppress_logging: true 10 | organizationId: "{{ org_id }}" 11 | total_pages: -1 12 | register: result 13 | - name: Filter APs with "wireless" productTypes and get Serial Number 14 | ansible.builtin.set_fact: 15 | filtered_aps: 16 | "{{ result.meraki_response | selectattr('productType', 'contains', 17 | 'wireless') | map(attribute='serial') | list }}" 18 | register: aps 19 | - name: Show All Devices 20 | ansible.builtin.debug: 21 | msg: "{{ aps }}" 22 | -------------------------------------------------------------------------------- /playbooks/Get_All_Devices.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | org_id: XXXXXXXX 5 | gather_facts: false 6 | tasks: 7 | - name: Get all organizations _devices 8 | cisco.meraki.organizations_devices_info: 9 | meraki_suppress_logging: true 10 | organizationId: "{{ org_id }}" 11 | total_pages: -1 12 | register: org_devices 13 | - name: Show All Devices 14 | ansible.builtin.debug: 15 | msg: "{{ org_devices }}" 16 | -------------------------------------------------------------------------------- /playbooks/Get_IP_MGNT_info.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Query management information 6 | cisco.meraki.devices_management_interface_info: 7 | serial: Q3XX-XXXX-XXXX 8 | register: result 9 | - name: Show Results 10 | ansible.builtin.debug: 11 | msg: "{{ result }}" 12 | -------------------------------------------------------------------------------- /playbooks/Get_IP_MGNT_info_from_file.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Include vars of devices.yaml into the 'devices' variable 6 | ansible.builtin.include_vars: 7 | file: devices.yaml 8 | name: devices 9 | - name: Query management information 10 | cisco.meraki.devices_management_interface_info: 11 | serial: "{{ item.value.serial_no }}" 12 | register: result 13 | loop: "{{ lookup('dict', devices) }}" 14 | - name: Show Results 15 | ansible.builtin.debug: 16 | msg: "{{ result }}" 17 | -------------------------------------------------------------------------------- /playbooks/Set_IP_MGNT_info.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Change management information 6 | cisco.meraki.devices_management_interface: 7 | state: present 8 | serial: XXXX-XXXX-XXXX 9 | wan1: 10 | staticDns: 11 | - 192.168.20.2 12 | - 8.8.8.8 13 | staticGatewayIp: 192.168.20.1 14 | staticIp: 192.168.20.181 15 | staticSubnetMask: 255.255.255.0 16 | usingStaticIp: true 17 | -------------------------------------------------------------------------------- /playbooks/What_Org.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: meraki_servers 3 | gather_facts: false 4 | tasks: 5 | - name: Get all Organizations 6 | cisco.meraki.organizations_info: 7 | meraki_suppress_logging: true 8 | register: result 9 | - name: Show current Meraki administrator 10 | ansible.builtin.debug: 11 | msg: "{{ result | json_query('meraki_response[*].name') }}" 12 | -------------------------------------------------------------------------------- /playbooks/Who_Am_I.yaml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: meraki_servers 3 | gather_facts: false 4 | tasks: 5 | - name: Get my administered identities 6 | cisco.meraki.administered_identities_me_info: 7 | meraki_suppress_logging: true 8 | register: whoamiresult 9 | - name: Show current Meraki administrator 10 | ansible.builtin.debug: 11 | msg: 12 | "{{ whoamiresult.meraki_response.name }} - {{ whoamiresult.meraki_response.email 13 | }}" 14 | - name: Get all Organizations 15 | cisco.meraki.organizations_info: 16 | meraki_suppress_logging: true 17 | register: orgresults 18 | - name: Show current Meraki administrator 19 | ansible.builtin.debug: 20 | msg: "{{ orgresults | json_query('meraki_response[*].name') }}" 21 | -------------------------------------------------------------------------------- /playbooks/administered_identities_me_api_keys_revoke.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | vars: 5 | org_id: XXXXXXX 6 | tasks: 7 | - name: Include vars of devices.yaml into the 'devices' variable 8 | ansible.builtin.include_vars: 9 | file: devices.yaml 10 | name: devices 11 | - name: Create 12 | cisco.meraki.administered_identities_me_api_keys_revoke: null 13 | -------------------------------------------------------------------------------- /playbooks/administered_identities_me_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get all administered _identities _me 6 | cisco.meraki.administered_identities_me_info: 7 | meraki_suppress_logging: true 8 | register: result 9 | - name: Show result 10 | ansible.builtin.debug: 11 | msg: "{{ result }}" 12 | -------------------------------------------------------------------------------- /playbooks/administrerd_identities_me_api_keys_generate.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | vars: 5 | org_id: XXXXXXX 6 | tasks: 7 | - name: Include vars of devices.yaml into the 'devices' variable 8 | ansible.builtin.include_vars: 9 | file: devices.yaml 10 | name: devices 11 | - name: Create 12 | cisco.meraki.administered_identities_me_api_keys_generate: 13 | meraki_suppress_logging: "false" 14 | -------------------------------------------------------------------------------- /playbooks/credentials.template: -------------------------------------------------------------------------------- 1 | --- 2 | meraki_api_key: "ABCD" 3 | meraki_base_url: "https://api.meraki.com/api/v1" 4 | meraki_single_request_timeout: "" 5 | meraki_certificate_path: "" 6 | meraki_requests_proxy: true 7 | meraki_wait_on_rate_limit: 60 8 | meraki_nginx_429_retry_wait_time: 60 9 | meraki_action_batch_retry_wait_time: 60 10 | meraki_retry_4xx_error: false 11 | meraki_retry_4xx_error_wait_time: 60 12 | meraki_maximum_retries: 2 13 | meraki_output_log: true 14 | meraki_log_file_prefix: "meraki_api_" 15 | meraki_log_path: "" 16 | meraki_print_console: true 17 | meraki_suppress_logging: false 18 | meraki_simulate: false 19 | meraki_be_geo_id: "" 20 | 21 | meraki_use_iterator_for_get_pages: false 22 | meraki_inherit_logging_config: false -------------------------------------------------------------------------------- /playbooks/device_blink_leds.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.devices_blink_leds: 7 | meraki_suppress_logging: true 8 | duration: 20 9 | duty: 50 10 | period: 160 11 | serial: QBSB-AX45-LY9A 12 | -------------------------------------------------------------------------------- /playbooks/device_lldp_cdp.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | sn: Q4AC-YTF3-WQ66 5 | gather_facts: false 6 | tasks: 7 | - name: Get device's LLDP and CDP neighbors 8 | cisco.meraki.devices_lldp_cdp_info: 9 | serial: "{{ sn }}" 10 | register: result 11 | - name: Show result 12 | ansible.builtin.debug: 13 | msg: "{{ result }}" 14 | -------------------------------------------------------------------------------- /playbooks/device_statuses.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | organization_id: 828099381482762270 5 | gather_facts: false 6 | tasks: 7 | - name: Get all organization's devices statuses 8 | cisco.meraki.organizations_devices_statuses_info: 9 | organizationId: "{{ organization_id }}" 10 | register: result 11 | - name: Show result 12 | ansible.builtin.debug: 13 | msg: "{{ result }}" 14 | -------------------------------------------------------------------------------- /playbooks/device_switch_ports.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | organization_id: 828099381482762270 5 | gather_facts: false 6 | tasks: 7 | - name: Update by id 8 | cisco.meraki.devices_switch_ports: 9 | meraki_suppress_logging: false 10 | state: present 11 | serial: "QBSB-AX45-LY9A" 12 | enabled: true 13 | name: testAPI2 14 | poeEnabled: false 15 | portId: 3 16 | tags: [] 17 | type: access 18 | vlan: 10 19 | voiceVlan: 20 20 | -------------------------------------------------------------------------------- /playbooks/devices.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Change name of device 6 | cisco.meraki.devices: 7 | name: new name 12 8 | serial: QBSC-ALSL-3GXN 9 | state: present 10 | -------------------------------------------------------------------------------- /playbooks/devices_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get Device 6 | cisco.meraki.devices_info: 7 | meraki_suppress_logging: true 8 | organizationId: "828099381482762270" 9 | perPage: 3 10 | total_pages: -1 11 | register: result 12 | - name: Show result 13 | ansible.builtin.debug: 14 | msg: "{{ result }}" 15 | -------------------------------------------------------------------------------- /playbooks/devices_live_tools_ping.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.devices_live_tools_ping: 7 | meraki_suppress_logging: true 8 | state: present 9 | count: 2 10 | serial: QBSD-36C3-473D 11 | target: 75.75.75.75 12 | -------------------------------------------------------------------------------- /playbooks/devices_switch_routing_interfaces.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.devices_switch_routing_interfaces: 7 | meraki_suppress_logging: true 8 | state: present 9 | defaultGateway: 192.168.1.1 10 | interfaceIp: 192.168.1.2 11 | name: L3 interface 12 | serial: L_828099381482770866 13 | -------------------------------------------------------------------------------- /playbooks/files/test.template: -------------------------------------------------------------------------------- 1 | Dummy text. 2 | Dummy text. 3 | Dummy text. 4 | Dummy text. 5 | Dummy text. 6 | Dummy text. 7 | Dummy text. 8 | Dummy text. 9 | Dummy text. 10 | Dummy text. 11 | Dummy text. 12 | Dummy text. 13 | Dummy text. 14 | Dummy text. 15 | Dummy text. 16 | Dummy text. 17 | Dummy text. 18 | Dummy text. 19 | Dummy text. 20 | Dummy text. 21 | Dummy text. 22 | Dummy text. 23 | Dummy text. 24 | Dummy text. 25 | Dummy text. 26 | Dummy text. 27 | Dummy text. 28 | Dummy text. 29 | Dummy text. 30 | Dummy text. 31 | Dummy text. 32 | Dummy text. 33 | Dummy text. 34 | Dummy text. 35 | Dummy text. 36 | -------------------------------------------------------------------------------- /playbooks/hosts: -------------------------------------------------------------------------------- 1 | [meraki_servers] 2 | meraki_server -------------------------------------------------------------------------------- /playbooks/ms_playbook.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | network_id: L_828099381482770866 5 | serial_number: QBSB-D5ZD-9CXT 6 | gather_facts: false 7 | tasks: 8 | - name: Update STP settings 9 | cisco.meraki.networks_switch_stp: 10 | networkId: "{{ network_id }}" 11 | rstpEnabled: true 12 | stpBridgePriority: 13 | - stpPriority: 4096 14 | switches: 15 | - "{{ serial_number }}" 16 | - name: Update switch settings 17 | cisco.meraki.networks_switch_settings: 18 | networkId: "{{ network_id }}" 19 | useCombinedPower: true 20 | vlan: 1 21 | - name: Update storm-control settings 22 | cisco.meraki.networks_switch_storm_control: 23 | networkId: "{{ network_id }}" 24 | broadcastThreshold: 30 25 | multicastThreshold: 30 26 | unknownUnicastThreshold: 30 27 | - name: Update MTU settings 28 | cisco.meraki.networks_switch_mtu: 29 | networkId: "{{ network_id }}" 30 | defaultMtuSize: 9578 31 | - name: Createa a routing interface 32 | cisco.meraki.devices_switch_routing_interfaces: 33 | defaultGateway: 192.168.1.1 34 | interfaceIp: 192.168.1.2 35 | name: L3 interface 36 | serial: "{{ serial_number }}" 37 | subnet: 192.168.1.0/24 38 | vlanId: 123 39 | - name: Create a static route 40 | cisco.meraki.devices_switch_routing_static_routes: 41 | serial: "{{ serial_number }}" 42 | name: My route 43 | nextHopIp: 192.168.1.100 44 | subnet: 1.2.3.0/24 45 | - name: Create a static route 46 | cisco.meraki.devices_switch_routing_static_routes: 47 | serial: "{{ serial_number }}" 48 | name: My route 49 | nextHopIp: 192.168.1.100 50 | subnet: 1.2.3.0/24 51 | - name: Port cycle 52 | cisco.meraki.devices_switch_ports_cycle: 53 | serial: "{{ serial_number }}" 54 | ports: 55 | - 1 56 | - 4-5 57 | - 25-48 58 | -------------------------------------------------------------------------------- /playbooks/mv_playbook.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | serial_number: QBSD-8VXX-6QXX 5 | network_id: L_828099381482770866 6 | gather_facts: false 7 | tasks: 8 | - name: Update Camera name 9 | cisco.meraki.devices: 10 | serial: "{{ serial_number }}" 11 | name: My Camera 12 | - name: Update Camera video settings 13 | cisco.meraki.devices_camera_video_settings: 14 | serial: "{{ serial_number }}" 15 | externalRtspEnabled: true 16 | - name: Create a primary wireless profile 17 | cisco.meraki.networks_camera_wireless_profiles: 18 | networkId: "{{ network_id }}" 19 | name: wireless profile A 20 | ssid: 21 | name: cameras ssid 22 | authMode: psk 23 | encryptionMode: wpa 24 | psk: SuperSecretPreSharedKey 25 | register: primary_profile 26 | - name: Create a secondary wireless profile 27 | cisco.meraki.networks_camera_wireless_profiles: 28 | networkId: "{{ network_id }}" 29 | name: wireless profile B 30 | ssid: 31 | name: cameras ssid 2 32 | authMode: psk 33 | encryptionMode: wpa 34 | psk: SuperSecretPreSharedKey 35 | register: secondary_profile 36 | - name: Associate the camera with the wireless profile 37 | cisco.meraki.devices_camera_wireless_profiles: 38 | serial: "{{ serial_number }}" 39 | ids: 40 | primary: "{{ primary_profile['meraki_response']['id'] }}" 41 | secondary: "{{ secondary_profile['meraki_response']['id'] }}" 42 | - name: Update quality and retention settings 43 | cisco.meraki.devices_camera_quality_and_retention: 44 | serial: "{{ serial_number }}" 45 | audioRecordingEnabled: true 46 | motionBasedRetentionEnabled: true 47 | motionDetectorVersion: 2 48 | quality: High 49 | resolution: 1920x1080 50 | restrictedBandwidthModeEnabled: false 51 | -------------------------------------------------------------------------------- /playbooks/network_devices_claim.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | network_id: L_828099381482771185 5 | gather_facts: false 6 | tasks: 7 | - name: Create 8 | cisco.meraki.networks_devices_claim: 9 | meraki_output_log: true 10 | networkId: "{{ network_id }}" 11 | serials: 12 | - QBSD-WABS-BH7V 13 | -------------------------------------------------------------------------------- /playbooks/networks.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | org_id: 828099381482762270 5 | gather_facts: false 6 | tasks: 7 | - name: Createa a new network 8 | cisco.meraki.networks: 9 | meraki_suppress_logging: false 10 | state: present 11 | name: New network by Ansible 12 | notes: Additional description of the network 13 | organizationId: "{{ org_id }}" 14 | productTypes: 15 | - appliance 16 | - switch 17 | timeZone: America/Los_Angeles 18 | -------------------------------------------------------------------------------- /playbooks/networks_appliance_firewall_l7_firewall_rules.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Update all 6 | cisco.meraki.networks_appliance_firewall_l7_firewall_rules: 7 | state: present 8 | meraki_suppress_logging: false 9 | networkId: L_828099381482771185 # Lab Network ID 10 | rules: 11 | - policy: deny 12 | type: applicationCategory 13 | value: 14 | id: meraki:layer7/category/5 15 | name: Sports 16 | - policy: deny 17 | type: applicationCategory 18 | value: 19 | id: meraki:layer7/category/6 20 | name: Gaming 21 | -------------------------------------------------------------------------------- /playbooks/networks_appliance_vlans.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.networks_appliance_vlans: 7 | meraki_suppress_logging: true 8 | state: present 9 | applianceIp: 192.168.1.2 10 | cidr: 192.168.1.0/24 11 | groupPolicyId: "101" 12 | id: "1234" 13 | ipv6: 14 | enabled: true 15 | prefixAssignments: 16 | - autonomous: false 17 | origin: 18 | interfaces: 19 | - wan0 20 | type: internet 21 | staticApplianceIp6: 2001:db8:3c4d:15::1 22 | staticPrefix: 2001:db8:3c4d:15::/64 23 | mandatoryDhcp: 24 | enabled: true 25 | mask: 28 26 | name: My VLAN 27 | networkId: L_828099381482770865 28 | subnet: 192.168.1.0/24 29 | templateVlanType: same 30 | -------------------------------------------------------------------------------- /playbooks/networks_devices_claim_2.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | network_id: L_828099381482771185 5 | serial_number: QBSB-D5ZD-9CXT 6 | gather_facts: false 7 | tasks: 8 | - name: Create 9 | cisco.meraki.networks_devices_claim: 10 | addAtomically: true 11 | networkId: L_828099381482771185 12 | serials: 13 | - Q2FV-VYGH-ZVB3 14 | -------------------------------------------------------------------------------- /playbooks/networks_devices_remove.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | network_id: L_828099381482771185 5 | gather_facts: false 6 | tasks: 7 | - name: Create 8 | cisco.meraki.networks_devices_remove: 9 | networkId: L_828099381482771185 10 | serial: QBSD-WABS-BH7V 11 | -------------------------------------------------------------------------------- /playbooks/networks_syslog_servers.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | vars: 5 | network_id: "L_828099381482771185" 6 | tasks: 7 | - name: Syslog servers 8 | cisco.meraki.networks_syslog_servers: 9 | networkId: "{{ network_id }}" 10 | meraki_suppress_logging: false 11 | servers: 12 | - host: 1.2.3.4 13 | port: 8000 14 | roles: 15 | - URLs 16 | - Wireless event log 17 | # - host: 1.2.3.4 18 | # port: 5000 19 | # roles: 20 | # - URLs 21 | # - Wireless event log 22 | state: present 23 | -------------------------------------------------------------------------------- /playbooks/networks_wireless_ssids_identityPsks.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.networks_wireless_ssids_identity_psks: 7 | meraki_suppress_logging: true 8 | state: present 9 | expiresAt: "2018-02-11T00:00:00.090209Z" 10 | groupPolicyId: "101" 11 | name: Sample Identity PSK 12 | networkId: L_828099381482771185 13 | number: 1 14 | -------------------------------------------------------------------------------- /playbooks/organization.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations: 7 | meraki_suppress_logging: true 8 | state: present 9 | management: 10 | details: 11 | - name: MSP ID 12 | value: "1234567" 13 | name: Test Ansible 14 | api: 15 | enabled: true 16 | -------------------------------------------------------------------------------- /playbooks/organization_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get all Organizations 6 | cisco.meraki.organizations_info: 7 | meraki_suppress_logging: false 8 | organizationId: "828099381482762766" 9 | register: result 10 | - name: Show result 11 | ansible.builtin.debug: 12 | msg: "{{ result }}" 13 | -------------------------------------------------------------------------------- /playbooks/organization_summary.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | org_id: "828099381482762270" 5 | gather_facts: false 6 | tasks: 7 | - name: Get all organizations summary top appliances by utilization 8 | cisco.meraki.organizations_summary_top_appliances_by_utilization_info: 9 | organizationId: "{{ org_id }}" 10 | register: result 11 | - name: Show result 12 | ansible.builtin.debug: 13 | msg: "{{ result }}" 14 | - name: Get all organizations summary top clients by usage 15 | cisco.meraki.organizations_summary_top_clients_by_usage_info: 16 | organizationId: "{{ org_id }}" 17 | register: result 18 | - name: Show result 19 | ansible.builtin.debug: 20 | msg: "{{ result }}" 21 | - name: Get all organizations summary top clients by manufacturers 22 | cisco.meraki.organizations_summary_top_clients_manufacturers_by_usage_info: 23 | organizationId: "{{ org_id }}" 24 | register: result 25 | - name: Show result 26 | ansible.builtin.debug: 27 | msg: "{{ result }}" 28 | - name: Get all organizations summary top devices by usage 29 | cisco.meraki.organizations_summary_top_devices_by_usage_info: 30 | organizationId: "{{ org_id }}" 31 | register: result 32 | - name: Show result 33 | ansible.builtin.debug: 34 | msg: "{{ result }}" 35 | - name: Get all organizations summary top devices by models 36 | cisco.meraki.organizations_summary_top_devices_models_by_usage_info: 37 | organizationId: "{{ org_id }}" 38 | register: result 39 | - name: Show result 40 | ansible.builtin.debug: 41 | msg: "{{ result }}" 42 | - name: Get all organizations summary top SSIDs by usage 43 | cisco.meraki.organizations_summary_top_ssids_by_usage_info: 44 | organizationId: "{{ org_id }}" 45 | register: result 46 | - name: Show result 47 | ansible.builtin.debug: 48 | msg: "{{ result }}" 49 | - name: Get all organizations summary top switches by energy usage 50 | cisco.meraki.organizations_summary_top_switches_by_energy_usage_info: 51 | organizationId: "{{ org_id }}" 52 | register: result 53 | - name: Show result 54 | ansible.builtin.debug: 55 | msg: "{{ result }}" 56 | -------------------------------------------------------------------------------- /playbooks/organizations_adaptivePolicy_acls.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations_adaptive_policy_acls: 7 | meraki_suppress_logging: true 8 | state: present 9 | description: Blocks sensitive web traffic 10 | ipVersion: ipv6 11 | name: Block sensitive web traffic 12 | organizationId: "828099381482762270" 13 | rules: 14 | - dstPort: 22-30 15 | policy: deny 16 | protocol: tcp 17 | srcPort: 1,33 18 | -------------------------------------------------------------------------------- /playbooks/organizations_adaptive_policy_groups.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations_adaptive_policy_groups: 7 | meraki_suppress_logging: true 8 | state: present 9 | name: Employee Group 10 | organizationId: "828099381482762270" 11 | sgt: 10005 12 | -------------------------------------------------------------------------------- /playbooks/organizations_admin copy.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars_files: 4 | - credentials.yml 5 | gather_facts: false 6 | tasks: 7 | - name: Update by id 8 | cisco.meraki.networks_floor_plans: 9 | state: present 10 | bottomLeftCorner: 11 | lat: 12 12 | lng: 11 13 | bottomRightCorner: 14 | lat: 9 15 | lng: 8 16 | center: 17 | lat: 7 18 | lng: 1 19 | floorPlanId: string 20 | imageContents: Q2lzY28gTWVyYWtp.png 21 | name: Test 22 | networkId: L_828099381482770942 23 | -------------------------------------------------------------------------------- /playbooks/organizations_admin.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations_admins: 7 | meraki_suppress_logging: true 8 | state: present 9 | name: DevNet Admin 345 10 | email: devnetmerakiadmin23@yopmail.com 11 | authenticationMethod: Email 12 | orgAccess: full 13 | networks: [] 14 | tags: [] 15 | organizationId: "828099381482762270" 16 | -------------------------------------------------------------------------------- /playbooks/organizations_admin_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get all Organizations Admins 6 | cisco.meraki.organizations_admins_info: 7 | meraki_suppress_logging: true 8 | organizationId: "828099381482762270" 9 | register: result 10 | - name: Show result 11 | ansible.builtin.debug: 12 | msg: "{{ result }}" 13 | -------------------------------------------------------------------------------- /playbooks/organizations_camera_custom_analytics_artifacts.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations_camera_custom_analytics_artifacts: 7 | meraki_suppress_logging: true 8 | state: present 9 | name: Test Ansible 2 10 | organizationId: "828099381482762270" 11 | artifactId: "828099381482750058" 12 | -------------------------------------------------------------------------------- /playbooks/organizations_clients_search_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get all organizations _clients _search 6 | cisco.meraki.organizations_clients_search_info: 7 | meraki_suppress_logging: true 8 | mac: 4c:c8:a1:01:01:c2 9 | perPage: 3 10 | total_pages: -1 11 | organizationId: "828099381482762270" 12 | register: result 13 | -------------------------------------------------------------------------------- /playbooks/organizations_config_templates.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations_config_templates: 7 | meraki_suppress_logging: true 8 | state: present 9 | name: My config template 10 | organizationId: "828099381482762270" 11 | timeZone: America/Los_Angeles 12 | -------------------------------------------------------------------------------- /playbooks/organizations_config_templates_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get all organizations _configtemplates 6 | cisco.meraki.organizations_config_templates_info: 7 | meraki_suppress_logging: true 8 | organizationId: "828099381482762270" 9 | register: result 10 | -------------------------------------------------------------------------------- /playbooks/organizations_devices_info.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Get all organizations _devices 6 | cisco.meraki.organizations_devices_info: 7 | meraki_suppress_logging: true 8 | perPage: 3 9 | total_pages: -1 10 | models: 11 | - MV12N 12 | organizationId: "828099381482762270" 13 | register: result 14 | -------------------------------------------------------------------------------- /playbooks/organizations_login_security.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | org_id: 828099381482762270 5 | gather_facts: false 6 | tasks: 7 | - name: Get security login settings 8 | cisco.meraki.organizations_login_security_info: 9 | meraki_suppress_logging: false 10 | organizationId: "{{ org_id }}" 11 | register: result 12 | - name: Show result 13 | ansible.builtin.debug: 14 | msg: "{{ result }}" 15 | - name: Update security login settings 16 | cisco.meraki.organizations_login_security: 17 | meraki_suppress_logging: false 18 | organizationId: "{{ org_id }}" 19 | state: present 20 | accountLockoutAttempts: 3 21 | idleTimeoutMinutes: 10 22 | enforceIdleTimeout: true 23 | enforceTwoFactorAuth: false 24 | -------------------------------------------------------------------------------- /playbooks/organizations_saml_idps.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Create 6 | cisco.meraki.organizations_saml_idps: 7 | meraki_suppress_logging: true 8 | state: present 9 | organizationId: "828099381482762270" 10 | sloLogoutUrl: https://somewhere.com 11 | x509certSha1Fingerprint: 00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99 12 | -------------------------------------------------------------------------------- /playbooks/switch_port_config.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | gather_facts: false 4 | tasks: 5 | - name: Update ports 6 | cisco.meraki.devices_switch_ports: 7 | meraki_suppress_logging: true 8 | state: present 9 | serial: QBSB-D8ED-9NXT 10 | vlan: 10 11 | portId: 1 12 | -------------------------------------------------------------------------------- /playbooks/test.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | network_id: L_828099381482771185 5 | org_id: "828099381482762270" 6 | gather_facts: false 7 | tasks: 8 | - name: Get all networks _clients 9 | cisco.meraki.networks_clients_info: 10 | meraki_suppress_logging: false 11 | timespan: 1 12 | perPage: 3 13 | networkId: L_828099381482771185 14 | total_pages: -1 15 | direction: next 16 | register: result 17 | -------------------------------------------------------------------------------- /playbooks/who_am_i.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: meraki_servers 3 | gather_facts: false 4 | tasks: 5 | - name: Get my administered identities 6 | cisco.meraki.administered_identities_me_info: null 7 | register: result 8 | - name: Show result 9 | ansible.builtin.debug: 10 | msg: "{{ result }}" 11 | -------------------------------------------------------------------------------- /playbooks/wifi_deploy_one.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars: 4 | org_id: "828099381482762270" 5 | corp_name: ACME 6 | network_id: L_828099381482770865 7 | gather_facts: false 8 | tasks: 9 | - name: Create corporate SSID 10 | cisco.meraki.networks_wireless_ssids: 11 | meraki_suppress_logging: true 12 | state: present 13 | enabled: true 14 | name: "{{ corp_name }}" 15 | networkId: "{{ network_id }}" 16 | number: "1" 17 | -------------------------------------------------------------------------------- /playbooks/wifi_deployment.yml: -------------------------------------------------------------------------------- 1 | - name: Play Name 2 | hosts: localhost 3 | vars_files: 4 | - credentials.yml 5 | vars: 6 | org_id: "828099381482762270" 7 | corp_name: Umbrella Corp 8 | gather_facts: false 9 | tasks: 10 | - name: Get Organization Networks 11 | cisco.meraki.networks_info: 12 | organizationId: "{{ org_id }}" 13 | register: result 14 | - name: Filter networks with "wireless" productTypes 15 | ansible.builtin.set_fact: 16 | filtered_networks: 17 | "{{ result.meraki_response | selectattr('productTypes', 18 | 'contains', 'wireless') | list }}" 19 | - name: Create corporate SSID 20 | cisco.meraki.networks_wireless_ssids: 21 | state: present 22 | enabled: true 23 | name: "{{ corp_name }}" 24 | networkId: "{{ item.id }}" 25 | number: 1 26 | ipAssignmentMode: Bridge mode 27 | defaultVlanId: 100 28 | useVlanTagging: true 29 | authMode: 8021x-radius 30 | radiusServers: 31 | - one: null 32 | host: 1.2.3.4 33 | port: 1812 34 | secret: SuperSecretPassword 35 | loop: "{{ filtered_networks }}" 36 | loop_control: 37 | label: "{{ item.id }}" 38 | - name: Create Mobile/PSK SSID 39 | cisco.meraki.networks_wireless_ssids: 40 | state: present 41 | enabled: true 42 | name: "{{ corp_name }}-legacy" 43 | networkId: "{{ item.id }}" 44 | number: 2 45 | ipAssignmentMode: Bridge mode 46 | defaultVlanId: 200 47 | useVlanTagging: true 48 | authMode: psk 49 | encryptionMode: wpa 50 | psk: SuperSecretPreSharedKey 51 | loop: "{{ filtered_networks }}" 52 | loop_control: 53 | label: "{{ item.id }}" 54 | - name: Create Guest SSID 55 | cisco.meraki.networks_wireless_ssids: 56 | state: present 57 | enabled: true 58 | name: "{{ corp_name }}-Guests" 59 | networkId: "{{ item.id }}" 60 | number: 3 61 | ipAssignmentMode: Bridge mode 62 | defaultVlanId: 300 63 | useVlanTagging: true 64 | authMode: open 65 | splashPage: Click-through splash page 66 | loop: "{{ filtered_networks }}" 67 | loop_control: 68 | label: "{{ item.id }}" 69 | -------------------------------------------------------------------------------- /plugins/README.md: -------------------------------------------------------------------------------- 1 | # Collections Plugins Directory 2 | 3 | This directory can be used to ship various plugins inside an Ansible collection. Each plugin is placed in a folder that 4 | is named after the type of plugin it is in. It can also include the `module_utils` and `modules` directory that 5 | would contain module utils and modules respectively. 6 | 7 | Here is an example directory of the majority of plugins currently supported by Ansible: 8 | 9 | ``` 10 | └── plugins 11 | ├── action 12 | ├── become 13 | ├── cache 14 | ├── callback 15 | ├── cliconf 16 | ├── connection 17 | ├── filter 18 | ├── httpapi 19 | ├── inventory 20 | ├── lookup 21 | ├── module_utils 22 | ├── modules 23 | ├── netconf 24 | ├── shell 25 | ├── strategy 26 | ├── terminal 27 | ├── test 28 | └── vars 29 | ``` 30 | 31 | A full list of plugin types can be found at [Working With Plugins](https://docs.ansible.com/ansible/2.10/plugins/plugins.html). 32 | -------------------------------------------------------------------------------- /plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/plugins/__init__.py -------------------------------------------------------------------------------- /plugins/action/administered_identities_me_api_keys_generate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguements specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = False 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def get_object(self, params): 65 | new_object = dict( 66 | ) 67 | return new_object 68 | 69 | def run(self, tmp=None, task_vars=None): 70 | self._task.diff = False 71 | self._result = super(ActionModule, self).run(tmp, task_vars) 72 | self._result["changed"] = False 73 | self._check_argspec() 74 | 75 | meraki = MERAKI(params=self._task.args) 76 | 77 | response = meraki.exec_meraki( 78 | family="administered", 79 | function='generateAdministeredIdentitiesMeApiKeys', 80 | op_modifies=True, 81 | params=self.get_object(self._task.args), 82 | ) 83 | self._result.update(dict(meraki_response=response)) 84 | self._result.update(meraki.exit_json()) 85 | return self._result 86 | -------------------------------------------------------------------------------- /plugins/action/administered_identities_me_api_keys_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguments specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = True 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def get_all(self, params): 65 | new_object = {} 66 | 67 | return new_object 68 | 69 | def run(self, tmp=None, task_vars=None): 70 | self._task.diff = False 71 | self._result = super(ActionModule, self).run(tmp, task_vars) 72 | self._result["changed"] = False 73 | self._check_argspec() 74 | 75 | self._result.update(dict(meraki_response={})) 76 | 77 | meraki = MERAKI(params=self._task.args) 78 | 79 | response = meraki.exec_meraki( 80 | family="administered", 81 | function='getAdministeredIdentitiesMeApiKeys', 82 | params=self.get_all(self._task.args), 83 | ) 84 | self._result.update(dict(meraki_response=response)) 85 | self._result.update(meraki.exit_json()) 86 | return self._result 87 | -------------------------------------------------------------------------------- /plugins/action/administered_identities_me_api_keys_revoke.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguements specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | suffix=dict(type="str"), 29 | )) 30 | 31 | required_if = [] 32 | required_one_of = [] 33 | mutually_exclusive = [] 34 | required_together = [] 35 | 36 | 37 | class ActionModule(ActionBase): 38 | def __init__(self, *args, **kwargs): 39 | if not ANSIBLE_UTILS_IS_INSTALLED: 40 | raise AnsibleActionFail( 41 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 42 | super(ActionModule, self).__init__(*args, **kwargs) 43 | self._supports_async = False 44 | self._supports_check_mode = False 45 | self._result = None 46 | 47 | # Checks the supplied parameters against the argument spec for this module 48 | def _check_argspec(self): 49 | aav = AnsibleArgSpecValidator( 50 | data=self._task.args, 51 | schema=dict(argument_spec=argument_spec), 52 | schema_format="argspec", 53 | schema_conditionals=dict( 54 | required_if=required_if, 55 | required_one_of=required_one_of, 56 | mutually_exclusive=mutually_exclusive, 57 | required_together=required_together, 58 | ), 59 | name=self._task.action, 60 | ) 61 | valid, errors, self._task.args = aav.validate() 62 | if not valid: 63 | raise AnsibleActionFail(errors) 64 | 65 | def get_object(self, params): 66 | new_object = dict( 67 | suffix=params.get("suffix"), 68 | ) 69 | return new_object 70 | 71 | def run(self, tmp=None, task_vars=None): 72 | self._task.diff = False 73 | self._result = super(ActionModule, self).run(tmp, task_vars) 74 | self._result["changed"] = False 75 | self._check_argspec() 76 | 77 | meraki = MERAKI(params=self._task.args) 78 | 79 | response = meraki.exec_meraki( 80 | family="administered", 81 | function='revokeAdministeredIdentitiesMeApiKeys', 82 | op_modifies=True, 83 | params=self.get_object(self._task.args), 84 | ) 85 | self._result.update(dict(meraki_response=response)) 86 | self._result.update(meraki.exit_json()) 87 | return self._result 88 | -------------------------------------------------------------------------------- /plugins/action/administered_identities_me_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguments specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = True 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def get_all(self, params): 65 | new_object = {} 66 | 67 | return new_object 68 | 69 | def run(self, tmp=None, task_vars=None): 70 | self._task.diff = False 71 | self._result = super(ActionModule, self).run(tmp, task_vars) 72 | self._result["changed"] = False 73 | self._check_argspec() 74 | 75 | self._result.update(dict(meraki_response={})) 76 | 77 | meraki = MERAKI(params=self._task.args) 78 | 79 | response = meraki.exec_meraki( 80 | family="administered", 81 | function='getAdministeredIdentitiesMe', 82 | params=self.get_all(self._task.args), 83 | ) 84 | self._result.update(dict(meraki_response=response)) 85 | self._result.update(meraki.exit_json()) 86 | return self._result 87 | -------------------------------------------------------------------------------- /plugins/action/devices_appliance_vmx_authentication_token.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguements specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | serial=dict(type="str"), 29 | )) 30 | 31 | required_if = [] 32 | required_one_of = [] 33 | mutually_exclusive = [] 34 | required_together = [] 35 | 36 | 37 | class ActionModule(ActionBase): 38 | def __init__(self, *args, **kwargs): 39 | if not ANSIBLE_UTILS_IS_INSTALLED: 40 | raise AnsibleActionFail( 41 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 42 | super(ActionModule, self).__init__(*args, **kwargs) 43 | self._supports_async = False 44 | self._supports_check_mode = False 45 | self._result = None 46 | 47 | # Checks the supplied parameters against the argument spec for this module 48 | def _check_argspec(self): 49 | aav = AnsibleArgSpecValidator( 50 | data=self._task.args, 51 | schema=dict(argument_spec=argument_spec), 52 | schema_format="argspec", 53 | schema_conditionals=dict( 54 | required_if=required_if, 55 | required_one_of=required_one_of, 56 | mutually_exclusive=mutually_exclusive, 57 | required_together=required_together, 58 | ), 59 | name=self._task.action, 60 | ) 61 | valid, errors, self._task.args = aav.validate() 62 | if not valid: 63 | raise AnsibleActionFail(errors) 64 | 65 | def get_object(self, params): 66 | new_object = dict( 67 | serial=params.get("serial"), 68 | ) 69 | return new_object 70 | 71 | def run(self, tmp=None, task_vars=None): 72 | self._task.diff = False 73 | self._result = super(ActionModule, self).run(tmp, task_vars) 74 | self._result["changed"] = False 75 | self._check_argspec() 76 | 77 | meraki = MERAKI(params=self._task.args) 78 | 79 | response = meraki.exec_meraki( 80 | family="appliance", 81 | function='createDeviceApplianceVmxAuthenticationToken', 82 | op_modifies=True, 83 | params=self.get_object(self._task.args), 84 | ) 85 | self._result.update(dict(meraki_response=response)) 86 | self._result.update(meraki.exit_json()) 87 | return self._result 88 | -------------------------------------------------------------------------------- /plugins/action/devices_live_tools_arp_table_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguments specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = True 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def run(self, tmp=None, task_vars=None): 65 | self._task.diff = False 66 | self._result = super(ActionModule, self).run(tmp, task_vars) 67 | self._result["changed"] = False 68 | self._check_argspec() 69 | 70 | self._result.update(dict(meraki_response={})) 71 | 72 | meraki = MERAKI(params=self._task.args) 73 | 74 | # NOTE: Does not have a get all method or it is in another action 75 | response = None 76 | meraki.object_modify_result( 77 | changed=False, result="Module does not have get all, check arguments of module") 78 | self._result.update(dict(meraki_response=response)) 79 | self._result.update(meraki.exit_json()) 80 | return self._result 81 | -------------------------------------------------------------------------------- /plugins/action/devices_live_tools_cable_test_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguments specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = True 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def run(self, tmp=None, task_vars=None): 65 | self._task.diff = False 66 | self._result = super(ActionModule, self).run(tmp, task_vars) 67 | self._result["changed"] = False 68 | self._check_argspec() 69 | 70 | self._result.update(dict(meraki_response={})) 71 | 72 | meraki = MERAKI(params=self._task.args) 73 | 74 | # NOTE: Does not have a get all method or it is in another action 75 | response = None 76 | meraki.object_modify_result( 77 | changed=False, result="Module does not have get all, check arguments of module") 78 | self._result.update(dict(meraki_response=response)) 79 | self._result.update(meraki.exit_json()) 80 | return self._result 81 | -------------------------------------------------------------------------------- /plugins/action/devices_live_tools_throughput_test_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguments specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = True 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def run(self, tmp=None, task_vars=None): 65 | self._task.diff = False 66 | self._result = super(ActionModule, self).run(tmp, task_vars) 67 | self._result["changed"] = False 68 | self._check_argspec() 69 | 70 | self._result.update(dict(meraki_response={})) 71 | 72 | meraki = MERAKI(params=self._task.args) 73 | 74 | # NOTE: Does not have a get all method or it is in another action 75 | response = None 76 | meraki.object_modify_result( 77 | changed=False, result="Module does not have get all, check arguments of module") 78 | self._result.update(dict(meraki_response=response)) 79 | self._result.update(meraki.exit_json()) 80 | return self._result 81 | -------------------------------------------------------------------------------- /plugins/action/devices_live_tools_wake_on_lan_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguments specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | )) 29 | 30 | required_if = [] 31 | required_one_of = [] 32 | mutually_exclusive = [] 33 | required_together = [] 34 | 35 | 36 | class ActionModule(ActionBase): 37 | def __init__(self, *args, **kwargs): 38 | if not ANSIBLE_UTILS_IS_INSTALLED: 39 | raise AnsibleActionFail( 40 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 41 | super(ActionModule, self).__init__(*args, **kwargs) 42 | self._supports_async = False 43 | self._supports_check_mode = True 44 | self._result = None 45 | 46 | # Checks the supplied parameters against the argument spec for this module 47 | def _check_argspec(self): 48 | aav = AnsibleArgSpecValidator( 49 | data=self._task.args, 50 | schema=dict(argument_spec=argument_spec), 51 | schema_format="argspec", 52 | schema_conditionals=dict( 53 | required_if=required_if, 54 | required_one_of=required_one_of, 55 | mutually_exclusive=mutually_exclusive, 56 | required_together=required_together, 57 | ), 58 | name=self._task.action, 59 | ) 60 | valid, errors, self._task.args = aav.validate() 61 | if not valid: 62 | raise AnsibleActionFail(errors) 63 | 64 | def run(self, tmp=None, task_vars=None): 65 | self._task.diff = False 66 | self._result = super(ActionModule, self).run(tmp, task_vars) 67 | self._result["changed"] = False 68 | self._check_argspec() 69 | 70 | self._result.update(dict(meraki_response={})) 71 | 72 | meraki = MERAKI(params=self._task.args) 73 | 74 | # NOTE: Does not have a get all method or it is in another action 75 | response = None 76 | meraki.object_modify_result( 77 | changed=False, result="Module does not have get all, check arguments of module") 78 | self._result.update(dict(meraki_response=response)) 79 | self._result.update(meraki.exit_json()) 80 | return self._result 81 | -------------------------------------------------------------------------------- /plugins/action/networks_appliance_warm_spare_swap.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguements specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | networkId=dict(type="str"), 29 | )) 30 | 31 | required_if = [] 32 | required_one_of = [] 33 | mutually_exclusive = [] 34 | required_together = [] 35 | 36 | 37 | class ActionModule(ActionBase): 38 | def __init__(self, *args, **kwargs): 39 | if not ANSIBLE_UTILS_IS_INSTALLED: 40 | raise AnsibleActionFail( 41 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 42 | super(ActionModule, self).__init__(*args, **kwargs) 43 | self._supports_async = False 44 | self._supports_check_mode = False 45 | self._result = None 46 | 47 | # Checks the supplied parameters against the argument spec for this module 48 | def _check_argspec(self): 49 | aav = AnsibleArgSpecValidator( 50 | data=self._task.args, 51 | schema=dict(argument_spec=argument_spec), 52 | schema_format="argspec", 53 | schema_conditionals=dict( 54 | required_if=required_if, 55 | required_one_of=required_one_of, 56 | mutually_exclusive=mutually_exclusive, 57 | required_together=required_together, 58 | ), 59 | name=self._task.action, 60 | ) 61 | valid, errors, self._task.args = aav.validate() 62 | if not valid: 63 | raise AnsibleActionFail(errors) 64 | 65 | def get_object(self, params): 66 | new_object = dict( 67 | networkId=params.get("networkId"), 68 | ) 69 | return new_object 70 | 71 | def run(self, tmp=None, task_vars=None): 72 | self._task.diff = False 73 | self._result = super(ActionModule, self).run(tmp, task_vars) 74 | self._result["changed"] = False 75 | self._check_argspec() 76 | 77 | meraki = MERAKI(params=self._task.args) 78 | 79 | response = meraki.exec_meraki( 80 | family="appliance", 81 | function='swapNetworkApplianceWarmSpare', 82 | op_modifies=True, 83 | params=self.get_object(self._task.args), 84 | ) 85 | self._result.update(dict(meraki_response=response)) 86 | self._result.update(meraki.exit_json()) 87 | return self._result 88 | -------------------------------------------------------------------------------- /plugins/action/networks_split.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | from ansible.plugins.action import ActionBase 10 | try: 11 | from ansible_collections.ansible.utils.plugins.module_utils.common.argspec_validate import ( 12 | AnsibleArgSpecValidator, 13 | ) 14 | except ImportError: 15 | ANSIBLE_UTILS_IS_INSTALLED = False 16 | else: 17 | ANSIBLE_UTILS_IS_INSTALLED = True 18 | from ansible.errors import AnsibleActionFail 19 | from ansible_collections.cisco.meraki.plugins.plugin_utils.meraki import ( 20 | MERAKI, 21 | meraki_argument_spec, 22 | ) 23 | 24 | # Get common arguements specification 25 | argument_spec = meraki_argument_spec() 26 | # Add arguments specific for this module 27 | argument_spec.update(dict( 28 | networkId=dict(type="str"), 29 | )) 30 | 31 | required_if = [] 32 | required_one_of = [] 33 | mutually_exclusive = [] 34 | required_together = [] 35 | 36 | 37 | class ActionModule(ActionBase): 38 | def __init__(self, *args, **kwargs): 39 | if not ANSIBLE_UTILS_IS_INSTALLED: 40 | raise AnsibleActionFail( 41 | "ansible.utils is not installed. Execute 'ansible-galaxy collection install ansible.utils'") 42 | super(ActionModule, self).__init__(*args, **kwargs) 43 | self._supports_async = False 44 | self._supports_check_mode = False 45 | self._result = None 46 | 47 | # Checks the supplied parameters against the argument spec for this module 48 | def _check_argspec(self): 49 | aav = AnsibleArgSpecValidator( 50 | data=self._task.args, 51 | schema=dict(argument_spec=argument_spec), 52 | schema_format="argspec", 53 | schema_conditionals=dict( 54 | required_if=required_if, 55 | required_one_of=required_one_of, 56 | mutually_exclusive=mutually_exclusive, 57 | required_together=required_together, 58 | ), 59 | name=self._task.action, 60 | ) 61 | valid, errors, self._task.args = aav.validate() 62 | if not valid: 63 | raise AnsibleActionFail(errors) 64 | 65 | def get_object(self, params): 66 | new_object = dict( 67 | networkId=params.get("networkId"), 68 | ) 69 | return new_object 70 | 71 | def run(self, tmp=None, task_vars=None): 72 | self._task.diff = False 73 | self._result = super(ActionModule, self).run(tmp, task_vars) 74 | self._result["changed"] = False 75 | self._check_argspec() 76 | 77 | meraki = MERAKI(params=self._task.args) 78 | 79 | response = meraki.exec_meraki( 80 | family="networks", 81 | function='splitNetwork', 82 | op_modifies=True, 83 | params=self.get_object(self._task.args), 84 | ) 85 | self._result.update(dict(meraki_response=response)) 86 | self._result.update(meraki.exit_json()) 87 | return self._result 88 | -------------------------------------------------------------------------------- /plugins/doc_fragments/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/plugins/doc_fragments/__init__.py -------------------------------------------------------------------------------- /plugins/doc_fragments/module_info_pagination.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import absolute_import, division, print_function 8 | 9 | __metaclass__ = type 10 | 11 | 12 | class ModuleDocFragment(object): 13 | 14 | # Standard files documentation fragment 15 | DOCUMENTATION = r''' 16 | options: 17 | total_pages: 18 | description: 19 | - total_pages(int), use with perPage to get total results up to total_pages*perPage; -1 for all pages 20 | type: str 21 | required: true 22 | direction: 23 | description: 24 | - direction (string), direction to paginate, either "next" (default) or "prev" page 25 | type: str 26 | default: https://api.meraki.com/api/v1 27 | ''' 28 | -------------------------------------------------------------------------------- /plugins/inventory/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/plugins/inventory/__init__.py -------------------------------------------------------------------------------- /plugins/module_utils/network/meraki/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/plugins/module_utils/network/meraki/__init__.py -------------------------------------------------------------------------------- /plugins/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/plugins/modules/__init__.py -------------------------------------------------------------------------------- /plugins/modules/administered_identities_me_api_keys_generate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: administered_identities_me_api_keys_generate 9 | short_description: Resource module for administered _identities _me _api _keys _generate 10 | description: 11 | - Manage operation create of the resource administered _identities _me _api _keys _generate. - > Generates an API key for an identity. For users 12 | who have access to more than one organization, the change will take up to five minutes to propagate. If one of the organizations is currently 13 | under maintenance, the change may not propagate fully until after the maintenance has been completed. 14 | version_added: '1.0.0' 15 | extends_documentation_fragment: 16 | - cisco.meraki.module 17 | author: Francisco Munoz (@fmunoz) 18 | options: {} 19 | requirements: 20 | - meraki >= 2.4.9 21 | - python >= 3.5 22 | seealso: 23 | - name: Cisco Meraki documentation for administered generateAdministeredIdentitiesMeApiKeys 24 | description: Complete reference of the generateAdministeredIdentitiesMeApiKeys API. 25 | link: https://developer.cisco.com/meraki/api-v1/#!generate-administered-identities-me-api-keys 26 | notes: 27 | - SDK Method used are 28 | administered.Administered.generate_administered_identities_me_api_keys, 29 | - Paths used are 30 | post /administered/identities/me/api/keys/generate, 31 | """ 32 | 33 | EXAMPLES = r""" 34 | - name: Create 35 | cisco.meraki.administered_identities_me_api_keys_generate: 36 | meraki_api_key: "{{ meraki_api_key }}" 37 | meraki_base_url: "{{ meraki_base_url }}" 38 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 39 | meraki_certificate_path: "{{ meraki_certificate_path }}" 40 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 41 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 42 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 43 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 44 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 45 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 46 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 47 | meraki_output_log: "{{ meraki_output_log }}" 48 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 49 | meraki_log_path: "{{ meraki_log_path }}" 50 | meraki_print_console: "{{ meraki_print_console }}" 51 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 52 | meraki_simulate: "{{ meraki_simulate }}" 53 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 54 | meraki_caller: "{{ meraki_caller }}" 55 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 56 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 57 | """ 58 | RETURN = r""" 59 | meraki_response: 60 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 61 | returned: always 62 | type: dict 63 | sample: > 64 | { 65 | "key": "string" 66 | } 67 | """ 68 | -------------------------------------------------------------------------------- /plugins/modules/administered_identities_me_api_keys_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: administered_identities_me_api_keys_info 9 | short_description: Information module for administered _identities _me _api _keys 10 | description: 11 | - Get all administered _identities _me _api _keys. 12 | - List the non-sensitive metadata associated with the API keys that belong to the user. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | requirements: 22 | - meraki >= 2.4.9 23 | - python >= 3.5 24 | seealso: 25 | - name: Cisco Meraki documentation for administered getAdministeredIdentitiesMeApiKeys 26 | description: Complete reference of the getAdministeredIdentitiesMeApiKeys API. 27 | link: https://developer.cisco.com/meraki/api-v1/#!get-administered-identities-me-api-keys 28 | notes: 29 | - SDK Method used are 30 | administered.Administered.get_administered_identities_me_api_keys, 31 | - Paths used are 32 | get /administered/identities/me/api/keys, 33 | """ 34 | 35 | EXAMPLES = r""" 36 | - name: Get all administered _identities _me _api _keys 37 | cisco.meraki.administered_identities_me_api_keys_info: 38 | meraki_api_key: "{{ meraki_api_key }}" 39 | meraki_base_url: "{{ meraki_base_url }}" 40 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 41 | meraki_certificate_path: "{{ meraki_certificate_path }}" 42 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 43 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 44 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 45 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 46 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 47 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 48 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 49 | meraki_output_log: "{{ meraki_output_log }}" 50 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 51 | meraki_log_path: "{{ meraki_log_path }}" 52 | meraki_print_console: "{{ meraki_print_console }}" 53 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 54 | meraki_simulate: "{{ meraki_simulate }}" 55 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 56 | meraki_caller: "{{ meraki_caller }}" 57 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 58 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 59 | register: result 60 | """ 61 | RETURN = r""" 62 | meraki_response: 63 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 64 | returned: always 65 | type: list 66 | elements: dict 67 | sample: > 68 | [ 69 | { 70 | "createdAt": "string", 71 | "suffix": "string" 72 | } 73 | ] 74 | """ 75 | -------------------------------------------------------------------------------- /plugins/modules/devices_appliance_vmx_authentication_token.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_appliance_vmx_authentication_token 9 | short_description: Resource module for devices _appliance _vmx _authentication _token 10 | description: 11 | - Manage operation create of the resource devices _appliance _vmx _authentication _token. 12 | - Generate a new vMX authentication token. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | serial: 19 | description: Serial path parameter. 20 | type: str 21 | requirements: 22 | - meraki >= 2.4.9 23 | - python >= 3.5 24 | seealso: 25 | - name: Cisco Meraki documentation for appliance createDeviceApplianceVmxAuthenticationToken 26 | description: Complete reference of the createDeviceApplianceVmxAuthenticationToken API. 27 | link: https://developer.cisco.com/meraki/api-v1/#!create-device-appliance-vmx-authentication-token 28 | notes: 29 | - SDK Method used are 30 | appliance.Appliance.create_device_appliance_vmx_authentication_token, 31 | - Paths used are 32 | post /devices/{serial}/appliance/vmx/authenticationToken, 33 | """ 34 | 35 | EXAMPLES = r""" 36 | - name: Create 37 | cisco.meraki.devices_appliance_vmx_authentication_token: 38 | meraki_api_key: "{{ meraki_api_key }}" 39 | meraki_base_url: "{{ meraki_base_url }}" 40 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 41 | meraki_certificate_path: "{{ meraki_certificate_path }}" 42 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 43 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 44 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 45 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 46 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 47 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 48 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 49 | meraki_output_log: "{{ meraki_output_log }}" 50 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 51 | meraki_log_path: "{{ meraki_log_path }}" 52 | meraki_print_console: "{{ meraki_print_console }}" 53 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 54 | meraki_simulate: "{{ meraki_simulate }}" 55 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 56 | meraki_caller: "{{ meraki_caller }}" 57 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 58 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 59 | serial: string 60 | """ 61 | RETURN = r""" 62 | meraki_response: 63 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 64 | returned: always 65 | type: dict 66 | sample: > 67 | { 68 | "expiresAt": "string", 69 | "token": "string" 70 | } 71 | """ 72 | -------------------------------------------------------------------------------- /plugins/modules/devices_camera_analytics_live_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_camera_analytics_live_info 9 | short_description: Information module for devices _camera _analytics _live 10 | description: 11 | - Get all devices _camera _analytics _live. 12 | - Returns live state from camera analytics zones. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for camera getDeviceCameraAnalyticsLive 30 | description: Complete reference of the getDeviceCameraAnalyticsLive API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-analytics-live 32 | notes: 33 | - SDK Method used are 34 | camera.Camera.get_device_camera_analytics_live, 35 | - Paths used are 36 | get /devices/{serial}/camera/analytics/live, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _camera _analytics _live 41 | cisco.meraki.devices_camera_analytics_live_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "ts": "string", 74 | "zones": { 75 | "zoneId": { 76 | "person": 0 77 | } 78 | } 79 | } 80 | """ 81 | -------------------------------------------------------------------------------- /plugins/modules/devices_camera_sense_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_camera_sense_info 9 | short_description: Information module for devices _camera _sense 10 | description: 11 | - Get all devices _camera _sense. 12 | - Returns sense settings for a given camera. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for camera getDeviceCameraSense 30 | description: Complete reference of the getDeviceCameraSense API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-sense 32 | notes: 33 | - SDK Method used are 34 | camera.Camera.get_device_camera_sense, 35 | - Paths used are 36 | get /devices/{serial}/camera/sense, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _camera _sense 41 | cisco.meraki.devices_camera_sense_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "audioDetection": { 74 | "enabled": true 75 | }, 76 | "mqttBrokerId": "string", 77 | "mqttTopics": [ 78 | "string" 79 | ], 80 | "senseEnabled": true 81 | } 82 | """ 83 | -------------------------------------------------------------------------------- /plugins/modules/devices_camera_video_settings.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_camera_video_settings 9 | short_description: Resource module for devices _camera _video _settings 10 | description: 11 | - Manage operation update of the resource devices _camera _video _settings. 12 | - Update video settings for the given camera. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | externalRtspEnabled: 19 | description: Boolean indicating if external rtsp stream is exposed. 20 | type: bool 21 | serial: 22 | description: Serial path parameter. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for camera updateDeviceCameraVideoSettings 29 | description: Complete reference of the updateDeviceCameraVideoSettings API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!update-device-camera-video-settings 31 | notes: 32 | - SDK Method used are 33 | camera.Camera.update_device_camera_video_settings, 34 | - Paths used are 35 | put /devices/{serial}/camera/video/settings, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Update all 40 | cisco.meraki.devices_camera_video_settings: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | state: present 63 | externalRtspEnabled: true 64 | serial: string 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "externalRtspEnabled": true, 74 | "rtspUrl": "string" 75 | } 76 | """ 77 | -------------------------------------------------------------------------------- /plugins/modules/devices_camera_video_settings_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_camera_video_settings_info 9 | short_description: Information module for devices _camera _video _settings 10 | description: 11 | - Get all devices _camera _video _settings. 12 | - Returns video settings for the given camera. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for camera getDeviceCameraVideoSettings 30 | description: Complete reference of the getDeviceCameraVideoSettings API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-video-settings 32 | notes: 33 | - SDK Method used are 34 | camera.Camera.get_device_camera_video_settings, 35 | - Paths used are 36 | get /devices/{serial}/camera/video/settings, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _camera _video _settings 41 | cisco.meraki.devices_camera_video_settings_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "externalRtspEnabled": true, 74 | "rtspUrl": "string" 75 | } 76 | """ 77 | -------------------------------------------------------------------------------- /plugins/modules/devices_camera_wireless_profiles_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_camera_wireless_profiles_info 9 | short_description: Information module for devices _camera _wireless _profiles 10 | description: 11 | - Get all devices _camera _wireless _profiles. 12 | - Returns wireless profile assigned to the given camera. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for camera getDeviceCameraWirelessProfiles 30 | description: Complete reference of the getDeviceCameraWirelessProfiles API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-camera-wireless-profiles 32 | notes: 33 | - SDK Method used are 34 | camera.Camera.get_device_camera_wireless_profiles, 35 | - Paths used are 36 | get /devices/{serial}/camera/wirelessProfiles, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _camera _wireless _profiles 41 | cisco.meraki.devices_camera_wireless_profiles_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "backup": "string", 74 | "primary": "string", 75 | "secondary": "string" 76 | } 77 | """ 78 | -------------------------------------------------------------------------------- /plugins/modules/devices_live_tools_arp_table_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | author: Francisco Munoz (@fmunoz) 9 | description: Information module for devices _live_tools _arp_table 10 | extends_documentation_fragment: 11 | - cisco.meraki.module_info 12 | module: devices_live_tools_arp_table_info 13 | notes: 14 | - Paths used are 15 | options: 16 | headers: 17 | description: Additional headers. 18 | type: dict 19 | requirements: 20 | - meraki >= 2.4.9 21 | - python >= 3.5 22 | short_description: Information module for devices _live _tools _arp _table 23 | version_added: 2.16.0 24 | """ 25 | 26 | EXAMPLES = r""" 27 | """ 28 | RETURN = r""" 29 | meraki_response: 30 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 31 | returned: always 32 | type: dict 33 | sample: 34 | - {} 35 | """ 36 | -------------------------------------------------------------------------------- /plugins/modules/devices_live_tools_cable_test_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | author: Francisco Munoz (@fmunoz) 9 | description: Information module for devices _livetools_cabletest 10 | extends_documentation_fragment: 11 | - cisco.meraki.module_info 12 | module: devices_live_tools_cable_test_info 13 | notes: 14 | - Paths used are 15 | options: 16 | headers: 17 | description: Additional headers. 18 | type: dict 19 | requirements: 20 | - meraki >= 2.4.9 21 | - python >= 3.5 22 | short_description: Information module for devices _live _tools _cable _test 23 | version_added: 2.16.0 24 | """ 25 | 26 | EXAMPLES = r""" 27 | """ 28 | RETURN = r""" 29 | meraki_response: 30 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 31 | returned: always 32 | type: dict 33 | sample: 34 | - {} 35 | """ 36 | -------------------------------------------------------------------------------- /plugins/modules/devices_live_tools_throughput_test_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | author: Francisco Munoz (@fmunoz) 9 | description: Information module for devices _live _tools _throughput _test 10 | extends_documentation_fragment: 11 | - cisco.meraki.module_info 12 | module: devices_live_tools_throughput_test_info 13 | notes: 14 | - Paths used are 15 | options: 16 | headers: 17 | description: Additional headers. 18 | type: dict 19 | requirements: 20 | - meraki >= 2.4.9 21 | - python >= 3.5 22 | short_description: Information module for devices _live _tools _throughput _test 23 | version_added: 2.16.0 24 | """ 25 | 26 | EXAMPLES = r""" 27 | """ 28 | RETURN = r""" 29 | meraki_response: 30 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 31 | returned: always 32 | type: dict 33 | sample: 34 | - {} 35 | """ 36 | -------------------------------------------------------------------------------- /plugins/modules/devices_live_tools_wake_on_lan_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | author: Francisco Munoz (@fmunoz) 9 | description: Information module for devices _livetools _throughputtest 10 | extends_documentation_fragment: 11 | - cisco.meraki.module_info 12 | module: devices_live_tools_wake_on_lan_info 13 | notes: 14 | - Paths used are 15 | options: 16 | headers: 17 | description: Additional headers. 18 | type: dict 19 | requirements: 20 | - meraki >= 2.4.9 21 | - python >= 3.5 22 | short_description: Information module for devices _live _tools _wake _on _lan 23 | version_added: 2.16.0 24 | """ 25 | 26 | EXAMPLES = r""" 27 | """ 28 | RETURN = r""" 29 | meraki_response: 30 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 31 | returned: always 32 | type: dict 33 | sample: 34 | - {} 35 | """ 36 | -------------------------------------------------------------------------------- /plugins/modules/devices_lldp_cdp_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_lldp_cdp_info 9 | short_description: Information module for devices _lldp _cdp 10 | description: 11 | - Get all devices _lldp _cdp. 12 | - List LLDP and CDP information for a device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for devices getDeviceLldpCdp 30 | description: Complete reference of the getDeviceLldpCdp API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-lldp-cdp 32 | notes: 33 | - SDK Method used are 34 | devices.Devices.get_device_lldp_cdp, 35 | - Paths used are 36 | get /devices/{serial}/lldpCdp, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _lldp _cdp 41 | cisco.meraki.devices_lldp_cdp_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "ports": {}, 74 | "sourceMac": "string" 75 | } 76 | """ 77 | -------------------------------------------------------------------------------- /plugins/modules/devices_sensor_relationships_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_sensor_relationships_info 9 | short_description: Information module for devices _sensor _relationships 10 | description: 11 | - Get all devices _sensor _relationships. 12 | - List the sensor roles for a given sensor or camera device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for sensor getDeviceSensorRelationships 30 | description: Complete reference of the getDeviceSensorRelationships API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-sensor-relationships 32 | notes: 33 | - SDK Method used are 34 | sensor.Sensor.get_device_sensor_relationships, 35 | - Paths used are 36 | get /devices/{serial}/sensor/relationships, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _sensor _relationships 41 | cisco.meraki.devices_sensor_relationships_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "relatedDevices": [ 74 | { 75 | "productType": "string", 76 | "serial": "string" 77 | } 78 | ] 79 | } 80 | """ 81 | -------------------------------------------------------------------------------- /plugins/modules/devices_switch_ports_cycle.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_switch_ports_cycle 9 | short_description: Resource module for devices _switch _ports _cycle 10 | description: 11 | - Manage operation create of the resource devices _switch _ports _cycle. 12 | - Cycle a set of switch ports. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | ports: 19 | description: List of switch ports. 20 | elements: str 21 | type: list 22 | serial: 23 | description: Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for switch cycleDeviceSwitchPorts 30 | description: Complete reference of the cycleDeviceSwitchPorts API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!cycle-device-switch-ports 32 | notes: 33 | - SDK Method used are 34 | switch.Switch.cycle_device_switch_ports, 35 | - Paths used are 36 | post /devices/{serial}/switch/ports/cycle, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Create 41 | cisco.meraki.devices_switch_ports_cycle: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | ports: 64 | - '1' 65 | - 2-5 66 | - 1_MA-MOD-8X10G_1 67 | - 1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8 68 | serial: string 69 | """ 70 | RETURN = r""" 71 | meraki_response: 72 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 73 | returned: always 74 | type: dict 75 | sample: > 76 | { 77 | "ports": [ 78 | "string" 79 | ] 80 | } 81 | """ 82 | -------------------------------------------------------------------------------- /plugins/modules/devices_switch_warm_spare_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_switch_warm_spare_info 9 | short_description: Information module for devices _switch _warm _spare 10 | description: 11 | - Get all devices _switch _warm _spare. 12 | - Return warm spare configuration for a switch. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for switch getDeviceSwitchWarmSpare 30 | description: Complete reference of the getDeviceSwitchWarmSpare API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-switch-warm-spare 32 | notes: 33 | - SDK Method used are 34 | switch.Switch.get_device_switch_warm_spare, 35 | - Paths used are 36 | get /devices/{serial}/switch/warmSpare, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _switch _warm _spare 41 | cisco.meraki.devices_switch_warm_spare_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "enabled": true, 74 | "primarySerial": "string", 75 | "spareSerial": "string" 76 | } 77 | """ 78 | -------------------------------------------------------------------------------- /plugins/modules/devices_wireless_bluetooth_settings_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: devices_wireless_bluetooth_settings_info 9 | short_description: Information module for devices _wireless _bluetooth _settings 10 | description: 11 | - Get all devices _wireless _bluetooth _settings. 12 | - Return the bluetooth settings for a wireless device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | serial: 22 | description: 23 | - Serial path parameter. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for wireless getDeviceWirelessBluetoothSettings 30 | description: Complete reference of the getDeviceWirelessBluetoothSettings API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-device-wireless-bluetooth-settings 32 | notes: 33 | - SDK Method used are 34 | wireless.Wireless.get_device_wireless_bluetooth_settings, 35 | - Paths used are 36 | get /devices/{serial}/wireless/bluetooth/settings, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all devices _wireless _bluetooth _settings 41 | cisco.meraki.devices_wireless_bluetooth_settings_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | serial: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "major": 0, 74 | "minor": 0, 75 | "uuid": "string" 76 | } 77 | """ 78 | -------------------------------------------------------------------------------- /plugins/modules/networks_appliance_firewall_settings_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_appliance_firewall_settings_info 9 | short_description: Information module for networks _appliance _firewall _settings 10 | description: 11 | - Get all networks _appliance _firewall _settings. 12 | - Return the firewall settings for this network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for appliance getNetworkApplianceFirewallSettings 30 | description: Complete reference of the getNetworkApplianceFirewallSettings API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-firewall-settings 32 | notes: 33 | - SDK Method used are 34 | appliance.Appliance.get_network_appliance_firewall_settings, 35 | - Paths used are 36 | get /networks/{networkId}/appliance/firewall/settings, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _appliance _firewall _settings 41 | cisco.meraki.networks_appliance_firewall_settings_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "ipSourceGuard": { 74 | "mode": "string" 75 | } 76 | } 77 | """ 78 | -------------------------------------------------------------------------------- /plugins/modules/networks_appliance_traffic_shaping_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_appliance_traffic_shaping_info 9 | short_description: Information module for networks _appliance _traffic _shaping 10 | description: 11 | - Get all networks _appliance _traffic _shaping. 12 | - Display the traffic shaping settings for an MX network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for appliance getNetworkApplianceTrafficShaping 30 | description: Complete reference of the getNetworkApplianceTrafficShaping API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-traffic-shaping 32 | notes: 33 | - SDK Method used are 34 | appliance.Appliance.get_network_appliance_traffic_shaping, 35 | - Paths used are 36 | get /networks/{networkId}/appliance/trafficShaping, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _appliance _traffic _shaping 41 | cisco.meraki.networks_appliance_traffic_shaping_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "limitDown": 0, 74 | "limitUp": 0 75 | } 76 | """ 77 | -------------------------------------------------------------------------------- /plugins/modules/networks_appliance_vlans_settings.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_appliance_vlans_settings 9 | short_description: Resource module for networks _appliance _vlans _settings 10 | description: 11 | - Manage operation update of the resource networks _appliance _vlans _settings. 12 | - Enable/Disable VLANs for the given network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | networkId: 19 | description: NetworkId path parameter. Network ID. 20 | type: str 21 | vlansEnabled: 22 | description: Boolean indicating whether to enable (true) or disable (false) VLANs for the network. 23 | type: bool 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for appliance updateNetworkApplianceVlansSettings 29 | description: Complete reference of the updateNetworkApplianceVlansSettings API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-vlans-settings 31 | notes: 32 | - SDK Method used are 33 | appliance.Appliance.update_network_appliance_vlans_settings, 34 | - Paths used are 35 | put /networks/{networkId}/appliance/vlans/settings, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Update all 40 | cisco.meraki.networks_appliance_vlans_settings: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | state: present 63 | networkId: string 64 | vlansEnabled: true 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | true 73 | """ 74 | -------------------------------------------------------------------------------- /plugins/modules/networks_appliance_vlans_settings_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_appliance_vlans_settings_info 9 | short_description: Information module for networks _appliance _vlans _settings 10 | description: 11 | - Get all networks _appliance _vlans _settings. 12 | - Returns the enabled status of VLANs for the network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for appliance getNetworkApplianceVlansSettings 30 | description: Complete reference of the getNetworkApplianceVlansSettings API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-vlans-settings 32 | notes: 33 | - SDK Method used are 34 | appliance.Appliance.get_network_appliance_vlans_settings, 35 | - Paths used are 36 | get /networks/{networkId}/appliance/vlans/settings, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _appliance _vlans _settings 41 | cisco.meraki.networks_appliance_vlans_settings_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: int 71 | sample: > 72 | true 73 | """ 74 | -------------------------------------------------------------------------------- /plugins/modules/networks_cancel.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_cancel 9 | short_description: Resource module for networks _cancel 10 | description: 11 | - Manage operation create of the resource networks _cancel. 12 | - Cancel a scheduled or running auto locate job. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | jobId: 19 | description: JobId path parameter. Job ID. 20 | type: str 21 | networkId: 22 | description: NetworkId path parameter. Network ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for networks cancelNetworkFloorPlansAutoLocateJob 29 | description: Complete reference of the cancelNetworkFloorPlansAutoLocateJob API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!cancel-network-floor-plans-auto-locate-job 31 | notes: 32 | - SDK Method used are 33 | networks.Networks.cancel_network_floor_plans_auto_locate_job, 34 | - Paths used are 35 | post /networks/{networkId}/floorPlans/autoLocate/jobs/{jobId}/cancel, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Create 40 | cisco.meraki.networks_cancel: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | jobId: string 63 | networkId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | {} 72 | """ 73 | -------------------------------------------------------------------------------- /plugins/modules/networks_cellular_gateway_dhcp_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_cellular_gateway_dhcp_info 9 | short_description: Information module for networks _cellular _gateway _dhcp 10 | description: 11 | - Get all networks _cellular _gateway _dhcp. 12 | - List common DHCP settings of MGs. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for cellularGateway getNetworkCellularGatewayDhcp 30 | description: Complete reference of the getNetworkCellularGatewayDhcp API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-cellular-gateway-dhcp 32 | notes: 33 | - SDK Method used are 34 | cellular_gateway.CellularGateway.get_network_cellular_gateway_dhcp, 35 | - Paths used are 36 | get /networks/{networkId}/cellularGateway/dhcp, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _cellular _gateway _dhcp 41 | cisco.meraki.networks_cellular_gateway_dhcp_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "dhcpLeaseTime": "string", 74 | "dnsCustomNameservers": [ 75 | "string" 76 | ], 77 | "dnsNameservers": "string" 78 | } 79 | """ 80 | -------------------------------------------------------------------------------- /plugins/modules/networks_cellular_gateway_uplink_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_cellular_gateway_uplink_info 9 | short_description: Information module for networks _cellular _gateway _uplink 10 | description: 11 | - Get all networks _cellular _gateway _uplink. 12 | - Returns the uplink settings for your MG network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for cellularGateway getNetworkCellularGatewayUplink 30 | description: Complete reference of the getNetworkCellularGatewayUplink API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-cellular-gateway-uplink 32 | notes: 33 | - SDK Method used are 34 | cellular_gateway.CellularGateway.get_network_cellular_gateway_uplink, 35 | - Paths used are 36 | get /networks/{networkId}/cellularGateway/uplink, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _cellular _gateway _uplink 41 | cisco.meraki.networks_cellular_gateway_uplink_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "limitDown": 0, 74 | "limitUp": 0 75 | } 76 | """ 77 | -------------------------------------------------------------------------------- /plugins/modules/networks_devices_remove.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_devices_remove 9 | short_description: Resource module for networks _devices _remove 10 | description: 11 | - Manage operation create of the resource networks _devices _remove. 12 | - Remove a single device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | networkId: 19 | description: NetworkId path parameter. Network ID. 20 | type: str 21 | serial: 22 | description: The serial of a device. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for networks removeNetworkDevices 29 | description: Complete reference of the removeNetworkDevices API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!remove-network-devices 31 | notes: 32 | - SDK Method used are 33 | networks.Networks.remove_network_devices, 34 | - Paths used are 35 | post /networks/{networkId}/devices/remove, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Create 40 | cisco.meraki.networks_devices_remove: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | networkId: string 63 | serial: Q234-ABCD-5678 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | {} 72 | """ 73 | -------------------------------------------------------------------------------- /plugins/modules/networks_events_event_types_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_events_event_types_info 9 | short_description: Information module for networks _events _event _types 10 | description: 11 | - Get all networks _events _event _types. 12 | - List the event type to human-readable description. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for networks getNetworkEventsEventTypes 30 | description: Complete reference of the getNetworkEventsEventTypes API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-events-event-types 32 | notes: 33 | - SDK Method used are 34 | networks.Networks.get_network_events_event_types, 35 | - Paths used are 36 | get /networks/{networkId}/events/eventTypes, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _events _event _types 41 | cisco.meraki.networks_events_event_types_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: list 71 | elements: dict 72 | sample: > 73 | [ 74 | { 75 | "category": "string", 76 | "description": "string", 77 | "type": "string" 78 | } 79 | ] 80 | """ 81 | -------------------------------------------------------------------------------- /plugins/modules/networks_netflow_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_netflow_info 9 | short_description: Information module for networks _netflow 10 | description: 11 | - Get all networks _netflow. 12 | - Return the NetFlow traffic reporting settings for a network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for networks getNetworkNetflow 30 | description: Complete reference of the getNetworkNetflow API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-netflow 32 | notes: 33 | - SDK Method used are 34 | networks.Networks.get_network_netflow, 35 | - Paths used are 36 | get /networks/{networkId}/netflow, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _netflow 41 | cisco.meraki.networks_netflow_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "collectorIp": "string", 74 | "collectorPort": 0, 75 | "etaDstPort": 0, 76 | "etaEnabled": true, 77 | "reportingEnabled": true 78 | } 79 | """ 80 | -------------------------------------------------------------------------------- /plugins/modules/networks_pii_requests_delete.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_pii_requests_delete 9 | short_description: Resource module for networks _pii _requests _delete 10 | description: 11 | - Manage operation delete of the resource networks _pii _requests _delete. 12 | - Delete a restrict processing PII request. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | networkId: 19 | description: NetworkId path parameter. Network ID. 20 | type: str 21 | requestId: 22 | description: RequestId path parameter. Request ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for networks deleteNetworkPiiRequest 29 | description: Complete reference of the deleteNetworkPiiRequest API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!delete-network-pii-request 31 | notes: 32 | - SDK Method used are 33 | networks.Networks.delete_network_pii_request, 34 | - Paths used are 35 | delete /networks/{networkId}/pii/requests/{requestId}, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Delete by id 40 | cisco.meraki.networks_pii_requests_delete: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | networkId: string 63 | requestId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | {} 72 | """ 73 | -------------------------------------------------------------------------------- /plugins/modules/networks_sm_devices_refresh_details.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_sm_devices_refresh_details 9 | short_description: Resource module for networks _sm _devices _refresh _details 10 | description: 11 | - Manage operation create of the resource networks _sm _devices _refresh _details. 12 | - Refresh the details of a device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | deviceId: 19 | description: DeviceId path parameter. Device ID. 20 | type: str 21 | networkId: 22 | description: NetworkId path parameter. Network ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for sm refreshNetworkSmDeviceDetails 29 | description: Complete reference of the refreshNetworkSmDeviceDetails API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!refresh-network-sm-device-details 31 | notes: 32 | - SDK Method used are 33 | sm.Sm.refresh_network_sm_device_details, 34 | - Paths used are 35 | post /networks/{networkId}/sm/devices/{deviceId}/refreshDetails, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Create 40 | cisco.meraki.networks_sm_devices_refresh_details: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | deviceId: string 63 | networkId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | {} 72 | """ 73 | -------------------------------------------------------------------------------- /plugins/modules/networks_sm_devices_unenroll.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_sm_devices_unenroll 9 | short_description: Resource module for networks _sm _devices _unenroll 10 | description: 11 | - Manage operation create of the resource networks _sm _devices _unenroll. 12 | - Unenroll a device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | deviceId: 19 | description: DeviceId path parameter. Device ID. 20 | type: str 21 | networkId: 22 | description: NetworkId path parameter. Network ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for sm unenrollNetworkSmDevice 29 | description: Complete reference of the unenrollNetworkSmDevice API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!unenroll-network-sm-device 31 | notes: 32 | - SDK Method used are 33 | sm.Sm.unenroll_network_sm_device, 34 | - Paths used are 35 | post /networks/{networkId}/sm/devices/{deviceId}/unenroll, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Create 40 | cisco.meraki.networks_sm_devices_unenroll: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | deviceId: string 63 | networkId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | { 72 | "success": true 73 | } 74 | """ 75 | -------------------------------------------------------------------------------- /plugins/modules/networks_sm_user_access_devices_delete.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_sm_user_access_devices_delete 9 | short_description: Resource module for networks _sm _user _access _devices _delete 10 | description: 11 | - Manage operation delete of the resource networks _sm _user _access _devices _delete. 12 | - Delete a User Access Device. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | networkId: 19 | description: NetworkId path parameter. Network ID. 20 | type: str 21 | userAccessDeviceId: 22 | description: UserAccessDeviceId path parameter. User access device ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for sm deleteNetworkSmUserAccessDevice 29 | description: Complete reference of the deleteNetworkSmUserAccessDevice API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!delete-network-sm-user-access-device 31 | notes: 32 | - SDK Method used are 33 | sm.Sm.delete_network_sm_user_access_device, 34 | - Paths used are 35 | delete /networks/{networkId}/sm/userAccessDevices/{userAccessDeviceId}, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Delete by id 40 | cisco.meraki.networks_sm_user_access_devices_delete: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | networkId: string 63 | userAccessDeviceId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | {} 72 | """ 73 | -------------------------------------------------------------------------------- /plugins/modules/networks_snmp_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_snmp_info 9 | short_description: Information module for networks _snmp 10 | description: 11 | - Get all networks _snmp. 12 | - Return the SNMP settings for a network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for networks getNetworkSnmp 30 | description: Complete reference of the getNetworkSnmp API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-snmp 32 | notes: 33 | - SDK Method used are 34 | networks.Networks.get_network_snmp, 35 | - Paths used are 36 | get /networks/{networkId}/snmp, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _snmp 41 | cisco.meraki.networks_snmp_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "access": "string", 74 | "communityString": "string", 75 | "users": [ 76 | { 77 | "passphrase": "string", 78 | "username": "string" 79 | } 80 | ] 81 | } 82 | """ 83 | -------------------------------------------------------------------------------- /plugins/modules/networks_switch_mtu_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_switch_mtu_info 9 | short_description: Information module for networks _switch _mtu 10 | description: 11 | - Get all networks _switch _mtu. 12 | - Return the MTU configuration. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for switch getNetworkSwitchMtu 30 | description: Complete reference of the getNetworkSwitchMtu API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-switch-mtu 32 | notes: 33 | - SDK Method used are 34 | switch.Switch.get_network_switch_mtu, 35 | - Paths used are 36 | get /networks/{networkId}/switch/mtu, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _switch _mtu 41 | cisco.meraki.networks_switch_mtu_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "defaultMtuSize": 0, 74 | "overrides": [ 75 | { 76 | "mtuSize": 0, 77 | "switchProfiles": [ 78 | "string" 79 | ], 80 | "switches": [ 81 | "string" 82 | ] 83 | } 84 | ] 85 | } 86 | """ 87 | -------------------------------------------------------------------------------- /plugins/modules/networks_syslog_servers_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_syslog_servers_info 9 | short_description: Information module for networks _syslog _servers 10 | description: 11 | - Get all networks _syslog _servers. 12 | - List the syslog servers for a network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for networks getNetworkSyslogServers 30 | description: Complete reference of the getNetworkSyslogServers API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-syslog-servers 32 | notes: 33 | - SDK Method used are 34 | networks.Networks.get_network_syslog_servers, 35 | - Paths used are 36 | get /networks/{networkId}/syslogServers, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _syslog _servers 41 | cisco.meraki.networks_syslog_servers_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: list 71 | elements: dict 72 | sample: > 73 | [ 74 | { 75 | "host": "string", 76 | "port": 0, 77 | "roles": [ 78 | "string" 79 | ] 80 | } 81 | ] 82 | """ 83 | -------------------------------------------------------------------------------- /plugins/modules/networks_traffic_analysis_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_traffic_analysis_info 9 | short_description: Information module for networks _traffic _analysis 10 | description: 11 | - Get all networks _traffic _analysis. 12 | - Return the traffic analysis settings for a network. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | networkId: 22 | description: 23 | - NetworkId path parameter. Network ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for networks getNetworkTrafficAnalysis 30 | description: Complete reference of the getNetworkTrafficAnalysis API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-network-traffic-analysis 32 | notes: 33 | - SDK Method used are 34 | networks.Networks.get_network_traffic_analysis, 35 | - Paths used are 36 | get /networks/{networkId}/trafficAnalysis, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all networks _traffic _analysis 41 | cisco.meraki.networks_traffic_analysis_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | networkId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | { 73 | "customPieChartItems": [ 74 | { 75 | "name": "string", 76 | "type": "string", 77 | "value": "string" 78 | } 79 | ], 80 | "mode": "string" 81 | } 82 | """ 83 | -------------------------------------------------------------------------------- /plugins/modules/networks_wireless_air_marshal_rules_delete.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_wireless_air_marshal_rules_delete 9 | short_description: Resource module for networks _wireless _air _marshal _rules _delete 10 | description: 11 | - Manage operation delete of the resource networks _wireless _air _marshal _rules _delete. 12 | - Delete an Air Marshal rule. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | networkId: 19 | description: NetworkId path parameter. Network ID. 20 | type: str 21 | ruleId: 22 | description: RuleId path parameter. Rule ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for wireless deleteNetworkWirelessAirMarshalRule 29 | description: Complete reference of the deleteNetworkWirelessAirMarshalRule API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!delete-network-wireless-air-marshal-rule 31 | notes: 32 | - SDK Method used are 33 | wireless.Wireless.delete_network_wireless_air_marshal_rule, 34 | - Paths used are 35 | delete /networks/{networkId}/wireless/airMarshal/rules/{ruleId}, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Delete by id 40 | cisco.meraki.networks_wireless_air_marshal_rules_delete: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | networkId: string 63 | ruleId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | {} 72 | """ 73 | -------------------------------------------------------------------------------- /plugins/modules/networks_wireless_air_marshal_settings.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: networks_wireless_air_marshal_settings 9 | short_description: Resource module for networks _wireless _air _marshal _settings 10 | description: 11 | - Manage operation update of the resource networks _wireless _air _marshal _settings. 12 | - Updates Air Marshal settings. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | defaultPolicy: 19 | description: Allows clients to access rogue networks. Blocked by default. 20 | type: str 21 | networkId: 22 | description: NetworkId path parameter. Network ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for wireless updateNetworkWirelessAirMarshalSettings 29 | description: Complete reference of the updateNetworkWirelessAirMarshalSettings API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!update-network-wireless-air-marshal-settings 31 | notes: 32 | - SDK Method used are 33 | wireless.Wireless.update_network_wireless_air_marshal_settings, 34 | - Paths used are 35 | put /networks/{networkId}/wireless/airMarshal/settings, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Update all 40 | cisco.meraki.networks_wireless_air_marshal_settings: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | defaultPolicy: allow 63 | networkId: string 64 | """ 65 | RETURN = r""" 66 | meraki_response: 67 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 68 | returned: always 69 | type: dict 70 | sample: > 71 | { 72 | "defaultPolicy": "string", 73 | "networkId": "string" 74 | } 75 | """ 76 | -------------------------------------------------------------------------------- /plugins/modules/organizations_assurance_alerts_dismiss.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: organizations_assurance_alerts_dismiss 9 | short_description: Resource module for organizations _assurance _alerts _dismiss 10 | description: 11 | - Manage operation create of the resource organizations _assurance _alerts _dismiss. 12 | - Dismiss health alerts. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | alertIds: 19 | description: Array of alert IDs to dismiss. 20 | elements: str 21 | type: list 22 | organizationId: 23 | description: OrganizationId path parameter. Organization ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for organizations dismissOrganizationAssuranceAlerts 30 | description: Complete reference of the dismissOrganizationAssuranceAlerts API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!dismiss-organization-assurance-alerts 32 | notes: 33 | - SDK Method used are 34 | organizations.Organizations.dismiss_organization_assurance_alerts, 35 | - Paths used are 36 | post /organizations/{organizationId}/assurance/alerts/dismiss, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Create 41 | cisco.meraki.organizations_assurance_alerts_dismiss: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | alertIds: 64 | - '1234' 65 | - '4567' 66 | organizationId: string 67 | """ 68 | RETURN = r""" 69 | meraki_response: 70 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 71 | returned: always 72 | type: dict 73 | sample: > 74 | {} 75 | """ 76 | -------------------------------------------------------------------------------- /plugins/modules/organizations_assurance_alerts_restore.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: organizations_assurance_alerts_restore 9 | short_description: Resource module for organizations _assurance _alerts _restore 10 | description: 11 | - Manage operation create of the resource organizations _assurance _alerts _restore. 12 | - Restore health alerts from dismissed. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | alertIds: 19 | description: Array of alert IDs to restore. 20 | elements: str 21 | type: list 22 | organizationId: 23 | description: OrganizationId path parameter. Organization ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for organizations restoreOrganizationAssuranceAlerts 30 | description: Complete reference of the restoreOrganizationAssuranceAlerts API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!restore-organization-assurance-alerts 32 | notes: 33 | - SDK Method used are 34 | organizations.Organizations.restore_organization_assurance_alerts, 35 | - Paths used are 36 | post /organizations/{organizationId}/assurance/alerts/restore, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Create 41 | cisco.meraki.organizations_assurance_alerts_restore: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | alertIds: 64 | - '1234' 65 | - '4567' 66 | organizationId: string 67 | """ 68 | RETURN = r""" 69 | meraki_response: 70 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 71 | returned: always 72 | type: dict 73 | sample: > 74 | {} 75 | """ 76 | -------------------------------------------------------------------------------- /plugins/modules/organizations_inventory_release.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: organizations_inventory_release 9 | short_description: Resource module for organizations _inventory _release 10 | description: 11 | - Manage operation create of the resource organizations _inventory _release. 12 | - Release a list of claimed devices from an organization. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | organizationId: 19 | description: OrganizationId path parameter. Organization ID. 20 | type: str 21 | serials: 22 | description: Serials of the devices that should be released. 23 | elements: str 24 | type: list 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for organizations releaseFromOrganizationInventory 30 | description: Complete reference of the releaseFromOrganizationInventory API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!release-from-organization-inventory 32 | notes: 33 | - SDK Method used are 34 | organizations.Organizations.release_from_organization_inventory, 35 | - Paths used are 36 | post /organizations/{organizationId}/inventory/release, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Create 41 | cisco.meraki.organizations_inventory_release: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | organizationId: string 64 | serials: 65 | - Q234-ABCD-5678 66 | """ 67 | RETURN = r""" 68 | meraki_response: 69 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 70 | returned: always 71 | type: dict 72 | sample: > 73 | { 74 | "serials": [ 75 | "string" 76 | ] 77 | } 78 | """ 79 | -------------------------------------------------------------------------------- /plugins/modules/organizations_saml.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: organizations_saml 9 | short_description: Resource module for organizations _saml 10 | description: 11 | - Manage operation update of the resource organizations _saml. 12 | - Updates the SAML SSO enabled settings for an organization. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | enabled: 19 | description: Boolean for updating SAML SSO enabled settings. 20 | type: bool 21 | organizationId: 22 | description: OrganizationId path parameter. Organization ID. 23 | type: str 24 | requirements: 25 | - meraki >= 2.4.9 26 | - python >= 3.5 27 | seealso: 28 | - name: Cisco Meraki documentation for organizations updateOrganizationSaml 29 | description: Complete reference of the updateOrganizationSaml API. 30 | link: https://developer.cisco.com/meraki/api-v1/#!update-organization-saml 31 | notes: 32 | - SDK Method used are 33 | organizations.Organizations.update_organization_saml, 34 | - Paths used are 35 | put /organizations/{organizationId}/saml, 36 | """ 37 | 38 | EXAMPLES = r""" 39 | - name: Update all 40 | cisco.meraki.organizations_saml: 41 | meraki_api_key: "{{ meraki_api_key }}" 42 | meraki_base_url: "{{ meraki_base_url }}" 43 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 44 | meraki_certificate_path: "{{ meraki_certificate_path }}" 45 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 46 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 47 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 48 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 49 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 50 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 51 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 52 | meraki_output_log: "{{ meraki_output_log }}" 53 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 54 | meraki_log_path: "{{ meraki_log_path }}" 55 | meraki_print_console: "{{ meraki_print_console }}" 56 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 57 | meraki_simulate: "{{ meraki_simulate }}" 58 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 59 | meraki_caller: "{{ meraki_caller }}" 60 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 61 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 62 | state: present 63 | enabled: true 64 | organizationId: string 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: dict 71 | sample: > 72 | true 73 | """ 74 | -------------------------------------------------------------------------------- /plugins/modules/organizations_saml_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: organizations_saml_info 9 | short_description: Information module for organizations _saml 10 | description: 11 | - Get all organizations _saml. 12 | - Returns the SAML SSO enabled settings for an organization. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | organizationId: 22 | description: 23 | - OrganizationId path parameter. Organization ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for organizations getOrganizationSaml 30 | description: Complete reference of the getOrganizationSaml API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-organization-saml 32 | notes: 33 | - SDK Method used are 34 | organizations.Organizations.get_organization_saml, 35 | - Paths used are 36 | get /organizations/{organizationId}/saml, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all organizations _saml 41 | cisco.meraki.organizations_saml_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | organizationId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: int 71 | sample: > 72 | true 73 | """ 74 | -------------------------------------------------------------------------------- /plugins/modules/organizations_sm_apns_cert_info.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | DOCUMENTATION = r""" 8 | module: organizations_sm_apns_cert_info 9 | short_description: Information module for organizations _sm _apns _cert 10 | description: 11 | - Get all organizations _sm _apns _cert. 12 | - Get the organization's APNS certificate. 13 | version_added: '1.0.0' 14 | extends_documentation_fragment: 15 | - cisco.meraki.module_info 16 | author: Francisco Munoz (@fmunoz) 17 | options: 18 | headers: 19 | description: Additional headers. 20 | type: dict 21 | organizationId: 22 | description: 23 | - OrganizationId path parameter. Organization ID. 24 | type: str 25 | requirements: 26 | - meraki >= 2.4.9 27 | - python >= 3.5 28 | seealso: 29 | - name: Cisco Meraki documentation for sm getOrganizationSmApnsCert 30 | description: Complete reference of the getOrganizationSmApnsCert API. 31 | link: https://developer.cisco.com/meraki/api-v1/#!get-organization-sm-apns-cert 32 | notes: 33 | - SDK Method used are 34 | sm.Sm.get_organization_sm_apns_cert, 35 | - Paths used are 36 | get /organizations/{organizationId}/sm/apnsCert, 37 | """ 38 | 39 | EXAMPLES = r""" 40 | - name: Get all organizations _sm _apns _cert 41 | cisco.meraki.organizations_sm_apns_cert_info: 42 | meraki_api_key: "{{ meraki_api_key }}" 43 | meraki_base_url: "{{ meraki_base_url }}" 44 | meraki_single_request_timeout: "{{ meraki_single_request_timeout }}" 45 | meraki_certificate_path: "{{ meraki_certificate_path }}" 46 | meraki_requests_proxy: "{{ meraki_requests_proxy }}" 47 | meraki_wait_on_rate_limit: "{{ meraki_wait_on_rate_limit }}" 48 | meraki_nginx_429_retry_wait_time: "{{ meraki_nginx_429_retry_wait_time }}" 49 | meraki_action_batch_retry_wait_time: "{{ meraki_action_batch_retry_wait_time }}" 50 | meraki_retry_4xx_error: "{{ meraki_retry_4xx_error }}" 51 | meraki_retry_4xx_error_wait_time: "{{ meraki_retry_4xx_error_wait_time }}" 52 | meraki_maximum_retries: "{{ meraki_maximum_retries }}" 53 | meraki_output_log: "{{ meraki_output_log }}" 54 | meraki_log_file_prefix: "{{ meraki_log_file_prefix }}" 55 | meraki_log_path: "{{ meraki_log_path }}" 56 | meraki_print_console: "{{ meraki_print_console }}" 57 | meraki_suppress_logging: "{{ meraki_suppress_logging }}" 58 | meraki_simulate: "{{ meraki_simulate }}" 59 | meraki_be_geo_id: "{{ meraki_be_geo_id }}" 60 | meraki_caller: "{{ meraki_caller }}" 61 | meraki_use_iterator_for_get_pages: "{{ meraki_use_iterator_for_get_pages }}" 62 | meraki_inherit_logging_config: "{{ meraki_inherit_logging_config }}" 63 | organizationId: string 64 | register: result 65 | """ 66 | RETURN = r""" 67 | meraki_response: 68 | description: A dictionary or list with the response returned by the Cisco Meraki Python SDK 69 | returned: always 70 | type: str 71 | sample: > 72 | "string" 73 | """ 74 | -------------------------------------------------------------------------------- /plugins/plugin_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/meraki/dashboard-api-ansible/64c930cde19babce16aca88b83040157f4268b81/plugins/plugin_utils/__init__.py -------------------------------------------------------------------------------- /plugins/plugin_utils/exceptions.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright (c) 2021, Cisco Systems 5 | # GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | __metaclass__ = type 9 | 10 | 11 | class AnsibleMERAKIException(Exception): 12 | """Base class for all Ansible MERAKI package exceptions.""" 13 | pass 14 | 15 | 16 | class InconsistentParameters(AnsibleMERAKIException): 17 | """Provided parameters are not consistent.""" 18 | pass 19 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | meraki >= 1.33.0 -------------------------------------------------------------------------------- /scripts/sublime-build/requirements.txt: -------------------------------------------------------------------------------- 1 | click 2 | -------------------------------------------------------------------------------- /workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: docs 2 | 3 | on: 4 | push: 5 | tags: 6 | - v[0-9]+.[0-9]+.[0-9]+ 7 | branches: 8 | - main 9 | 10 | jobs: 11 | docs: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: configure git 16 | run: | 17 | git config user.name "${GITHUB_ACTOR}" 18 | git config user.email "${GITHUB_ACTOR}@bots.github.com" 19 | git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* 20 | - name: Set up Python 21 | uses: actions/setup-python@v2 22 | with: 23 | python-version: "3.7" 24 | - name: Install dependencies 25 | run: make doc-setup 26 | - name: Build docs 27 | run: make doc 28 | - name: commit docs 29 | run: | 30 | git checkout gh-pages 31 | rm -rf $(basename ${GITHUB_REF}) 32 | mv docs/_build/html $(basename ${GITHUB_REF}) 33 | git show origin/main:docs/_gh_include/header.inc > index.html 34 | (echo main; dirname v*/index.html | sort --version-sort --reverse) | xargs -I@@ -n1 echo '' >> index.html 35 | git show origin/main:docs/_gh_include/footer.inc >> index.html 36 | git add $(basename ${GITHUB_REF}) index.html 37 | git commit -m "update docs for $(basename ${GITHUB_REF})" || true 38 | - name: push docs 39 | run: git push origin gh-pages -------------------------------------------------------------------------------- /workflows/sanity_tests.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | pull_request: 5 | schedule: 6 | - cron: '0 6 * * *' 7 | env: 8 | NAMESPACE: cisco 9 | COLLECTION_NAME: meraki 10 | jobs: 11 | sanity: 12 | name: Sanity (Ⓐ${{ matrix.ansible }}) 13 | strategy: 14 | matrix: 15 | ansible: 16 | - stable-2.10 17 | - stable-2.11 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Check out code 21 | uses: actions/checkout@v2 22 | with: 23 | path: meraki/meraki-ansible 24 | - name: Create directory 25 | run: mkdir -p ./ansible_collections/${{env.NAMESPACE}} 26 | - name: Move repository 27 | run: mv ./meraki/meraki-ansible ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} 28 | - name: Set up Python 29 | uses: actions/setup-python@v2 30 | with: 31 | python-version: 3.8 32 | - name: Install ansible-base (${{ matrix.ansible }}) 33 | run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check 34 | - name: Run sanity tests 35 | run: ansible-test sanity --docker -v --color 36 | working-directory: ./ansible_collections/${{env.NAMESPACE}}/${{env.COLLECTION_NAME}} 37 | --------------------------------------------------------------------------------