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. |
JSON Schema
{
"$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.
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.