Canonical · Schema

IdentityInfo expands an Identity to include effective group membership and effective permissions.

These fields can only be evaluated for the currently authenticated identity.

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.
authentication_method string AuthenticationMethod is the authentication method that the identity authenticates to LXD with.
effective_groups array Effective groups is the combined and deduplicated list of LXD groups that the identity is a direct member of, and the LXD groups that the identity is an effective member of via identity provider group
effective_permissions array Effective permissions is the combined and deduplicated list of permissions that the identity has by virtue of direct membership to a LXD group, or effective membership of a LXD group via identity prov
expires_at string ExpiresAt is the expiration time of the credential belonging to the identity. For TLS identities this is the expiry of the certificate, and for bearer identities it is the expiry of the most recently
fine_grained boolean FineGrained is a boolean indicating whether the identity is fine-grained, meaning that permissions are managed via group membership.
groups array Groups is the list of groups for which the identity is a member.
id string Identifier is a unique identifier for the identity (e.g. certificate fingerprint or email for OIDC).
name string Name is the Name claim of the identity if authenticated via OIDC, or the name of the certificate if authenticated with TLS.
tls_certificate string TLSCertificate is a PEM encoded x509 certificate. This is only set if the AuthenticationMethod is AuthenticationMethodTLS. API extension: access_management_tls.
type string Type is the type of identity.
View JSON Schema on GitHub

JSON Schema

canonical-identity-info-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-identity-info-schema.json",
  "title": "IdentityInfo expands an Identity to include effective group membership and effective permissions.",
  "description": "These fields can only be evaluated for the currently authenticated identity.",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/canonical-identities-api-openapi.yml#/components/schemas/IdentityInfo",
  "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"
    },
    "authentication_method": {
      "description": "AuthenticationMethod is the authentication method that the identity\nauthenticates to LXD with.",
      "type": "string",
      "x-go-name": "AuthenticationMethod"
    },
    "effective_groups": {
      "description": "Effective groups is the combined and deduplicated list of LXD groups that the identity is a direct member of, and\nthe LXD groups that the identity is an effective member of via identity provider group mappings.",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-go-name": "EffectiveGroups"
    },
    "effective_permissions": {
      "description": "Effective permissions is the combined and deduplicated list of permissions that the identity has by virtue of\ndirect membership to a LXD group, or effective membership of a LXD group via identity provider group mappings.",
      "items": {
        "$ref": "#/$defs/Permission"
      },
      "type": "array",
      "x-go-name": "EffectivePermissions"
    },
    "expires_at": {
      "description": "ExpiresAt is the expiration time of the credential belonging to the identity. For TLS identities this is the\nexpiry of the certificate, and for bearer identities it is the expiry of the most recently issued token.\nIt is unset for identities whose credential has no expiry, that have no credential yet (pending identities),\nor whose token has been revoked.\n\nAPI extension: access_management_expiry.",
      "format": "date-time",
      "type": "string",
      "x-go-name": "ExpiresAt"
    },
    "fine_grained": {
      "description": "FineGrained is a boolean indicating whether the identity is fine-grained,\nmeaning that permissions are managed via group membership.",
      "type": "boolean",
      "x-go-name": "FineGrained"
    },
    "groups": {
      "description": "Groups is the list of groups for which the identity is a member.",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-go-name": "Groups"
    },
    "id": {
      "description": "Identifier is a unique identifier for the identity (e.g. certificate fingerprint or email for OIDC).",
      "type": "string",
      "x-go-name": "Identifier"
    },
    "name": {
      "description": "Name is the Name claim of the identity if authenticated via OIDC, or the name\nof the certificate if authenticated with TLS.",
      "type": "string",
      "x-go-name": "Name"
    },
    "tls_certificate": {
      "description": "TLSCertificate is a PEM encoded x509 certificate. This is only set if the AuthenticationMethod is AuthenticationMethodTLS.\n\nAPI extension: access_management_tls.",
      "type": "string",
      "x-go-name": "TLSCertificate"
    },
    "type": {
      "description": "Type is the type of identity.",
      "type": "string",
      "x-go-name": "Type"
    }
  },
  "type": "object",
  "x-go-package": "github.com/canonical/lxd/shared/api",
  "$defs": {
    "Permission": {
      "properties": {
        "entitlement": {
          "description": "Entitlement is the entitlement define for the entity type.",
          "type": "string",
          "x-go-name": "Entitlement"
        },
        "entity_type": {
          "description": "EntityType is the string representation of the entity type.",
          "type": "string",
          "x-go-name": "EntityType"
        },
        "url": {
          "description": "EntityReference is the URL of the entity that the permission applies to.",
          "type": "string",
          "x-go-name": "EntityReference"
        }
      },
      "title": "Permission represents a permission that may be granted to a group.",
      "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-identity-info"
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.