THE LINUX FOUNDATION PROJECTS
Docs navigation
On this page

    3.1.29 Commitment Program Eligibility Details

    Dataset: Cost and Usage
    Column Type: Dimension
    Feature Level: Conditional
    Data Type: JSON
    Since: 1.4

    Commitment Program Eligibility Details identifies the commitment programs that could potentially cover charges, subject to service provider constraints. By distinguishing the pool of spend that was eligible to be covered, Commitment Program Eligibility Details provides the fundamental denominator for calculating precise commitment coverage metrics. This allows FinOps practitioners to accurately size the pool of uncovered spend that could realistically be covered by a future commitment. In this context, commitment programs include discount-bearing programs such as commitment discounts and capacity reservations, provided the service provider treats them as commitments.

    3.1.29.1 Requirements

    3.1.29.1.1 Column Requirements

    CommitmentProgramEligibilityDetails MUST adhere to the following requirements:

    • CommitmentProgramEligibilityDetails MUST be of type JSON Object (serialized as a String where necessary).
    • CommitmentProgramEligibilityDetails MUST conform to StringHandling requirements.
    • CommitmentProgramEligibilityDetails MUST conform to JsonObjectFormat requirements.
    • CommitmentProgramEligibilityDetails MUST NOT be null when a charge is eligible for a commitment program, regardless of whether a commitment was actually applied to the charge.
    • CommitmentProgramEligibilityDetails MUST NOT reflect restrictions (e.g., transient account configurations, quotas) that might temporarily prevent purchase or participation in a commitment program.
    • CommitmentProgramEligibilityDetails MUST include all publicly available commitment programs for which the usage is eligible.
    • CommitmentProgramEligibilityDetails MAY include negotiated commitment programs when the usage is eligible and the program is not broadly applicable across the service provider's service catalog.
    • CommitmentProgramEligibilityDetails MUST NOT include data related to commitment periods or payment options.
    • CommitmentProgramEligibilityDetails MUST conform to CommitmentProgramEligibilityDetailsObject requirements when CommitmentProgramEligibilityDetails is not null.

    3.1.29.2 Commitment Program Eligibility Details Object

    Commitment Program Eligibility Details consists of a valid JSON object with a top-level property key CommitmentPrograms containing an array of objects describing the specific commitment programs available for the usage charge.

    3.1.29.2.1 Object Requirements

    CommitmentProgramEligibilityDetailsObject MUST adhere to the following requirements:

    • CommitmentProgramEligibilityDetailsObject MUST conform to the CommitmentProgramEligibilityDetailsObjectSchema JSON Schema.
    • CommitmentProgramEligibilityDetailsObject.CommitmentPrograms[*].ProgramType MUST correspond to a commitment program type supported by the service provider.
    • CommitmentProgramEligibilityDetailsObject.CommitmentPrograms[*].ProgramType MUST match CommitmentDiscountType for one object in CommitmentProgramEligibilityDetailsObject.CommitmentPrograms when CommitmentDiscountType is not null.
    • CommitmentProgramEligibilityDetailsObject.CommitmentPrograms[*].ProgramType SHOULD correspond to terminology disclosed by the service provider in public documentation.

    3.1.29.2.2 Object Schema Structure

    Top-Level Properties
    Property Type Required Description
    CommitmentPrograms Array True Array of objects identifying commitment programs for which the usage is eligible.
    CommitmentPrograms Object

    The CommitmentPrograms array contains one or more objects, each of which contains the following entries:

    Key ValueType Required Description
    ProgramType String True The specific type of commitment program (e.g., discount or capacity reservation) available for this usage.

    3.1.29.2.3 Object Implementation Guidance

    Custom Properties

    To facilitate querying data across allocations and across service providers, a data generator may include one or more custom properties. These may be placed at the top level of the object (alongside CommitmentPrograms) or nested within the individual CommitmentPrograms objects. Custom keys must be prefixed with "x_" followed by PascalCase format (e.g., x_MyCustomKey) to make them easy to identify as well as prevent collisions with FOCUS-defined keys.

    3.1.29.2.4 Object Example

    Here is a basic example of the object format.

    {
      "CommitmentPrograms": [
        { "ProgramType": "Flexible Spend Plan" },
        { "ProgramType": "Resource Reservation" },
        { "ProgramType": "Advance Resource Commitment" },
        { "ProgramType": "Zonal Resource Commitment" }
      ]
    }
    

    3.1.29.2.5 Object ID

    CommitmentProgramEligibilityDetailsObject

    3.1.29.2.6 Object Display Name

    Commitment Program Eligibility Details Object

    3.1.29.5 Description

    The types of commitment programs available for a specific usage row.

    Constraints

    Property Value
    Column Type Dimension
    Feature Level Conditional
    Allows Nulls Yes
    Data Type JSON
    Value Format JSON Object Format