Canonical · Schema

NetworkACL used for displaying an ACL.

CanonicalCloudLinuxOpen SourceUbuntuContainersBare MetalCharmsIdentity

Properties

Name Type Description
access_entitlements array AccessEntitlements represents the entitlements that are granted to the requesting user on the attached entity.
config object ACL configuration map (refer to doc/network-acls.md)
description string Description of the ACL
egress array List of egress rules (order independent)
ingress array List of ingress rules (order independent)
name string The new name for the ACL
project string Project name API extension: network_acls_all_projects
used_by array List of URLs of objects using this profile
View JSON Schema on GitHub

JSON Schema

canonical-network-acl-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-network-acl-schema.json",
  "title": "NetworkACL used for displaying an ACL.",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/canonical-network-acls-api-openapi.yml#/components/schemas/NetworkACL",
  "properties": {
    "access_entitlements": {
      "description": "AccessEntitlements represents the entitlements that are granted to the requesting user on the attached entity.",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-go-name": "AccessEntitlements"
    },
    "config": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "ACL configuration map (refer to doc/network-acls.md)",
      "type": "object",
      "x-go-name": "Config"
    },
    "description": {
      "description": "Description of the ACL",
      "type": "string",
      "x-go-name": "Description"
    },
    "egress": {
      "description": "List of egress rules (order independent)",
      "items": {
        "$ref": "#/$defs/NetworkACLRule"
      },
      "type": "array",
      "x-go-name": "Egress"
    },
    "ingress": {
      "description": "List of ingress rules (order independent)",
      "items": {
        "$ref": "#/$defs/NetworkACLRule"
      },
      "type": "array",
      "x-go-name": "Ingress"
    },
    "name": {
      "description": "The new name for the ACL",
      "type": "string",
      "x-go-name": "Name"
    },
    "project": {
      "description": "Project name\n\nAPI extension: network_acls_all_projects",
      "type": "string",
      "x-go-name": "Project"
    },
    "used_by": {
      "description": "List of URLs of objects using this profile",
      "items": {
        "type": "string"
      },
      "readOnly": true,
      "type": "array",
      "x-go-name": "UsedBy"
    }
  },
  "type": "object",
  "x-go-package": "github.com/canonical/lxd/shared/api",
  "$defs": {
    "NetworkACLRule": {
      "description": "Refer to doc/network-acls.md for details.",
      "properties": {
        "action": {
          "description": "Action to perform on rule match",
          "type": "string",
          "x-go-name": "Action"
        },
        "description": {
          "description": "Description of the rule",
          "type": "string",
          "x-go-name": "Description"
        },
        "destination": {
          "description": "Destination address",
          "type": "string",
          "x-go-name": "Destination"
        },
        "destination_port": {
          "description": "Destination port",
          "type": "string",
          "x-go-name": "DestinationPort"
        },
        "icmp_code": {
          "description": "ICMP message code (for ICMP protocol)",
          "type": "string",
          "x-go-name": "ICMPCode"
        },
        "icmp_type": {
          "description": "Type of ICMP message (for ICMP protocol)",
          "type": "string",
          "x-go-name": "ICMPType"
        },
        "protocol": {
          "description": "Protocol",
          "type": "string",
          "x-go-name": "Protocol"
        },
        "source": {
          "description": "Source address",
          "type": "string",
          "x-go-name": "Source"
        },
        "source_port": {
          "description": "Source port",
          "type": "string",
          "x-go-name": "SourcePort"
        },
        "state": {
          "description": "State of the rule",
          "type": "string",
          "x-go-name": "State"
        }
      },
      "title": "NetworkACLRule represents a single rule in an ACL ruleset.",
      "type": "object",
      "x-go-package": "github.com/canonical/lxd/shared/api"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/canonical-network-acl"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.