From 440de4a946e89ba66946ba8841a18c50317e4cfc Mon Sep 17 00:00:00 2001 From: ijurica Date: Tue, 10 Dec 2024 14:45:48 +0100 Subject: [PATCH] FOCUS #557: Normative requirements refinement - preview - part 2 --- specification/columns/availabilityzone.md | 2 -- specification/columns/billedcost.md | 2 -- specification/columns/billingaccountid.md | 2 -- specification/columns/billingaccountname.md | 2 -- specification/columns/commitmentdiscountcategory.md | 13 +++++++++++++ 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/specification/columns/availabilityzone.md b/specification/columns/availabilityzone.md index d1404ee52..4244fba8b 100644 --- a/specification/columns/availabilityzone.md +++ b/specification/columns/availabilityzone.md @@ -3,7 +3,6 @@ An [*availability zone*](#glossary:availability-zone) is a provider-assigned identifier for a physically separated and isolated area within a Region that provides high availability and fault tolerance. Availability Zone is commonly used for scenarios like analyzing cross-zone data transfer usage and the corresponding cost based on where [*resources*](#glossary:resource) are deployed. --- - The AvailabilityZone column adheres to the following requirements: * AvailabilityZone is RECOMMENDED to be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports deploying resources or services within an *availability zone*. @@ -13,7 +12,6 @@ The AvailabilityZone column adheres to the following requirements: * AvailabilityZone MAY be null if a charge is not specific to an *availability zone*. --- - The AvailabilityZone column adheres to the following requirements: * The AvailabilityZone column is RECOMMENDED to be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports deploying resources or services within an *availability zone*. diff --git a/specification/columns/billedcost.md b/specification/columns/billedcost.md index 65bc3d1cc..e221e644b 100644 --- a/specification/columns/billedcost.md +++ b/specification/columns/billedcost.md @@ -3,7 +3,6 @@ The [*billed cost*](#glossary:billed-cost) represents a charge serving as the basis for invoicing, inclusive of the impacts of all reduced rates and discounts while excluding the [*amortization*](#glossary:amortization) of relevant purchases (one-time or recurring) paid to cover future eligible charges. This cost is denominated in the [Billing Currency](#billingcurrency). The Billed Cost is commonly used to perform FinOps capabilities that require cash-basis accounting such as cost allocation, budgeting, and invoice reconciliation. --- - The BilledCost column adheres to the following requirements: * BilledCost MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). @@ -14,7 +13,6 @@ The BilledCost column adheres to the following requirements: * The sum of the BilledCost for [*rows*](#glossary:row) in a given [*billing period*](#glossary:billing-period) MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account). --- - The BilledCost column adheres to the following requirements: * The BilledCost column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null. diff --git a/specification/columns/billingaccountid.md b/specification/columns/billingaccountid.md index 3d7550ab3..26c0969b8 100644 --- a/specification/columns/billingaccountid.md +++ b/specification/columns/billingaccountid.md @@ -3,7 +3,6 @@ A Billing Account ID is a provider-assigned identifier for a [*billing account*](#glossary:billing-account). *Billing accounts* are commonly used for scenarios like grouping based on organizational constructs, invoice reconciliation and cost allocation strategies. --- - The BillingAccountId column adheres to the following requirements: * BillingAccountId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). @@ -13,7 +12,6 @@ The BillingAccountId column adheres to the following requirements: * BillingAccountId MUST be a globally unique identifier within a provider. --- - The BillingAccountId column adheres to the following requirements: * The BillingAccountId column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). diff --git a/specification/columns/billingaccountname.md b/specification/columns/billingaccountname.md index 6a1ebc2b2..7ca94d02f 100644 --- a/specification/columns/billingaccountname.md +++ b/specification/columns/billingaccountname.md @@ -3,7 +3,6 @@ A Billing Account Name is a display name assigned to a [*billing account*](#glossary:billing-account). *Billing accounts* are commonly used for scenarios like grouping based on organizational constructs, invoice reconciliation and cost allocation strategies. --- - The BillingAccountName column adheres to the following requirements: * BillingAccountName MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). @@ -13,7 +12,6 @@ The BillingAccountName column adheres to the following requirements: * BillingAccountName MUST be unique within a customer. --- - The BillingAccountName column adheres to the following requirements: * The BillingAccountName column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null when the provider supports assigning a display name for the *billing account*. diff --git a/specification/columns/commitmentdiscountcategory.md b/specification/columns/commitmentdiscountcategory.md index 1dc413489..f268ed2fd 100644 --- a/specification/columns/commitmentdiscountcategory.md +++ b/specification/columns/commitmentdiscountcategory.md @@ -2,6 +2,19 @@ Commitment Discount Category indicates whether the [*commitment discount*](#glossary:commitment-discount) identified in the CommitmentDiscountId column is based on usage quantity or cost (aka "spend"). The CommitmentDiscountCategory column is only applicable to *commitment discounts* and not [*negotiated discounts*](#glossary:negotiated-discount). +--- +The CommitmentDiscountCategory column adheres to the following requirements: + +* CommitmentDiscountCategory MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports *commitment discounts*. +* If present, the column MUST conform to the following additional requirements: + * CommitmentDiscountCategory MUST be of type String. + * CommitmentDiscountCategory MUST conform to [String Handling](#stringhandling) requirements. + * CommitmentDiscountCategory MUST be null if [CommitmentDiscountId](#commitmentdiscountid) is null. + * If CommitmentDiscountId is not null, the following applies: + * CommitmentDiscountCategory MUST NOT be null. + * CommitmentDiscountCategory MUST be one of the allowed values. + +--- The CommitmentDiscountCategory column adheres to the following requirements: * The CommitmentDiscountCategory column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports *commitment discounts*.