Example for ACI Multi-Site Release 1.2(1)
Starting with ACI Multi-Site release 1.2(1), you will use the information in the request for this API call for certain service
graph functions:
-
At the template level, use information in the serviceGraphRelationship area in the request to associate a contract with a service graph. The serviceGraphRelationship area is highlighted in the example request below.
-
At the template level, use information in the first serviceGraphs area in the request to provide information on the service graph template, such as:
-
The name of the service graph (in this example request, SG1)
-
Information on and number of service nodes in this service graph (in this example request, there are two nodes, node1 and node2)
The first serviceGraphs area is highlighted in the example request below.
-
At the site local level, go to the contracts area in the request and use the information in the serviceGraphRelationship area to attach this service node and the cluster interfaces. The serviceGraph and serviceNode information in the contracts area is highlighted in the example request below.
-
Finally, use information in the second serviceGraphs area in the request to add devices. The second serviceGraphs area is highlighted in the example request below.
For the Services feature, a Schema should have the following:
-
A service graph template — You must have a service graph template before you can begin adding devices.
-
L4-L7 devices — You fetch the devices from site local and attach these devices to the service graph template. Use the information
in List L4-L7 Devices to have Multi-Site issue a query to APIC to get information about the devices.
-
L4-L7 device interfaces — All L4-L7 devices have device interfaces. When you query (select) a device, you are then able to
get the device interface for that device. List L4-L7 Device Interfaces describes how to gather this information, where the devices part of the GET query is a device that was provided from the output generated from the information in List L4-L7 Devices.
-
Redirect policies — After you pick a device interface, you would then pick the redirect policy, where Multi-Site issues a
query to APIC to get all the redirect policies available. See List L4-L7 Redirect Policies for more information.
The order of the devices, device interfaces and redirect policies depends on the service graph. When you create a service
graph, for each site, you will attach devices. When you want to deploy a service graph to a contract, you will need to add
cluster interfaces and redirect policies. Only if the service graph template is associated with a contract can you add redirect
policies and bridge domains to it. If you try to add redirect policies and you don't have a service graph template, then this
will result in an error.
The following topics provide more information for service graphs from a schema level:
 Note |
