# Query Entitlement Compliance Status

Retrieves entitlement compliance data that shows whether the tenant's license usage is within authorized limits. Entitlement compliance data provides visibility into license adherence by comparing actual device usage against purchased license quantities. This includes identifying compliant licenses (usage within limits), overallocated licenses (usage exceeds purchased quantity), and underutilized licenses (purchased quantity significantly exceeds usage).
**What the Data Includes**: Compliance status for each license type, total purchased quantities vs. consumed quantities, active device counts by type, license shortfall or surplus amounts, devices at risk of non-compliance, and compliance trends.

Endpoint: POST /entitlements/compliances/query
Version: v0.2.0

## Header parameters:

  - `Content-Type` (string, required)

## Request fields (application/vnd.ruckus.v1.3+json):

  - `filters` (object)
    Filter criteria for license compliance queries including license types and compliance status parameters.

  - `filters.licenseType` (array)
    Set of license type identifiers to filter compliance results by specific entitlement categories.

## Response 200:

  - `200` (unknown)
    success

## Response 200 fields (application/json):

  - `data` (array, required)
    List of license summaries grouped by license type (APSW and SLTN_TOKEN)

  - `data.licenseType` (string, required)
    License type (APSW for Device Networking or SLTN_TOKEN for AddOn Solutions)
    Example: APSW

  - `data.activeLicenses` (object)
    Active licenses information including paid and trial licenses with expiration details

  - `data.activeLicenses.paid` (object)
    License breakdown showing total count and next expiration details

  - `data.activeLicenses.paid.total` (integer)
    Total number of active licenses of this type (includes courtesy for paid)
    Example: 210

  - `data.activeLicenses.paid.courtesyQty` (integer)
    Courtesy quantity (5% bonus for paid licenses only, 0 for trial)
    Example: 10

  - `data.activeLicenses.paid.nextExpirationDate` (string)
    Next (soonest) expiration date
    Example: Wed Nov 08 23:59:59 GMT 2045

  - `data.activeLicenses.paid.nextExpiringCount` (integer)
    Count of licenses expiring on the next expiration date
    Example: 50

  - `data.licensesUsed` (object)
    Licenses used information broken down by self account and MSP customers

  - `data.licensesUsed.self` (object)
    Self account usage breakdown showing paid and trial license consumption

  - `data.licensesUsed.self.paid` (integer)
    Number of paid licenses used by own account
    Example: 70

  - `data.licensesUsed.self.trial` (integer)
    Number of trial licenses used by own account
    Example: 30

  - `data.licensesUsed.self.total` (integer)
    Total licenses used by own account (paid + trial)
    Example: 100

  - `data.licensesUsed.mspCustomers` (object)
    MSP Customers usage breakdown showing paid and extended trial license consumption

  - `data.licensesUsed.mspCustomers.paid` (integer)
    Number of paid licenses assigned to MSP customers
    Example: 0

  - `data.licensesUsed.mspCustomers.extendedTrial` (integer)
    Number of extended trial licenses assigned to MSP customers
    Example: 0

  - `data.licensesUsed.mspCustomers.total` (integer)
    Total licenses assigned to MSP customers (paid + extendedTrial)
    Example: 0

  - `data.licensesAvailable` (object)
    Licenses available information broken down by self account and MSP customers

  - `data.licensesAvailable.self` (object)
    Self account available licenses breakdown showing paid and trial availability

  - `data.licensesAvailable.self.paid` (integer)
    Number of paid licenses available to own account
    Example: 40

  - `data.licensesAvailable.self.trial` (integer)
    Number of trial licenses available to own account
    Example: 80

  - `data.licensesAvailable.self.total` (integer)
    Total licenses available to own account (paid + trial)
    Example: 120

  - `data.licensesAvailable.mspCustomers` (object)
    MSP Customers available licenses breakdown showing paid and extended trial availability

  - `data.licensesAvailable.mspCustomers.paid` (integer)
    Number of paid licenses available to assign to MSP customers
    Example: 0

  - `data.licensesAvailable.mspCustomers.extendedTrial` (integer)
    Number of extended trial licenses available to assign to MSP customers
    Example: 0

  - `data.licensesAvailable.mspCustomers.total` (integer)
    Total licenses available to assign to MSP customers (paid + extendedTrial)
    Example: 0

  - `data.outOfCompliance` (object)
    License out-of-compliance information broken down by self account and MSP customers

  - `data.outOfCompliance.self` (object)
    Self account out-of-compliance count for paid and trial licenses combined

  - `data.outOfCompliance.self.total` (integer)
    Total out-of-compliance count for own account (paid + trial)
    Example: 95

  - `data.outOfCompliance.mspCustomers` (object)
    MSP Customers out-of-compliance breakdown by paid, extended trial, and expired services

  - `data.outOfCompliance.mspCustomers.paid` (integer)
    Out-of-compliance count for MSP customers on paid licenses
    Example: 0

  - `data.outOfCompliance.mspCustomers.extendedTrial` (integer)
    Out-of-compliance count for MSP customers on extended trial licenses
    Example: 0

  - `data.outOfCompliance.mspCustomers.expiredServices` (integer)
    Out-of-compliance count for MSP customers with expired services
    Example: 0

  - `data.outOfCompliance.mspCustomers.total` (integer)
    Total out-of-compliance count for all MSP customers
    Example: 0

  - `data.outOfCompliance.total` (integer)
    Total out-of-compliance count across self and MSP customers
    Example: 95

  - `data.self` (object, required)
    Account usage summary containing detailed breakdown of device/solution usage

  - `data.self.usedSummary` (array, required)
    List of usage summaries broken down by device or solution type

  - `data.self.usedSummary.type` (string, required)
    Device or solution type (e.g., WIFI, SWITCH, SLTN_PMS_INTEGRATION)
    Example: WIFI

  - `data.self.usedSummary.installedCount` (integer, required)
    Number of devices/solutions currently configured (installed count)
    Example: 126

  - `data.self.usedSummary.licensesUsed` (integer, required)
    Number of licenses required/used for this device type
    Example: 126

  - `data.self.totalConfigured` (integer)
    Total number of devices/solutions currently configured across all types
    Example: 140

  - `data.self.totalLicensesUsed` (integer, required)
    Total number of licenses currently being used across all types
    Example: 148

