--- title: "Capabilities (discovery)" slug: "170-discovery-capabilities-schemas" updated: 2025-12-09T17:42:46Z published: 2025-12-09T18:02:06Z canonical: "docs.developer.comcast.com/170-discovery-capabilities-schemas" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.developer.comcast.com/llms.txt > Use this file to discover all available pages before exploring further. # Capabilities (discovery) **Capabilities Schema 1.7.0 | Discovery SDK** ## Types ### Role Role provides access level for the app for a given capability. ``` Role: { USE: 'use', MANAGE: 'manage', PROVIDE: 'provide', }, ``` --- ### DenyReason Reasons why a Capability might not be invokable ``` DenyReason: { UNPERMITTED: 'unpermitted', UNSUPPORTED: 'unsupported', DISABLED: 'disabled', UNAVAILABLE: 'unavailable', GRANT_DENIED: 'grantDenied', UNGRANTED: 'ungranted', }, ``` --- ### Capability A Capability is a discrete unit of functionality that a Firebolt device might be able to perform. ``` type Capability = string ``` --- ### CapPermissionStatus ``` type CapPermissionStatus = { permitted?: boolean // Provides info whether the capability is permitted granted?: boolean } ``` --- ### CapabilityInfo ``` type CapabilityInfo = { capability?: Capability // A Capability is a discrete unit of functionality that a Firebolt device might be able to perform. supported: boolean // Provides info whether the capability is supported available: boolean // Provides info whether the capability is available use: { permitted?: boolean // Provides info whether the capability is permitted granted?: boolean } manage: { permitted?: boolean // Provides info whether the capability is permitted granted?: boolean } provide: { permitted?: boolean // Provides info whether the capability is permitted granted?: boolean } details?: DenyReason[] // Reasons why a Capability might not be invokable } ``` See also: [Capability](/docs/170-discovery-capabilities-schemas#capability) [DenyReason](/docs/170-discovery-capabilities-schemas#denyreason) --- ### Permission A capability combined with a Role, which an app may be permitted (by a distributor) or granted (by an end user). ``` type Permission = { role?: Role // Role provides access level for the app for a given capability. capability: Capability // A Capability is a discrete unit of functionality that a Firebolt device might be able to perform. } ``` See also: [Role](/docs/170-discovery-capabilities-schemas#role) [Capability](/docs/170-discovery-capabilities-schemas#capability) ---