{
  "openapi": "3.0.3",
  "info": {
    "title": "Cisco ACI APIC REST API",
    "description": "Complete API specification for Cisco ACI APIC REST API operations with all 29 endpoints from the original Postman collection.\n\n**SSL Certificate Note**: Cisco ACI sandbox environments use self-signed certificates. For Itential Platform users, set \"rejectUnauthorized\": false in your TLS configuration.\n\n**Authentication Workflow**: First call /aaaLogin.json to get APIC-Cookie, then use the cookie in all subsequent requests.",
    "version": "1.0.0",
    "contact": {
      "name": "Cisco ACI API Support",
      "url": "https://developer.cisco.com/docs/aci/"
    }
  },
  "servers": [
    {
      "url": "https://sandboxapicdc.cisco.com/api",
      "description": "Cisco ACI Sandbox Environment"
    }
  ],
  "security": [
    {
      "cookieAuth": []
    }
  ],
  "paths": {
    "/aaaLogin.json": {
      "post": {
        "tags": ["Authentication"],
        "summary": "Login to APIC",
        "operationId": "login",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/aaaRefresh.json": {
      "get": {
        "tags": ["Authentication"],
        "summary": "Refresh Session",
        "operationId": "refreshSession",
        "responses": {
          "200": {
            "description": "Session refreshed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/aaaLogout.json": {
      "post": {
        "tags": ["Authentication"],
        "summary": "Logout",
        "operationId": "logout",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully logged out"
          }
        }
      }
    },
    "/class/fvTenant.json": {
      "get": {
        "tags": ["Tenant Operations"],
        "summary": "Get All Tenants",
        "operationId": "getAllTenants",
        "responses": {
          "200": {
            "description": "List of tenants"
          }
        }
      }
    },
    "/mo/uni/tn-{tenantName}.json": {
      "get": {
        "tags": ["Tenant Operations"],
        "summary": "Get Specific Tenant",
        "operationId": "getTenant",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tenant details"
          }
        }
      },
      "post": {
        "tags": ["VRF Operations"],
        "summary": "Create Resources in Tenant",
        "operationId": "createTenantResource",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resource created successfully"
          }
        }
      }
    },
    "/mo/uni/tn-{tenantName}.json?rsp-subtree=full&rsp-prop-include=config-only": {
      "get": {
        "tags": ["Tenant Operations"],
        "summary": "Get Tenant with Full Subtree",
        "operationId": "getTenantWithFullSubtree",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tenant with full configuration"
          }
        }
      }
    },
    "/mo/uni.json": {
      "post": {
        "tags": ["Tenant Operations", "Complete Configuration Flow"],
        "summary": "Create Tenant or Complete Environment",
        "operationId": "createTenantOrEnvironment",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resource created successfully"
          }
        }
      }
    },
    "/class/fvCtx.json": {
      "get": {
        "tags": ["VRF Operations"],
        "summary": "Get All VRFs",
        "operationId": "getAllVRFs",
        "responses": {
          "200": {
            "description": "List of VRFs"
          }
        }
      }
    },
    "/class/fvBD.json": {
      "get": {
        "tags": ["Bridge Domain Operations"],
        "summary": "Get All Bridge Domains",
        "operationId": "getAllBridgeDomains",
        "responses": {
          "200": {
            "description": "List of bridge domains"
          }
        }
      }
    },
    "/mo/uni/tn-{tenantName}/relayp-{dhcpRelayPolicyName}.json": {
      "post": {
        "tags": ["Bridge Domain Operations"],
        "summary": "Configure DHCP Relay Policy",
        "operationId": "createDHCPRelayPolicy",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dhcpRelayPolicyName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "DHCP relay policy created"
          }
        }
      }
    },
    "/mo/uni/tn-{tenantName}/BD-{bdName}.json": {
      "post": {
        "tags": ["Bridge Domain Operations"],
        "summary": "Associate DHCP Relay Policy to BD",
        "operationId": "associateDHCPRelayToBD",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bdName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "DHCP relay policy associated"
          }
        }
      }
    },
    "/class/fvAp.json": {
      "get": {
        "tags": ["Application Profile Operations"],
        "summary": "Get All Application Profiles",
        "operationId": "getAllApplicationProfiles",
        "responses": {
          "200": {
            "description": "List of application profiles"
          }
        }
      }
    },
    "/class/fvAEPg.json": {
      "get": {
        "tags": ["EPG Operations"],
        "summary": "Get All EPGs",
        "operationId": "getAllEPGs",
        "responses": {
          "200": {
            "description": "List of EPGs"
          }
        }
      }
    },
    "/node/class/fvAEPg.json": {
      "get": {
        "tags": ["EPG Operations"],
        "summary": "Get EPGs in Tenant",
        "operationId": "getEPGsInTenant",
        "parameters": [
          {
            "name": "query-target-filter",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of EPGs in tenant"
          }
        }
      }
    },
    "/mo/uni/tn-{tenantName}/ap-{appProfileName}.json": {
      "post": {
        "tags": ["EPG Operations"],
        "summary": "Create EPG with BD and VMM Association",
        "operationId": "createEPGWithVMM",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appProfileName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "EPG created successfully"
          }
        }
      }
    },
    "/mo/uni/tn-{tenantName}/ap-{appProfileName}/epg-{epgName}.json": {
      "post": {
        "tags": ["EPG Operations"],
        "summary": "Associate EPG with VMM Domain",
        "operationId": "associateEPGWithVMM",
        "parameters": [
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appProfileName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "epgName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "EPG associated with VMM domain"
          }
        }
      }
    },
    "/class/vmmDomP.json": {
      "get": {
        "tags": ["VMM Domain Operations"],
        "summary": "Get All VMM Domains",
        "operationId": "getAllVMMDomains",
        "responses": {
          "200": {
            "description": "List of VMM domains"
          }
        }
      }
    },
    "/node/class/vmmDomP.json": {
      "get": {
        "tags": ["VMM Domain Operations"],
        "summary": "Get VMware VMM Domains",
        "operationId": "getVMwareVMMDomains",
        "parameters": [
          {
            "name": "query-target-filter",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of VMware VMM domains"
          }
        }
      }
    },
    "/class/fvnsVlanInstP.json": {
      "get": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Get All VLAN Pools",
        "operationId": "getAllVLANPools",
        "responses": {
          "200": {
            "description": "List of VLAN pools"
          }
        }
      }
    },
    "/mo/uni/infra/vlanns-[{vlanPoolName}]-dynamic.json": {
      "post": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Create Dynamic VLAN Pool",
        "operationId": "createDynamicVLANPool",
        "parameters": [
          {
            "name": "vlanPoolName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Dynamic VLAN pool created"
          }
        }
      },
      "get": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Get VLAN Pool Details",
        "operationId": "getVLANPoolDetails",
        "parameters": [
          {
            "name": "vlanPoolName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "VLAN pool details"
          }
        }
      }
    },
    "/mo/uni/infra/vlanns-[{vlanPoolName}]-static.json": {
      "post": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Create Static VLAN Pool",
        "operationId": "createStaticVLANPool",
        "parameters": [
          {
            "name": "vlanPoolName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Static VLAN pool created"
          }
        }
      }
    },
    "/mo/uni/vmmp-VMware/dom-{vmmDomainName}.json": {
      "post": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Associate VLAN Pool with VMM Domain",
        "operationId": "associateVLANPoolWithVMM",
        "parameters": [
          {
            "name": "vmmDomainName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "VLAN pool associated"
          }
        }
      },
      "get": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Get VMM Domain VLAN Pool Association",
        "operationId": "getVMMDomainVLANPoolAssociation",
        "parameters": [
          {
            "name": "vmmDomainName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "VMM domain VLAN pool associations"
          }
        }
      }
    },
    "/mo/uni/infra/vlanns-[{vlanPoolName}]-dynamic/from-[vlan-{vlanStart}]-to-[vlan-{vlanEnd}].json": {
      "post": {
        "tags": ["VLAN Pool Operations"],
        "summary": "Add VLAN Range to Existing Pool",
        "operationId": "addVLANRangeToPool",
        "parameters": [
          {
            "name": "vlanPoolName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vlanStart",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vlanEnd",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "VLAN range added"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "cookieAuth": {
        "type": "apiKey",
        "in": "cookie",
        "name": "APIC-cookie",
        "description": "Session cookie obtained from login"
      }
    },
    "schemas": {
      "LoginRequest": {
        "type": "object",
        "required": ["aaaUser"],
        "properties": {
          "aaaUser": {
            "type": "object",
            "required": ["attributes"],
            "properties": {
              "attributes": {
                "type": "object",
                "required": ["name", "pwd"],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Username",
                    "example": "admin"
                  },
                  "pwd": {
                    "type": "string",
                    "description": "Password",
                    "format": "password",
                    "example": "password"
                  }
                }
              }
            }
          }
        }
      },
      "LoginResponse": {
        "type": "object",
        "properties": {
          "imdata": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "aaaLogin": {
                  "type": "object",
                  "properties": {
                    "attributes": {
                      "type": "object",
                      "properties": {
                        "token": {
                          "type": "string",
                          "description": "Authentication token"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "LogoutRequest": {
        "type": "object",
        "required": ["aaaUser"],
        "properties": {
          "aaaUser": {
            "type": "object",
            "required": ["attributes"],
            "properties": {
              "attributes": {
                "type": "object",
                "required": ["name"],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Username",
                    "example": "admin"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "Authentication and session management operations"
    },
    {
      "name": "Tenant Operations",
      "description": "Tenant management operations"
    },
    {
      "name": "VRF Operations",
      "description": "VRF (Virtual Routing and Forwarding) operations"
    },
    {
      "name": "Bridge Domain Operations",
      "description": "Bridge Domain and DHCP configuration operations"
    },
    {
      "name": "Application Profile Operations",
      "description": "Application Profile management operations"
    },
    {
      "name": "EPG Operations",
      "description": "Endpoint Group management operations"
    },
    {
      "name": "VMM Domain Operations",
      "description": "Virtual Machine Manager domain operations"
    },
    {
      "name": "VLAN Pool Operations",
      "description": "VLAN pool management operations"
    },
    {
      "name": "Complete Configuration Flow",
      "description": "Complete end-to-end configuration workflows for common use cases"
    }
  ]
}
