<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Policy Object/Groups with API in Network Platform API</title>
    <link>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411185#M1977</link>
    <description>&lt;P&gt;Group Policies in Meraki can include firewall rules, traffic shaping, content filtering, VLAN tagging, etc. When you see "srcCidr": "OBJ(...)" or "destCidr": "GRP(...)", these are references to policy objects or groups, not raw IPs or CIDRs.&lt;/P&gt;&lt;P&gt;The Meraki API currently does not support using object/group references like OBJ(...) or GRP(...) directly in firewall rules via the API. It expects valid CIDR notation or VLAN IDs.&lt;/P&gt;</description>
    <pubDate>Tue, 01 Jul 2025 10:53:40 GMT</pubDate>
    <dc:creator>aleabrahao</dc:creator>
    <dc:date>2025-07-01T10:53:40Z</dc:date>
    <item>
      <title>Policy Object/Groups with API</title>
      <link>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411184#M1976</link>
      <description>&lt;P&gt;I'm working on a workflow to do automation as much as possible. We will use Policy objects and groups in our organisations.&lt;BR /&gt;Try to findout how to use API to attach a policy-group in the firewall settings in a network.&lt;BR /&gt;If I do a get fw rules from a network that I've attached this policy manual via the UI I see the following.&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;"srcPort"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Any"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;"srcCidr"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"OBJ(738027388935347594)"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;"destPort"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Any"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;"destCidr"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"GRP(738027388935341366)"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;This is just a snippet from the source/destination part of the output&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;The error give is that the Cidr need to be IP or VLAN&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Any input/ideas to share&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;//Mikael&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 01 Jul 2025 07:41:37 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411184#M1976</guid>
      <dc:creator>mikefredrik</dc:creator>
      <dc:date>2025-07-01T07:41:37Z</dc:date>
    </item>
    <item>
      <title>Re: Policy Object/Groups with API</title>
      <link>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411185#M1977</link>
      <description>&lt;P&gt;Group Policies in Meraki can include firewall rules, traffic shaping, content filtering, VLAN tagging, etc. When you see "srcCidr": "OBJ(...)" or "destCidr": "GRP(...)", these are references to policy objects or groups, not raw IPs or CIDRs.&lt;/P&gt;&lt;P&gt;The Meraki API currently does not support using object/group references like OBJ(...) or GRP(...) directly in firewall rules via the API. It expects valid CIDR notation or VLAN IDs.&lt;/P&gt;</description>
      <pubDate>Tue, 01 Jul 2025 10:53:40 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411185#M1977</guid>
      <dc:creator>aleabrahao</dc:creator>
      <dc:date>2025-07-01T10:53:40Z</dc:date>
    </item>
    <item>
      <title>Re: Policy Object/Groups with API</title>
      <link>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411186#M1978</link>
      <description>&lt;P&gt;I manage to find a solution with some input from someone in our EMEA-Meraki Partner Webex space.&lt;BR /&gt;By using the following logic it worked just fine&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;group&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'GRP'&lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;'('&lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;policy_group&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt;')'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;object&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'OBJ'&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;'('&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;policy_object&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;')'&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;rule_list&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; []&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rule_dict&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'comment'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'Block Guest to LAN'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'policy'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'deny'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;''&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'protocol'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'any'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'destPort'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'Any'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'srcPort'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'Any'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'syslogEnabled'&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rule_dict&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'srcCidr'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;object&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rule_dict&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'destCidr'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;group&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rule_list&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;append&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;rule_dict&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;The reason I used a variable is that we launch a lot of different network in many different orgs so we need to get the Object/Group ID before we can run the API&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;This works&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 01 Jul 2025 11:58:08 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411186#M1978</guid>
      <dc:creator>mikefredrik</dc:creator>
      <dc:date>2025-07-01T11:58:08Z</dc:date>
    </item>
    <item>
      <title>Re: Policy Object/Groups with API</title>
      <link>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411187#M1979</link>
      <description>&lt;P&gt;Have some snippets of code I can share, but not a whole solution.&lt;/P&gt;&lt;P&gt;You need to get the group policy ID.  I used this for processing a large number of networks, so cache the group policy results, but you may not need that complexity.&lt;/P&gt;&lt;PRE class="lia-code-sample language-python"&gt;&lt;CODE&gt;def getGPId(dashboard,netId,gpName):
	global groupPolicies

	# If we don't have a cache of group polcies - build it now
	if groupPolicies.get(netId)==None:
		groupPolicies[netId]=dashboard.networks.getNetworkGroupPolicies(netId)

	# Search for the group policy name
	for gp in groupPolicies[netId]:
		if gp['name']==gpName:
			return(gp['groupPolicyId'])

	raise SystemExit("Invalid group policy name supplied: "+gpName)			&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;And then something like:&lt;/P&gt;&lt;PRE class="lia-code-sample language-python"&gt;&lt;CODE&gt;def applyGP(dashboard,orgId,net,netId):
  gpId=getGPId(dashboard,netId,"GP Name")
  ...
  for client in dashboard.networks.getNetworkClients(netId,total_pages='all',timespan=1*86400,vlan=2):
    ...
    dashboard.networks.updateNetworkClientPolicy(netId,client['id'],'Group policy',groupPolicyId=gpId)&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 01 Jul 2025 21:59:23 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/policy-object-groups-with-api/m-p/5411187#M1979</guid>
      <dc:creator>Philip D'Ath</dc:creator>
      <dc:date>2025-07-01T21:59:23Z</dc:date>
    </item>
  </channel>
</rss>