## Response 200 fields (application/vnd.ruckus.v1.2+json):

  - `compliances` (array)
    List of tenant specific license compliance information including usage metrics, device counts, and compliance status for each tenant.

  - `compliances.licenseType` (string)
    Type of license for which compliance information is being reported within this tenant context.
    Enum: "UNKNOWN", "APSW", "URLF", "EDGE_SECS", "EDGE_SECL", "SLTN_TOKEN"

  - `compliances.self` (object)
    Version 2 license compliance information extending base compliance data with enhanced expiration date tracking for both paid and trial licenses.

  - `compliances.self.licenseType` (string)
    Type of license being tracked for compliance, determining the applicable rules and usage restrictions.
    Enum: "UNKNOWN", "APSW", "URLF", "EDGE_SECS", "EDGE_SECL", "SLTN_TOKEN"

  - `compliances.self.tenantId` (string)
    Unique identifier of the tenant for which license compliance information is being reported.

  - `compliances.self.tenantName` (string)
    Human-readable name of the tenant associated with the license compliance data.

  - `compliances.self.deviceCompliances` (array)
    List of device compliance details showing license usage breakdown by device type.

  - `compliances.self.deviceCompliances.deviceType` (string)
    Type of device for which compliance is being reported, determining applicable license requirements.
    Enum: "IOT_CTRL", "UNASSIGNED_DEVICE_TYPE", "WIFI", "LTE", "SWITCH", "ANALYTICS", "RWG", "EDGE", "VIRTUAL_EDGE", "APSW", "EDGE_SECS", "EDGE_SECL", "SLTN_PIN_FOR_IDENTITY", "SLTN_TOKEN", "SLTN_PMS_INTEGRATION", "SLTN_URL_FILTERING", "NOKIA_OLTS"

  - `compliances.self.deviceCompliances.installedDeviceCount` (integer)
    Total number of devices of this type that are currently installed and active in the system.

  - `compliances.self.deviceCompliances.usedLicenseCount` (integer)
    Number of licenses currently consumed or allocated for this device type to ensure compliance.

  - `compliances.self.totalActivePaidLicenseCount` (integer)
    Total number of currently active paid licenses available for this tenant.

  - `compliances.self.totalActiveTrialLicenseCount` (integer)
    Total number of currently active trial licenses available for this tenant.

  - `compliances.self.totalActivePaidAssignedLicenseCount` (integer)
    Total number of active paid licenses assigned by this MSP tenant (always zero for REC accounts).

  - `compliances.self.totalActiveTrialAssignedLicenseCount` (integer)
    Total number of active trial licenses assigned by this MSP tenant (always zero for REC accounts).

  - `compliances.self.nextTotalPaidExpiringLicenseCount` (integer)
    Total number of paid licenses that will expire in the next period, used for expiration planning and renewal notifications.

  - `compliances.self.nextTotalTrialExpiringLicenseCount` (integer)
    Total number of trial licenses that will expire in the next period, used for trial expiration tracking and conversion planning.

  - `compliances.self.complianceType` (string)
    Type of compliance reporting context, indicating whether this is for MSP summary or individual account compliance tracking.
    Enum: "SELF", "MSP_SUMMARY"

  - `compliances.self.totalMspEcPaidAssignedLicenseCount` (integer)
    Total number of paid licenses assigned to MSP enterprise customers, applicable when consolidated SKU is enabled.

  - `compliances.self.totalMspEcTrialAssignedLicenseCount` (integer)
    Total number of trial licenses assigned to MSP enterprise customers, applicable when consolidated SKU is enabled.

  - `compliances.self.paidLicenseGapForMspEcs` (integer)
    License gap specifically for MSP enterprise customers paid licenses, showing remaining paid license capacity for customer assignments.

  - `compliances.self.trialLicenseGapForMspEcs` (integer)
    License gap specifically for MSP enterprise customers trial licenses, showing remaining trial license capacity for customer assignments.

  - `compliances.self.consolidatedSkuEnabled` (boolean)
    Flag indicating whether consolidated SKU functionality is enabled for this MSP tenant, affecting license allocation calculations.

  - `compliances.self.extendedTrialEnabled` (boolean)
    Flag indicating whether extended trial license functionality is enabled, allowing trial license extensions and enhanced trial management.

  - `compliances.self.nextPaidExpirationDate` (string)
    Date when the next batch of paid licenses will expire, used for proactive renewal planning and license management.

  - `compliances.self.nextTrialExpirationDate` (string)
    Date when the next batch of trial licenses will expire, used for trial conversion planning and customer engagement.

  - `compliances.self.licensesUsed` (integer)
    Total number of licenses currently in use, calculated by summing used license counts across all device compliance records.

  - `compliances.self.licenseGap` (integer)
    Overall license gap calculation considering consolidated SKU settings, compliance type, and license allocation across paid and trial licenses.

  - `compliances.self.availablePaidLicenseCountForMspEcs` (integer)
    Available paid license count for MSP enterprise customers, calculated as the maximum of zero or the paid license gap.

  - `compliances.self.availableTrialLicenseCountForMspEcs` (integer)
    Available trial license count for MSP enterprise customers, calculated based on extended trial configuration and trial license gap.

  - `compliances.self.availableLicenseCountForMyAccount` (integer)
    License gap for the account itself, representing available license capacity for direct tenant usage.

