truenas.entitlements.check
==========================

Return the entitlement for ``feature`` computed from current system facts.

``POLICY`` is keyed by StrEnum members, so a plain feature name looks up the same rule.

.. raw:: html

    <div id="json-schema">
    <span class="badge badge-dark value-type">Type: object</span><br/>
    <div class="accordion" id="accordionCall_parameters">
    <div class="card">
    <div class="card-header" id="headingCall_parameters">
    <h2 class="mb-0">
    <button aria-controls="Call_parameters" aria-expanded="" class="btn btn-link property-name-button" data-target="#Call_parameters" data-toggle="collapse" onclick="setAnchor('#Call_parameters')" type="button"><span class="property-name">Call parameters</span></button>
    </h2>
    </div>
    <div aria-labelledby="headingCall_parameters" class="collapse property-definition-div" data-parent="#accordionCall_parameters" id="Call_parameters">
    <div class="card-body pl-5">
    <span class="badge badge-dark value-type">Type: array</span><br/>
    <span class="badge badge-info no-additional">No Additional Items</span><h4>Tuple Validation</h4>
    <h5>Parameter 1: feature</h5>
    <div class="card">
    <div class="card-body items-definition" id="Call_parameters_items_i0">
    <h4>feature</h4><span class="badge badge-dark value-type">Type: string</span><br/>
    <span class="description"><p>Feature identifier to evaluate. A feature this system does not gate is reported as <code>NOT_GATED</code>, the same as its absence from the <code>truenas.entitlements.info</code> map.</p>
    </span>
    <p><span class="badge badge-light restriction min-length-restriction" id="Call_parameters_items_i0_minLength">Must be at least <code>1</code> characters long</span></p>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    <div class="accordion" id="accordionReturn_value">
    <div class="card">
    <div class="card-header" id="headingReturn_value">
    <h2 class="mb-0">
    <button aria-controls="Return_value" aria-expanded="" class="btn btn-link property-name-button" data-target="#Return_value" data-toggle="collapse" onclick="setAnchor('#Return_value')" type="button"><span class="property-name">Return value</span></button>
    </h2>
    </div>
    <div aria-labelledby="headingReturn_value" class="collapse property-definition-div" data-parent="#accordionReturn_value" id="Return_value">
    <div class="card-body pl-5">
    <h4>EntitlementEntry</h4><span class="badge badge-dark value-type">Type: object</span><br/>
    <span class="description"><p>Entitlement decision for the requested feature.</p>
    </span> <span class="badge badge-info no-additional">No Additional Properties</span>
    <div class="accordion" id="accordionReturn_value_entitled">
    <div class="card">
    <div class="card-header" id="headingReturn_value_entitled">
    <h2 class="mb-0">
    <button aria-controls="Return_value_entitled" aria-expanded="" class="btn btn-link property-name-button" data-target="#Return_value_entitled" data-toggle="collapse" onclick="setAnchor('#Return_value_entitled')" type="button"><span class="property-name">entitled</span> <span class="badge badge-warning required-property">Required</span></button>
    </h2>
    </div>
    <div aria-labelledby="headingReturn_value_entitled" class="collapse property-definition-div" data-parent="#accordionReturn_value_entitled" id="Return_value_entitled">
    <div class="card-body pl-5">
    <h4>Entitled</h4><span class="badge badge-dark value-type">Type: boolean</span><br/>
    <span class="description"><p>Whether this system is entitled to use the feature.</p>
    </span>
    </div>
    </div>
    </div>
    </div>
    <div class="accordion" id="accordionReturn_value_reason">
    <div class="card">
    <div class="card-header" id="headingReturn_value_reason">
    <h2 class="mb-0">
    <button aria-controls="Return_value_reason" aria-expanded="" class="btn btn-link property-name-button" data-target="#Return_value_reason" data-toggle="collapse" onclick="setAnchor('#Return_value_reason')" type="button"><span class="property-name">reason</span> <span class="badge badge-warning required-property">Required</span></button>
    </h2>
    </div>
    <div aria-labelledby="headingReturn_value_reason" class="collapse property-definition-div" data-parent="#accordionReturn_value_reason" id="Return_value_reason">
    <div class="card-body pl-5">
    <h4>Reason</h4><span class="badge badge-dark value-type">Type: enum (of string)</span><br/>
    <span class="description"><p>Machine-readable classification of the decision:</p>
    <ul>
    <li><code>ENTITLED</code>: the feature is available</li>
    <li><code>NO_LICENSE</code>: no license is installed and the feature requires one</li>
    <li><code>KEY_MISSING</code>: a license is installed but does not carry this feature</li>
    <li><code>WRONG_HARDWARE</code>: this hardware can never provide the feature</li>
    <li><code>TIER_INSUFFICIENT</code>: the support tier does not cover the feature</li>
    <li><code>WRONG_LICENSE_TYPE</code>: the license type does not cover the feature</li>
    <li><code>NOT_GATED</code>: nothing on this system restricts the feature</li>
    </ul>
    <p>New values may be added; treat an unrecognized value as a generic denial.</p>
    </span><div class="enum-value" id="Return_value_reason_enum">
    <h5>Must be one of:</h5>
    <ul class="list-group"><li class="list-group-item enum-item">"ENTITLED"</li><li class="list-group-item enum-item">"NO_LICENSE"</li><li class="list-group-item enum-item">"KEY_MISSING"</li><li class="list-group-item enum-item">"WRONG_HARDWARE"</li><li class="list-group-item enum-item">"TIER_INSUFFICIENT"</li><li class="list-group-item enum-item">"WRONG_LICENSE_TYPE"</li><li class="list-group-item enum-item">"NOT_GATED"</li></ul>
    </div>
    </div>
    </div>
    </div>
    </div>
    <div class="accordion" id="accordionReturn_value_message">
    <div class="card">
    <div class="card-header" id="headingReturn_value_message">
    <h2 class="mb-0">
    <button aria-controls="Return_value_message" aria-expanded="" class="btn btn-link property-name-button" data-target="#Return_value_message" data-toggle="collapse" onclick="setAnchor('#Return_value_message')" type="button"><span class="property-name">message</span> <span class="badge badge-warning required-property">Required</span></button>
    </h2>
    </div>
    <div aria-labelledby="headingReturn_value_message" class="collapse property-definition-div" data-parent="#accordionReturn_value_message" id="Return_value_message">
    <div class="card-body pl-5">
    <h4>Message</h4><span class="badge badge-dark value-type">Type: string</span><br/>
    <span class="description"><p>Human-readable explanation of the decision. Empty when entitled.</p>
    </span>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div><br><br>

*Required roles:* SYSTEM_PRODUCT_READ

