Created an Ansible script to do this. Just couldn't find the limits of the concurrent objects that could be changed. So created a loop with enough retries to accommodate the API limits of Meraki I hope 🙂
- name: Get organizations
cisco.meraki.networks_info:
meraki_api_key: "{{ meraki_api_key }}"
organizationId: "{{ meraki_organizationId }}"
perPage: 1000
total_pages: -1
register: meraki_networks
- name: Update FeatureTiers
ansible.builtin.uri:
method: POST
body_format: json
headers:
Accept: application/json
X-Cisco-Meraki-API-Key: "{{ meraki_api_key }}"
body:
items:
- network:
id: "{{ Network['id'] }}"
productTypes:
- productType: appliance
featureTier: advantage
isAtomic: true
register: uri_output
retries: 20
delay: 5
until: "uri_output.status == 200"
loop: "{{ meraki_networks['meraki_response'] | list }}"
loop_control:
label: "{{ Network['id'] }} - {{ Network['name'] }} - {{ network_idx + 1}} out of {{ meraki_networks['meraki_response'] | length }}"
loop_var: Network
index_var: network_idx