For Multi-Site Service Integration use cases, see the Cisco ACI Multi-Site Fundamentals Guide.
|
The following is an example of how to create a new Schema.
POST:
POST https://<host>:<port>/api/v1/schemas
Request:
{
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "templates/template1/bds/bd1"
}
]
},
{
"displayName": "AP 10",
"name": "AP10",
"anpRef": "/templates/Template1/anps/AP10",
"epgs": [{
"displayName": "EPG 10",
"name": "EPG10",
"epgRef": "/templates/Template1/anps/AP10/epgs/EPG10",
"bdRef": "/templates/Template1/bds/BD10",
"uSegEpg": false,
"contractRelationships": [{
"contractRef": "/templates/Template1/contracts/Contract34",
"relationshipType": "provider"
}],
"subnets": [],
"uSegAttrs": [],
"intraEpg": "unenforced",
"proxyArp": false
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/templates/template1/filters/filter1",
"directives": [
"log|none"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"filters": "80",
"scope": "global|tenant|context|application-profile"
},
{
"displayName": "Contract 34",
"name": "Contract34",
"contractRef": "/templates/Template1/contracts/Contract34",
"scope": "global",
"filterRelationships": [],
"filterType": "oneWay",
"filterRelationshipsProviderToConsumer": [{
"filterRef": "/templates/Template1/filters/Filter4",
"directives": ["log"]
}],
"filterRelationshipsConsumerToProvider": [{
"filterRef": "/templates/Template1/filters/Filter3",
"directives": ["log"]
}],
"serviceGraphRelationship": {
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodesRelationship": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"consumerConnector": {
"connectorType": "general",
"bdRef": "/templates/Template1/bds/BD1"
},
"providerConnector": {
"connectorType": "general",
"bdRef": "/templates/Template1/bds/BD1"
}
}
]
}
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "80"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"entries": [
{
"name": "filterEntry21",
"displayName": "Filter Entry 21",
"description": "",
"etherType": "arp|fcoe|ip|mac_security|mpls_ucast|trill|unspecified",
"arpFlag": "request|reply|unspecified",
"ipProtocol": "eigrp|egp|icmp|icmpv6|igmp|igp|l2tp|ospfigp|pim|tcp|udp|unspecified",
"matchOnlyFragments": false,
"stateful": false,
"sourceFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"sourceTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"tcpSessionRules": [
"acknowledgement|established|finish|synchronize|reset|unspecified",
"acknowledgement|established|finish|synchronize|reset|unspecified"
]
}
]
},{
"displayName": "Filter 3",
"name": "Filter3",
"filterRef": "/templates/Template1/filters/Filter3",
"entries": [{
"etherType": "ip",
"tcpSessionRules": ["unspecified"],
"sourceFrom": "unspecified",
"destinationTo": "unspecified",
"arpFlag": "unspecified",
"stateful": false,
"displayName": "e1",
"matchOnlyFragments": false,
"sourceTo": "unspecified",
"destinationFrom": "unspecified",
"description": "",
"ipProtocol": "unspecified",
"name": "e1"
}]
}, {
"displayName": "Filter 4",
"name": "Filter4",
"filterRef": "/templates/Template1/filters/Filter4",
"entries": [{
"etherType": "ip",
"tcpSessionRules": ["unspecified"],
"sourceFrom": "unspecified",
"destinationTo": "unspecified",
"arpFlag": "unspecified",
"stateful": false,
"displayName": "e4",
"matchOnlyFragments": false,
"sourceTo": "unspecified",
"destinationFrom": "unspecified",
"description": "",
"ipProtocol": "unspecified",
"name": "e4"
}]
}
],
"externalEpgs": [
{
"name": "Test-extEPG",
"displayName": "Test-extEPG",
"subnets": [
{
"ip": "2.2.2.2/24"
}
],
"contractRelationships": [
{
"relationshipType": "provider",
"contractRef": "/templates/Template1/contracts/contract1"
}
],
"externalEpgRef": "/templates/Template1/externalEpgs/Test-extEPG"
}
],
"serviceGraphs": [{
"name": "SG1",
"displayName": "SG1",
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"description":"",
"serviceNodes": [
{
"name": "node1",
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"serviceNodeTypeId": "0000ffff0000000000000051",
"index": 1
},
{
"name": "node2",
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node2",
"serviceNodeTypeId": "0000ffff0000000000000051",
"index": 2
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"deployImmediacy": "lazy",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/templates/template1/contracts/contract34",
"serviceGraphRelationship": {
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodesRelationship": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"providerConnector": {
"clusterInterface": {
"dn": "/dn/CI1"
},
"redirectPolicy": {
"dn": "/dn/policy1"
}
},
"consumerConnector": {
"clusterInterface": {
"dn": "/dn/CI1"
},
"redirectPolicy": {
"dn": "/dn/policy1"
}
}
}
]
}
}
],
"externalEpgs": [
{
"externalEpgRef": "/templates/Template1/externalEpgs/Test-extEPG",
"l3outDn": "uni/tn-Tenant/out-TestL3Out-site2",
"subnets": [],
"vrfRef": "templates/Template1/vrfs/vrf1",
"faults": []
}
],
"serviceGraphs": [
{
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodes": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"device": {
"dn": "/tn/Device1"
}
},
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node2",
"device": {
"dn": "/tn/Device2"
}
}
]
}
]
]
}
Response:
HTTP/1.1 201
Location: /api/v1/schemas/583c7c482501002501061985
{
"id": "583c7c482501002501061985",
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"epgRef": "/schema/583c7c482501002501061985/template/template1/anp/anp1/epg/epg2",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
}
]
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1",
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"directives": [
"log"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"filters": "80",
"filterRelationships": [],
"scope": "global|tenant|context|anp"
},
{
"displayName": "Contract 34",
"name": "Contract34",
"contractRef": "/templates/Template1/contracts/Contract34",
"scope": "global",
"filterRelationships": [],
"filterType": "oneWay",
"filterRelationshipsProviderToConsumer": [{
"filterRef": "/templates/Template1/filters/Filter4",
"directives": ["log"]
}],
"filterRelationshipsConsumerToProvider": [{
"filterRef": "/templates/Template1/filters/Filter3",
"directives": ["log"]
}],
"serviceGraphRelationship": {
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodesRelationship": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"consumerConnector": {
"connectorType": "general",
"bdRef": "/templates/Template1/bds/BD1"
},
"providerConnector": {
"connectorType": "general",
"bdRef": "/templates/Template1/bds/BD1"
}
}
]
}
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "http"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter2",
"entries": [...]
}
],
"externalEpgs": [
{
"name": "Test-extEPG",
"displayName": "Test-extEPG",
"subnets": [
{
"ip": "2.2.2.2/24"
}
],
"contractRelationships": [
{
"relationshipType": "provider",
"contractRef": "/schemas/583c7c482501002501061985/templates/Template1/contracts/contract1"
}
],
"externalEpgRef": "/schemas/583c7c482501002501061985/templates/Template1/externalEpgs/Test-extEPG"
}
]
}
],
"serviceGraphs": [
{
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodes": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"device": {
"dn": "/tn/Device1"
}
},
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node2",
"device": {
"dn": "/tn/Device2"
}
}
]
}
]
,
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnet": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/templates/template1/contracts/contract34",
"serviceGraphRelationship": {
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodesRelationship": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"providerConnector": {
"clusterInterface": {
"dn": "/dn/CI1"
},
"redirectPolicy": {
"dn": "/dn/policy1"
}
},
"consumerConnector": {
"clusterInterface": {
"dn": "/dn/CI1"
},
"redirectPolicy": {
"dn": "/dn/policy1"
}
}
}
]
}
}
],
"externalEpgs": [
{
"externalEpgRef": "/schemas/59a4824425000043017c65ea/templates/Template1/externalEpgs/Test-extEPG",
"l3outDn": "uni/tn-Tenant/out-TestL3Out-site2",
"subnets": [],
"vrfRef": "/schemas/59a4824425000043017c65ea/templates/Template1/vrfs/vrf1",
"faults": []
}
],
"serviceGraphs": [
{
"serviceGraphRef": "/templates/Template1/serviceGraphs/SG1",
"serviceNodes": [
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node1",
"device": {
"dn": "/tn/Device1"
}
},
{
"serviceNodeRef": "/templates/Template1/serviceGraphs/SG1/serviceNodes/node2",
"device": {
"dn": "/tn/Device2"
}
}
]
}
]
}
]
}
Example for ACI Multi-Site Release 1.1(1)
The following is an example of how to create a new Schema .
POST:
POST https://<host>:<port>/api/v1/schemas
Request:
{
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "templates/template1/bds/bd1"
}
]
},
{
"displayName": "AP 10",
"name": "AP10",
"anpRef": "/templates/Template1/anps/AP10",
"epgs": [{
"displayName": "EPG 10",
"name": "EPG10",
"epgRef": "/templates/Template1/anps/AP10/epgs/EPG10",
"bdRef": "/templates/Template1/bds/BD10",
"uSegEpg": false,
"contractRelationships": [{
"contractRef": "/templates/Template1/contracts/Contract34",
"relationshipType": "provider"
}],
"subnets": [],
"uSegAttrs": [],
"intraEpg": "unenforced",
"proxyArp": false
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/templates/template1/filters/filter1",
"directives": [
"log|none"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"filters": "80",
"scope": "global|tenant|context|application-profile"
},
{
"displayName": "Contract 34",
"name": "Contract34",
"contractRef": "/templates/Template1/contracts/Contract34",
"scope": "global",
"filterRelationships": [],
"filterRelationshipsProviderToConsumer": [{
"filterRef": "/templates/Template1/filters/Filter4",
"directives": ["log"]
}],
"filterRelationshipsConsumerToProvider": [{
"filterRef": "/templates/Template1/filters/Filter3",
"directives": ["log"]
}],
"filterType": "oneWay"
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "80"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"entries": [
{
"name": "filterEntry21",
"displayName": "Filter Entry 21",
"description": "",
"etherType": "arp|fcoe|ip|mac_security|mpls_ucast|trill|unspecified",
"arpFlag": "request|reply|unspecified",
"ipProtocol": "eigrp|egp|icmp|icmpv6|igmp|igp|l2tp|ospfigp|pim|tcp|udp|unspecified",
"matchOnlyFragments": false,
"stateful": false,
"sourceFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"sourceTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"tcpSessionRules": [
"acknowledgement|established|finish|synchronize|reset|unspecified",
"acknowledgement|established|finish|synchronize|reset|unspecified"
]
}
]
},{
"displayName": "Filter 3",
"name": "Filter3",
"filterRef": "/templates/Template1/filters/Filter3",
"entries": [{
"etherType": "ip",
"tcpSessionRules": ["unspecified"],
"sourceFrom": "unspecified",
"destinationTo": "unspecified",
"arpFlag": "unspecified",
"stateful": false,
"displayName": "e1",
"matchOnlyFragments": false,
"sourceTo": "unspecified",
"destinationFrom": "unspecified",
"description": "",
"ipProtocol": "unspecified",
"name": "e1"
}]
}, {
"displayName": "Filter 4",
"name": "Filter4",
"filterRef": "/templates/Template1/filters/Filter4",
"entries": [{
"etherType": "ip",
"tcpSessionRules": ["unspecified"],
"sourceFrom": "unspecified",
"destinationTo": "unspecified",
"arpFlag": "unspecified",
"stateful": false,
"displayName": "e4",
"matchOnlyFragments": false,
"sourceTo": "unspecified",
"destinationFrom": "unspecified",
"description": "",
"ipProtocol": "unspecified",
"name": "e4"
}]
}
],
"externalEpgs": [
{
"name": "Test-extEPG",
"displayName": "Test-extEPG",
"subnets": [
{
"ip": "2.2.2.2/24"
}
],
"contractRelationships": [
{
"relationshipType": "provider",
"contractRef": "/templates/Template1/contracts/contract1"
}
],
"externalEpgRef": "/templates/Template1/externalEpgs/Test-extEPG"
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"deployImmediacy": "lazy",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/templates/template1/contracts/contract1",
"serviceGraphTemplate": {
"name": "SGT1"
}
}
],
"externalEpgs": [
{
"externalEpgRef": "/templates/Template1/externalEpgs/Test-extEPG",
"l3outDn": "uni/tn-Tenant/out-TestL3Out-site2",
"subnets": [],
"vrfRef": "templates/Template1/vrfs/vrf1",
"faults": []
}
]
}
]
}
Response:
HTTP/1.1 201
Location: /api/v1/schemas/583c7c482501002501061985
{
"id": "583c7c482501002501061985",
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"epgRef": "/schema/583c7c482501002501061985/template/template1/anp/anp1/epg/epg2",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
}
]
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1",
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"directives": [
"log"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"filters": "80",
"filterRelationships": [],
"scope": "global|tenant|context|anp"
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "http"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter2",
"entries": [...]
}
],
"externalEpgs": [
{
"name": "Test-extEPG",
"displayName": "Test-extEPG",
"subnets": [
{
"ip": "2.2.2.2/24"
}
],
"contractRelationships": [
{
"relationshipType": "provider",
"contractRef": "/schemas/583c7c482501002501061985/templates/Template1/contracts/contract1"
}
],
"externalEpgRef": "/schemas/583c7c482501002501061985/templates/Template1/externalEpgs/Test-extEPG"
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnet": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"serviceGraphTemplate": {
"name": "SGT1"
}
}
],
"externalEpgs": [
{
"externalEpgRef": "/schemas/59a4824425000043017c65ea/templates/Template1/externalEpgs/Test-extEPG",
"l3outDn": "uni/tn-Tenant/out-TestL3Out-site2",
"subnets": [],
"vrfRef": "/schemas/59a4824425000043017c65ea/templates/Template1/vrfs/vrf1",
"faults": []
}
]
}
]
}
Example for ACI Multi-Site Release 1.0(2)
The following is an example of how to create a new Schema .
POST:
POST https://<host>:<port>/api/v1/schemas
Request:
{
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "templates/template1/bds/bd1"
}
]
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/templates/template1/filters/filter1",
"directives": [
"log|none"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"filters": "80",
"scope": "global|tenant|context|application-profile"
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "80"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"entries": [
{
"name": "filterEntry21",
"displayName": "Filter Entry 21",
"description": "",
"etherType": "arp|fcoe|ip|mac_security|mpls_ucast|trill|unspecified",
"arpFlag": "request|reply|unspecified",
"ipProtocol": "eigrp|egp|icmp|icmpv6|igmp|igp|l2tp|ospfigp|pim|tcp|udp|unspecified",
"matchOnlyFragments": false,
"stateful": false,
"sourceFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"sourceTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"tcpSessionRules": [
"acknowledgement|established|finish|synchronize|reset|unspecified",
"acknowledgement|established|finish|synchronize|reset|unspecified"
]
}
]
}
],
"externalEpgs": [
{
"name": "Test-extEPG",
"displayName": "Test-extEPG",
"subnets": [
{
"ip": "2.2.2.2/24"
}
],
"contractRelationships": [
{
"relationshipType": "provider",
"contractRef": "/templates/Template1/contracts/contract1"
}
],
"externalEpgRef": "/templates/Template1/externalEpgs/Test-extEPG"
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"deployImmediacy": "lazy",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/templates/template1/contracts/contract1",
"serviceGraphTemplate": {
"name": "SGT1"
}
}
],
"externalEpgs": [
{
"externalEpgRef": "/templates/Template1/externalEpgs/Test-extEPG",
"l3outDn": "uni/tn-Tenant/out-TestL3Out-site2",
"subnets": [],
"vrfRef": "templates/Template1/vrfs/vrf1",
"faults": []
}
]
}
]
}
Response:
HTTP/1.1 201
Location: /api/v1/schemas/583c7c482501002501061985
{
"id": "583c7c482501002501061985",
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"epgRef": "/schema/583c7c482501002501061985/template/template1/anp/anp1/epg/epg2",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
}
]
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1",
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"directives": [
"log"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"filters": "80",
"filterRelationships": [],
"scope": "global|tenant|context|anp"
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "http"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter2",
"entries": [...]
}
],
"externalEpgs": [
{
"name": "Test-extEPG",
"displayName": "Test-extEPG",
"subnets": [
{
"ip": "2.2.2.2/24"
}
],
"contractRelationships": [
{
"relationshipType": "provider",
"contractRef": "/schemas/583c7c482501002501061985/templates/Template1/contracts/contract1"
}
],
"externalEpgRef": "/schemas/583c7c482501002501061985/templates/Template1/externalEpgs/Test-extEPG"
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnet": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"serviceGraphTemplate": {
"name": "SGT1"
}
}
],
"externalEpgs": [
{
"externalEpgRef": "/schemas/59a4824425000043017c65ea/templates/Template1/externalEpgs/Test-extEPG",
"l3outDn": "uni/tn-Tenant/out-TestL3Out-site2",
"subnets": [],
"vrfRef": "/schemas/59a4824425000043017c65ea/templates/Template1/vrfs/vrf1",
"faults": []
}
]
}
]
}
Example for ACI Multi-Site Release 1.0(1)
The following is an example of how to create a new Schema .
POST:
POST https://<host>:<port>/api/v1/schemas
Request:
{
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"contractRelationships": [
{
"contractRef": "/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "templates/template1/bds/bd1"
}
]
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/templates/template1/filters/filter1",
"directives": [
"log|none"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"filters": "80",
"scope": "global|tenant|context|application-profile"
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "80"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"entries": [
{
"name": "filterEntry21",
"displayName": "Filter Entry 21",
"description": "",
"etherType": "arp|fcoe|ip|mac_security|mpls_ucast|trill|unspecified",
"arpFlag": "request|reply|unspecified",
"ipProtocol": "eigrp|egp|icmp|icmpv6|igmp|igp|l2tp|ospfigp|pim|tcp|udp|unspecified",
"matchOnlyFragments": false,
"stateful": false,
"sourceFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"sourceTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationFrom": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"destinationTo": "dns|ftp-data|http|https|pop3|rtsp|smtp|unspecified|[0..65535]",
"tcpSessionRules": [
"acknowledgement|established|finish|synchronize|reset|unspecified",
"acknowledgement|established|finish|synchronize|reset|unspecified"
]
}
]
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"deployImmediacy": "lazy",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand|Immediate",
"resolutionImmediacy": "On Demand|Immediate|Pre-provision"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/templates/template1/bds/bd1",
"subnets": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/templates/template1/contracts/contract1",
"serviceGraphTemplate": {
"name": "SGT1"
}
}
]
}
]
}
Response:
HTTP/1.1 201
Location: /api/v1/schemas/583c7c482501002501061985
{
"id": "583c7c482501002501061985",
"displayName": "Schema 1",
"templates": [
{
"name": "template1",
"displayName": "Template 1",
"tenantId": "592c7c482501002501061578",
"anps": [
{
"name": "anp1",
"displayName": "Anp 1",
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"name": "epg1",
"displayName": "EPG 1",
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"relationshipType": "provider|consumer"
}
],
"subnets": [ {
"ip": "192.168.132.1/24",
"description": "Subnet for IT department",
"scope" : "private"
"shared": true
}, {
"ip": "192.168.133.1/24",
"description": "Subnet for sales department",
"scope" : "public"
"shared": false
}],
"uSegEpg" : true,
"uSegAttrs" : [ {
"name" : "IP1",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : true,
"value" : "0.0.0.0"
}, {
"name" : "IP2",
"displayName" : "...",
"description" : "...",
"type" : "ip",
"fvSubnet" : false,
"value" : "192.168.132.1"
}, {
"name" : "MAC",
"displayName" : "...",
"description" : "...",
"type" : "mac",
"value" : "aa:bb:cc:dd:ee:ff"
}, {
"name" : "VM Name",
"displayName" : "...",
"description" : "...",
"type" : "vm-name",
"operator" : "equals | contains | startsWith | endsWith",
"value" : "..."
}, {
"name" : "VM Data Center",
"displayName" : "...",
"description" : "...",
"type" : "rootContName",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Hypervisor Identifier",
"displayName" : "...",
"description" : "...",
"type" : "hv",
"operator" : "...",
"value" : "..."
}, {
"name" : "VmOperatingSystem",
"displayName" : "...",
"description" : "...",
"type" : "guest-os",
"operator" : "...",
"value" : "..."
}, {
"name" : "VM Tag",
"displayName" : "...",
"description" : "...",
"type" : "tag",
"operator" : "...",
"category" : "...",
"value" : "..."
}, {
"name" : "Vm Identifier",
"displayName" : "...",
"description" : "...",
"type" : "vm",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vmm Domain",
"displayName" : "...",
"description" : "...",
"type" : "domain",
"operator" : "...",
"value" : "..."
}, {
"name" : "Vm Vnic Dn",
"displayName" : "...",
"description" : "...",
"type" : "vnic",
"operator" : "...",
"value" : "..."
} ],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
},
{
"name": "epg2",
"displayName": "EPG 2",
"epgRef": "/schema/583c7c482501002501061985/template/template1/anp/anp1/epg/epg2",
"contractRelationships": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"relationshipType": "provider|consumer"
}
],
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1"
}
]
}
],
"vrfs": [
{
"name": "vrf1",
"displayName": "VRF 1",
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"bds": [
{
"name": "bd1",
"displayName": "BD 1",
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"l3UnknownMulticastFlooding": "flood|opt-flood",
"intersiteBumTrafficAllow": true,
"multiDestinationFlooding": "bd-flood|drop|encap-flood",
"l2UnknownUnicast": "flood|proxy",
"l2Stretch": true,
"subnets": [ ... ],
"vrfRef": "/schemas/583c7c482501002501061985/templates/template1/vrfs/vrf1"
}
],
"contracts": [
{
"name": "contract1",
"displayName": "Contract 1",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"filters": "80",
"filterRelationships": [
{
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"directives": [
"log"
]
}
],
"scope": "global|tenant|context|application-profile"
},
{
"name": "contract2",
"displayName": "Contract 2",
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract2",
"filters": "80",
"filterRelationships": [],
"scope": "global|tenant|context|anp"
}
],
"filters": [
{
"name": "filter1",
"displayName": "Filter 1",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter1",
"entries": [
{
"name": "filterEntry11",
"displayName": "Filter Entry 11",
"description": "",
"etherType": "ip",
"ipProtocol": "icmp"
},
{
"name": "filterEntry12",
"displayName": "Filter Entry 12",
"description": "",
"etherType": "ip",
"ipProtocol": "udp",
"matchOnlyFragments": false,
"sourceFrom": "dns",
"sourceTo": "http",
"destinationFrom": "dns",
"destinationTo": "http"
}
]
},
{
"name": "filter2",
"displayName": "Filter 2",
"description": "",
"filterRef": "/schemas/583c7c482501002501061985/templates/template1/filters/filter2",
"entries": [...]
}
]
}
],
"sites": [
{
"siteId": "58202f7066e6e10001c41236",
"templateName": "template1",
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnets": [ ... ]
}
]
},
{
"siteId": "69202f7066e6e10001c41247",
"templateName": "template1",
"anps": [
{
"anpRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1",
"epgs": [
{
"epgRef": "/schemas/583c7c482501002501061985/templates/template1/anps/anp1/epgs/epg1",
"domainAssociations": [
{
"dn": "uni/vmmp-VMware/dom-TestVMMDomain-DoNotDelete",
"domainType": "vmmDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate",
"allowMicroSegmentation": true,
"allowPromiscuous": true,
"macChanges": false,
"allowForgedTransmits": true,
"delimiter": "delimiter",
"microSegVlan": {
"vlanType": "vlan",
"vlan": 450
},
"portEncapVlan": {
"vlanType": "vlan",
"vlan": 400
},
"vlanEncapMode": "static"
},
{
"dn": "uni/phys-testPhysicalDomain-DoNotDelete",
"domainType": "physicalDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l2dom-TestL2Domain-DoNotDelete",
"domainType": "l2ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/l3dom-TestL3Domain-DoNotDelete",
"domainType": "l3ExtDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
},
{
"dn": "uni/fc-TestFibreChannelDomain",
"domainType": "fibreChannelDomain",
"deployImmediacy": "On Demand",
"resolutionImmediacy": "Immediate"
}
],
"staticPorts": [
{
"type" : "port",
"path" : "topology/pod-1/paths-101/pathep[eth1/11]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "immediate|lazy",
"mode" : "regular|native|untagged"
}, {
"type" : "VPC",
"path" : "Topology/pod-1/protpaths-101-102/pathep[NFS-Storage]",
"portEncapVlan": 10,
"microSegVlan" : 8,
"deploymentImmediacy" : "Immediate",
"mode" : "Access"
}, {
"type" : "DPC",
"path" : "...",
"portEncapVlan": 9,
"microSegVlan" : 8,
"deploymentImmediacy" : "OnDemand",
"mode" : "AccessUntagged"
}
],
"staticLeafs": [
{
"path" : "topology/pod-1/node-201",
"portEncapVlan": 10
}
]
}
]
}
],
"bds": [
{
"bdRef": "/schemas/583c7c482501002501061985/templates/template1/bds/bd1",
"subnet": [ (see POST /templates) ]
}
],
"contracts": [
{
"contractRef": "/schemas/583c7c482501002501061985/templates/template1/contracts/contract1",
"serviceGraphTemplate": {
"name": "SGT1"
}
}
]
}
]
}