## Response 404:

  - `404` (unknown)
    This tenant does not exist.

## Response 404 fields (application/vnd.ruckus.v1.3+json):

  - `code` (string)
    Unique error code identifying the specific type of error that occurred.

  - `message` (string)
    Human-readable error message providing details about what went wrong.

  - `reason` (string)
    Detailed explanation of why the error occurred, providing additional context.

  - `suggestion` (string)
    Actionable suggestion or recommendation for how to resolve or avoid this error.

## Response 415:

  - `415` (unknown)
    Unsupported Media Type - Feature not enabled for this tenant.

## Response 415 fields (application/vnd.ruckus.v1.3+json):

  - `code` (string)
    Unique error code identifying the specific type of error that occurred.

  - `message` (string)
    Human-readable error message providing details about what went wrong.

  - `reason` (string)
    Detailed explanation of why the error occurred, providing additional context.

  - `suggestion` (string)
    Actionable suggestion or recommendation for how to resolve or avoid this error.

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `requestId` (string)
    Unique identifier for the request that generated this error, used for tracking and debugging purposes.

  - `error` (object)
    Error response containing detailed error information including error codes, messages, reasons, and suggestions for resolution.

  - `error.code` (string)
    Unique error code identifying the specific type of error that occurred.

  - `error.message` (string)
    Human-readable error message providing details about what went wrong.

  - `error.reason` (string)
    Detailed explanation of why the error occurred, providing additional context.

  - `error.suggestion` (string)
    Actionable suggestion or recommendation for how to resolve or avoid this error.

