Traffic shaping configuration (singleton).
The network ID.
The state of the resource.
A template task showing all available parameters with their defaults or example values.
- name: Meraki Appliance Traffic Shaping task cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "192.168.1.0/24" config: - active_active_auto_vpn_enabled: true bandwidth_limits: {} default_rules_enabled: true default_uplink: "default_uplink_value" failover_and_failback: {} global_bandwidth_limits: {} load_balancing_enabled: true rules: - {} vpn_traffic_uplink_preferences: - {} wan_traffic_uplink_preferences: - {} state: merged
- name: Meraki Appliance Traffic Shaping task cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "192.168.1.0/24" config: # optional - active_active_auto_vpn_enabled: true # optional bandwidth_limits: {} # optional default_rules_enabled: true # optional default_uplink: "default_uplink_value" # optional failover_and_failback: {} # optional global_bandwidth_limits: {} # optional load_balancing_enabled: true # optional rules: # optional - {} vpn_traffic_uplink_preferences: # optional - {} wan_traffic_uplink_preferences: # optional - {} state: merged # optional
- name: Meraki Appliance Traffic Shaping task cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "192.168.1.0/24" # (str, required) The network ID. config: # (list, optional) Traffic shaping configuration (singleton). - active_active_auto_vpn_enabled: true # (bool, optional) Whether active-active AutoVPN is enabled. bandwidth_limits: {} # (dict, optional) Uplink bandwidth limits by interface. default_rules_enabled: true # (bool, optional) Whether default traffic shaping rules are enabled. default_uplink: "default_uplink_value" # (str, optional) The default uplink (e.g., wan1, wan2). failover_and_failback: {} # (dict, optional) WAN failover and failback settings. global_bandwidth_limits: {} # (dict, optional) Global per-client bandwidth limit. load_balancing_enabled: true # (bool, optional) Whether load balancing is enabled. rules: # (list, optional) Array of traffic shaping rules. - {} vpn_traffic_uplink_preferences: # (list, optional) Uplink preference rules for VPN traffic. - {} wan_traffic_uplink_preferences: # (list, optional) Uplink preference rules for WAN traffic. - {} state: merged # (str, optional) The state of the resource.
- name: Define expected configuration ansible.builtin.set_fact: expected_config: default_rules_enabled: true default_uplink: example load_balancing_enabled: true active_active_auto_vpn_enabled: true
- name: Create appliance_traffic_shaping with merged state cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "N_123456789012345678" state: merged config: - "{{ expected_config }}" register: merge_result
- name: Assert resource was created ansible.builtin.assert: that: - merge_result is changed - merge_result.config | length == 1
- name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ merge_result.config[0] | ansible.utils.to_paths }}"
- name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}"
- name: Define replacement configuration ansible.builtin.set_fact: expected_config: default_rules_enabled: true default_uplink: example load_balancing_enabled: true active_active_auto_vpn_enabled: true
- name: Replace appliance_traffic_shaping configuration cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "N_123456789012345678" state: replaced config: - "{{ expected_config }}" register: replace_result
- name: Assert resource was replaced ansible.builtin.assert: that: - replace_result is changed - replace_result.config | length == 1
- name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ replace_result.config[0] | ansible.utils.to_paths }}"
- name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}"
- name: Gather current appliance_traffic_shaping configuration cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "N_123456789012345678" state: gathered register: gathered
- name: Assert gathered config is not empty ansible.builtin.assert: that: - gathered.config is defined - gathered.config | length > 0 fail_msg: "Gathered config is empty — expected at least one resource"
- name: Display gathered configuration ansible.builtin.debug: var: gathered.config
--- # Manage Meraki appliance traffic shaping — create or update - name: Define expected configuration ansible.builtin.set_fact: expected_config: default_rules_enabled: true default_uplink: example load_balancing_enabled: true active_active_auto_vpn_enabled: true - name: Create appliance_traffic_shaping with merged state cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "N_123456789012345678" state: merged config: - "{{ expected_config }}" register: merge_result - name: Assert resource was created ansible.builtin.assert: that: - merge_result is changed - merge_result.config | length == 1 - name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ merge_result.config[0] | ansible.utils.to_paths }}" - name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}" # Manage Meraki appliance traffic shaping — full resource replacement - name: Define replacement configuration ansible.builtin.set_fact: expected_config: default_rules_enabled: true default_uplink: example load_balancing_enabled: true active_active_auto_vpn_enabled: true - name: Replace appliance_traffic_shaping configuration cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "N_123456789012345678" state: replaced config: - "{{ expected_config }}" register: replace_result - name: Assert resource was replaced ansible.builtin.assert: that: - replace_result is changed - replace_result.config | length == 1 - name: Compare expected paths to result (subset check) ansible.builtin.set_fact: path_check: "{{ expected_paths | cisco.meraki_rm.path_contained_in(result_paths) }}" vars: expected_paths: "{{ expected_config | ansible.utils.to_paths }}" result_paths: "{{ replace_result.config[0] | ansible.utils.to_paths }}" - name: Assert all expected fields are present and match ansible.builtin.assert: that: path_check.contained | bool success_msg: "{{ success_msg }}" fail_msg: "{{ fail_msg }}" vars: success_msg: "All expected fields match. Extras: {{ path_check.extras }}" fail_msg: "Missing or mismatch: {{ path_check.missing }}. Extras: {{ path_check.extras }}" # Manage Meraki appliance traffic shaping — gather current configuration - name: Gather current appliance_traffic_shaping configuration cisco.meraki_rm.meraki_appliance_traffic_shaping: network_id: "N_123456789012345678" state: gathered register: gathered - name: Assert gathered config is not empty ansible.builtin.assert: that: - gathered.config is defined - gathered.config | length > 0 fail_msg: "Gathered config is empty — expected at least one resource" - name: Display gathered configuration ansible.builtin.debug: var: gathered.config