3.3.2 Contract Commitment Applicability
Contract Commitment Applicability is a structured definition of the specific entities eligible for coverage under a contract commitment. This column details inclusionary and exclusionary logic, as well as the specific portion of eligible cost or usage that is applicable.
3.3.2.1 Requirements
3.3.2.1.1 Column Requirements
ContractCommitmentApplicability MUST adhere to the following requirements:
- ContractCommitmentApplicability MUST be of type JSON Object (serialized as a String where necessary).
- ContractCommitmentApplicability MUST conform to StringHandling requirements.
- ContractCommitmentApplicability MUST conform to JsonObjectFormat requirements.
- ContractCommitmentApplicability MUST conform to ContractCommitmentApplicabilityObject requirements.
- ContractCommitmentApplicability MUST NOT be null.
3.3.2.2 Contract Commitment Applicability Object
Contract Commitment Applicability consists of a valid JSON object which contains a set of top-level property keys. These keys define entity-based inclusionary and exclusionary logic, as well as the portion of relevant cost and/or usage that is applicable to the contract commitment.
The following section details the normative requirements for the ContractCommitmentApplicabilityObject and its nested properties. For a logical overview of the expected content, see the Schema Structure and Object Example sections.
3.3.2.2.1 Object Requirements
ContractCommitmentApplicabilityObject MUST adhere to the following requirements:
- ContractCommitmentApplicabilityObject MUST conform to the ContractCommitmentApplicabilityObjectSchema JSON Schema.
- ContractCommitmentApplicabilityObject.IsGlobalScope MUST be
truewhen the contract commitment applies to all entities. - ContractCommitmentApplicabilityObject.IsComplexScope MUST be
truewhen the contract commitment's applicability logic exceeds schema capabilities. - ContractCommitmentApplicabilityObject.Applicability.Cost MUST represent the fraction of an eligible charge's cost that is applicable to the commitment (0.0 to 1.0).
- ContractCommitmentApplicabilityObject.Applicability.Usage MUST represent the fraction of an eligible charge's usage that is applicable to the commitment (0.0 to 1.0).
- ContractCommitmentApplicabilityObject.Inclusions[*].Applicability.Cost MUST represent the fraction of an eligible charge's cost that is applicable to the commitment (0.0 to 1.0).
- ContractCommitmentApplicabilityObject.Inclusions[*].Applicability.Usage MUST represent the fraction of an eligible charge's usage that is applicable to the commitment (0.0 to 1.0).
- ContractCommitmentApplicabilityObject.Inclusions[*].Dimension SHOULD represent a column in Cost and Usage.
- ContractCommitmentApplicabilityObject.Exclusions[*].Dimension SHOULD represent a column in Cost and Usage.
- ContractCommitmentApplicabilityObject.Inclusions[*].Values MUST contain only the single string "*" when the wildcard is present.
- ContractCommitmentApplicabilityObject.Exclusions[*].Values MUST contain only the single string "*" when the wildcard is present.
3.3.2.2.2 Object Schema Structure
ContractCommitmentApplicability contains a structured JSON object defining the logical boundaries and the applicability percentage of a commitment.
| Property | Type | Required | Description |
|---|---|---|---|
IsGlobalScope |
Boolean | No | If true, the commitment applies to all entities. Defaults to false. |
IsComplexScope |
Boolean | No | If true, indicates logic exceeds schema capabilities. Defaults to false. |
Applicability |
Object | No | The fractional mapping for metrics. If omitted, both Cost and Usage keys default to 1.0. |
InclusionOperator |
String | Conditional | Required only if IsGlobalScope and IsComplexScope are both false or null. Valid values: And, Or. Must be omitted if Global or Complex scope is true. |
Inclusions |
Array | Conditional | Required only if IsGlobalScope and IsComplexScope are both false or null. List of Rule objects defining the boundary. Must be omitted if Global or Complex scope is true. |
ExclusionOperator |
String | Conditional | Required only if Exclusions are present. Defines the relationship for Exclusions. Valid values: And, Or. |
Exclusions |
Array | No | List of Rule objects defining entities to be removed from the boundary. |
| Key | Type | Description |
|---|---|---|
Dimension |
String | A valid FOCUS Column Name (e.g., SkuId, RegionId). |
Operator |
String | The comparison logic to apply. Must be one of the Supported Operators. |
Values |
Array | A list of strings to compare. A value of ["*"] acts as a global wildcard. |
Applicability |
Object | Optional. The specific fraction of applicability for entities matching this rule. Overrides the top-level Applicability. |
| Key | Type | Default | Description |
|---|---|---|---|
Cost |
Decimal | 1.0 | Fraction of an eligible charge's cost applicable to the contract commitment. |
Usage |
Decimal | 1.0 | Fraction of an eligible charge's usage applicable to the contract commitment. |
| Operator | Logic | Usage Example |
|---|---|---|
In |
Exact match against any item in the list. | ["us-east-1", "us-west-2"] |
NotIn |
Does not match any item in the list. | ["123456789"] |
StartsWith |
String prefix match. | ["prod-"] |
NotStartsWith |
Does not begin with the specified prefix. | ["test-"] |
Contains |
Substring match anywhere in the value. | ["database"] |
NotContains |
Substring is not present in the value. | ["sandbox"] |
EndsWith |
String suffix match. | ["-temp"] |
Exists |
Checks if the dimension is present and not null. | Values must be ["*"] |
DoesNotExist |
Checks if the dimension is missing or null. | Values must be ["*"] |
ContractCommitmentApplicability uses a reserved string to represent global or unrestricted boundaries within a specific Dimension.
| Reserved Value | Description | Supported Operators |
|---|---|---|
"*" |
Represents all possible values for the specified Dimension. | In, Contains, Exists, DoesNotExist |
- Inclusion Logic: When
["*"]is used in an Inclusion rule, the rule evaluates toTruefor every entity, effectively making the commitment "Organization-wide" for that specific Dimension. - Exclusion Logic: When
["*"]is used in an Exclusion rule, the rule evaluates toTruefor every entity, effectively excluding all entities (this is typically used only in combination withExclusionOperator: "And"for surgical filtering). - Implicit Wildcards: If a Dimension (e.g.,
RegionId) is omitted entirely from theInclusionsarray, it is treated as an implicit wildcard (unrestricted).
3.3.2.2.3 Object Implementation Guidance
The evaluation of an entity against a commitment applicability must follow a strict linear progression:
- Normalization: Convert the entity attribute and the Scope
Valuesto a consistent case (default: lowercase) for comparison. - Inclusion Evaluation: Iterate through
Inclusions. If a match is found, record the rule-levelApplicabilityif present. ApplyInclusionOperator. If result isFalse, terminate. - Exclusion Evaluation: Iterate through
Exclusions. IfTrue, terminate evaluation. - Applicability Resolution:
- Inheritance: A matching rule's
Applicabilityobject takes precedence over the top-level object. - Defaulting: If a metric key (
CostorUsage) is missing within a providedApplicabilityobject, the engine must default that specific value to1.0. - Rule-level Priority: Use the
Applicabilityfrom the matching inclusion rule. If multiple rules match underOr, the engine must use the highest percentage for each respective metric. - Fallback: Use the top-level
Applicabilityif no rule-level value is provided.
- Inheritance: A matching rule's
The evaluation of Applicability percentages must be contextually aligned with the Contract Commitment Model and Contract Commitment Fulfillment Interval:
- Continuous Models: Applicability percentages must be applied to each discrete unit of activity (e.g., every hour) within the Fulfillment Interval. If the commitment is not fully utilized by eligible entities within that hour, the remaining capacity expires.
- Discontinuous Models: Applicability percentages determine the portion of aggregate activity that counts toward fulfillment over the entire Interval (e.g., a full year).
- Consistency: Engines should expect a JSON Object and should not support scalar (Decimal/Float) values for this field to ensure compatibility with typed database schemas.
- Conflict Resolution: If
IsGlobalScopeorIsComplexScopeistrue, theInclusionsarray must be empty or omitted. Additionally,IsGlobalScopeandIsComplexScopemust both not betrueat the same time. Engines should validate these structural constraints before processing.
3.3.2.2.4 Object Example
Here is a basic example of the object format, describing organization-wide coverage except for Database services running in BillingAccountId 123456789012.
- For more detailed examples, please see this column's entry in the JSON Object Examples appendix entry here.
- For the JSON schema, please see Contract Commitment Applicability Object Schema.
{
"IsGlobalScope": true,
"ExclusionOperator": "And",
"Exclusions": [
{
"Dimension": "BillingAccountId",
"Operator": "In",
"Values": ["123456789012"]
},
{
"Dimension": "ServiceCategory",
"Operator": "In",
"Values": ["Database"]
}
]
}
3.3.2.2.5 Object ID
ContractCommitmentApplicabilityObject
3.3.2.2.6 Object Display Name
Contract Commitment Applicability Object
3.3.2.5 Description
A structured definition of the specific entities to which a contract commitment applies, including inclusion/exclusion logic and applicability percentages.
Constraints
| Property | Value |
|---|---|
| Column Type | Dimension / Metric |
| Feature Level | Mandatory |
| Allows Nulls | No |
| Data Type | JSON |
| Value Format | JSON Object Format |