Skip to content

Commit

Permalink
FOCUS #557: Normative requirements refinement - preview - part 4
Browse files Browse the repository at this point in the history
  • Loading branch information
ijurica committed Dec 10, 2024
1 parent fb273d1 commit 287a6fa
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 0 deletions.
11 changes: 11 additions & 0 deletions specification/columns/regionid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

A Region ID is a provider-assigned identifier for an isolated geographic area where a [*resource*](#glossary:resource) is provisioned or a [*service*](#glossary:service) is provided. The region is commonly used for scenarios like analyzing cost and unit prices based on where *resources* are deployed.

---
The RegionId column adheres to the following requirements:

* RegionId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports deploying resources or services within a region.
* If present, the column MUST conform to the following additional requirements:
* RegionId MUST be of type String.
* RegionId MUST conform to [String Handling](#stringhandling) requirements.
* RegionId MUST NOT be null when a *resource* or *service* is operated in or managed from a distinct region by the Provider.
* RegionId MAY be null when a *resource* or *service* is not restricted to an isolated geographic area.

---
The RegionId column adheres to the following requirements:

* The RegionId column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports deploying resources or services within a region and MUST be of type String.
Expand Down
11 changes: 11 additions & 0 deletions specification/columns/regionname.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

Region Name is a provider-assigned display name for an isolated geographic area where a [*resource*](#glossary:resource) is provisioned or a [*service*](#glossary:service) is provided. Region Name is commonly used for scenarios like analyzing cost and unit prices based on where *resources* are deployed.

---
The RegionName column adheres to the following requirements:

* RegionName MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports deploying resources or services within a region.
* If present, the column MUST conform to the following additional requirements:
* RegionName MUST be of type String.
* RegionName MUST conform to [String Handling](#stringhandling) requirements.
* RegionName MUST be null if [RegionId](#regionid) is null.
* RegionName MUST NOT be null if RegionId is not null.

---
The RegionName column adheres to the following requirements:

* The RegionName column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports deploying resources or services within a region and MUST be of type String.
Expand Down
13 changes: 13 additions & 0 deletions specification/columns/resourceid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

A Resource ID is an identifier assigned to a [*resource*](#glossary:resource) by the provider. The Resource ID is commonly used for cost reporting, analysis, and allocation scenarios.

---
The ResourceId column adheres to the following requirements:

* ResourceId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports billing based on provisioned resources.
* If present, the column MUST conform to the following additional requirements:
* ResourceId MUST be of type String.
* ResourceId MUST conform to [String Handling](#stringhandling) requirements.
* ResourceId MUST be null when a charge is not related to a *resource*.
* ResourceId MUST NOT be null when a charge is related to a *resource*.
* ResourceId MUST ensure global uniqueness within the provider.
* ResourceId SHOULD be a fully-qualified identifier.

---
The ResourceId column adheres to the following requirements:

* The ResourceId column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports billing based on provisioned resources.
Expand Down
12 changes: 12 additions & 0 deletions specification/columns/resourcename.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

The Resource Name is a display name assigned to a [*resource*](#glossary:resource). It is commonly used for cost analysis, reporting, and allocation scenarios.

---
The ResourceName column adheres to the following requirements:

* ResourceName MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports billing based on provisioned resources.
* If present, the column MUST conform to the following additional requirements:
* ResourceName MUST be of type String.
* ResourceName MUST conform to [String Handling](#stringhandling) requirements.
* ResourceName MUST be null if [ResourceId](#resourceid) is null or when the *resource* only has a system-generated ResourceId without an assigned display name.
* ResourceName MUST NOT be null if ResourceId is not null and the *resource* has an assigned display name.
* ResourceName SHOULD NOT duplicate ResourceId.

---
The ResourceName column adheres to the following requirements:

* The ResourceName column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports billing based on provisioned resources.
Expand Down
13 changes: 13 additions & 0 deletions specification/columns/skuid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

A SKU ID is a unique identifier that defines a provider-supported construct for organizing properties that are common across one or more [*SKU Prices*](#glossary:sku-price). SKU ID can be referenced on a catalog or [*price list*](#glossary:price-list) published by a provider to look up detailed information about the SKU. The composition of the properties associated with the SKU ID may differ across providers. Some providers may not support the [*SKU*](#glossary:sku) construct and instead associate all such properties directly with the *SKU Price*. SKU ID is commonly used for analyzing cost based on *SKU*-related properties above the pricing constructs.

---
The SkuId column adheres to the following requirements:

* SkuId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider publishes a SKU list.
* If present, the column MUST conform to the following additional requirements:
* SkuId MUST be of type String.
* SkuId MUST conform to [String Handling](#stringhandling) requirements.
* SkuId MUST be null if [ChargeCategory](#chargecategory) is "Tax".
* SkuId MUST NOT be null if ChargeCategory is "Usage" or "Purchase" and [ChargeClass](#chargeclass) is not "Correction".
* SkuId MAY be null in all other cases.
* SkuId MUST equal SkuPriceId when a provider does not support an overarching SKU ID construct.

---
The SkuId column adheres to the following requirements:

* The SkuId column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider publishes a SKU list.
Expand Down
16 changes: 16 additions & 0 deletions specification/columns/skupriceid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

A SKU Price ID is a unique identifier that defines the unit price used to calculate the charge. SKU Price ID can be referenced on a [*price list*](#glossary:price-list) published by a provider to look up detailed information, including a corresponding list unit price. The composition of the properties associated with the SKU Price ID may differ across providers. SKU Price ID is commonly used for analyzing cost based on pricing properties such as Terms and Tiers.

---
The SkuPriceId column adheres to the following requirements:

* SkuPriceId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider publishes a SKU price list.
* If present, the column MUST conform to the following additional requirements:
* SkuPriceId MUST be of type String.
* SkuPriceId MUST conform to [String Handling](#stringhandling) requirements.
* SkuPriceId MUST be null if [ChargeCategory](#chargecategory) is "Tax".
* SkuPriceId MUST NOT be null if ChargeCategory is "Usage" or "Purchase" and [ChargeClass](#chargeclass) is not "Correction".
* SkuPriceId MAY be null in all other cases.
* SkuPriceId MUST be associated with one and only one [SkuId](#skuid), except in cases of [commitment discount flexibility](#glossary:commitment-discount-flexibility).
* SkuPriceId MUST define a single unit price used for calculating the charge.
* [ListUnitPrice](#listunitprice) MUST be associated with the SkuPriceId in the provider published price list.
* When a provider does not have a SkuPriceId and wants to include information in columns linked to SkuPriceId such as ListUnitPrice or [SkuPriceDetails](#skupricedetails), the SkuId MAY be used in the SkuPriceId column as long as it adheres to the above conditions.

---
The SkuPriceId column adheres to the following requirements:

* SkuPriceId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider publishes a SKU price list and MUST be of type String.
Expand Down

0 comments on commit 287a6fa

Please sign in to comment.