Skip to content

Commit

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

Resource Type describes the kind of [*resource*](#glossary:resource) the charge applies to. A Resource Type is commonly used for scenarios like identifying cost changes in groups of similar *resources* and may include values like Virtual Machine, Data Warehouse, and Load Balancer.

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

* ResourceType MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports billing based on provisioned resources and supports assigning types to resources.
* If present, the column MUST conform to the following additional requirements:
* ResourceType MUST be of type String.
* ResourceType MUST conform to [String Handling](#stringhandling) requirements.
* ResourceType MUST be null if [ResourceId](#resourceid) is null.
* ResourceType MUST NOT be null if ResourceId is not null.

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

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

The Service Category is the highest-level classification of a [*service*](#glossary:service) based on the core function of the *service*. Each *service* should have one and only one category that best aligns with its primary purpose. The Service Category is commonly used for scenarios like analyzing costs across providers and tracking the migration of workloads across fundamentally different architectures.

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

* ServiceCategory MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset).
* ServiceCategory MUST be of type String.
* ServiceCategory MUST NOT be null.
* ServiceCategory MUST be one of the allowed values.

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

* The ServiceCategory column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null.
Expand Down
9 changes: 9 additions & 0 deletions specification/columns/servicename.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

A [*service*](#glossary:service) represents an offering that can be purchased from a provider (e.g., cloud virtual machine, SaaS database, professional services from a systems integrator). A *service* offering can include various types of usage or other charges. For example, a cloud database *service* may include compute, storage, and networking charges.

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

* ServiceName MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset).
* ServiceName MUST be of type String.
* ServiceName MUST conform to [String Handling](#stringhandling) requirements.
* ServiceName MUST NOT be null.

---
The Service Name is a display name for the offering that was purchased. The Service Name is commonly used for scenarios like analyzing aggregate cost trends over time and filtering data to investigate anomalies.

The ServiceName column adheres to the following requirements:
Expand Down
12 changes: 12 additions & 0 deletions specification/columns/servicesubcategory.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

The Service Subcategory is a secondary classification of the [Service Category](#servicecategory) for a [*service*](#glossary:service) based on its core function. The Service Subcategory (in conjunction with the Service Category) is commonly used for scenarios like analyzing spend and usage for specific workload types across providers and tracking the migration of workloads across fundamentally different architectures.

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

* ServiceSubcategory is RECOMMENDED to be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset).
* If present, the column MUST conform to the following additional requirements:
* ServiceSubcategory MUST be of type String.
* ServiceSubcategory MUST NOT be null.
* ServiceSubcategory MUST be one of the allowed values.
* ServiceSubcategory MUST have one and only one parent ServiceCategory as specified in the allowed values below.
* Though a given *service* can have multiple purposes, each *service* SHOULD have one and only one ServiceSubcategory that best aligns with its primary purpose

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

* ServiceSubcategory is RECOMMENDED to be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null.
Expand Down
11 changes: 11 additions & 0 deletions specification/columns/subaccountid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

A Sub Account ID is a provider-assigned identifier assigned to a [*sub account*](#glossary:sub-account). Sub Account ID is commonly used for scenarios like grouping based on organizational constructs, access management needs, and cost allocation strategies.

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

* SubAccountId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports a *sub account* construct.
* If present, the column MUST conform to the following additional requirements:
* SubAccountId MUST be of type String.
* SubAccountId MUST conform to [String Handling](#stringhandling) requirements.
* SubAccountId MUST be null when a charge is not related to a *sub account*.
* SubAccountId MUST NOT be null when a charge is related to a *sub account*.

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

* The SubAccountId column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports a *sub account* construct.
Expand Down
11 changes: 11 additions & 0 deletions specification/columns/subaccountname.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

A Sub Account Name is a display name assigned to a [*sub account*](#glossary:sub-account). Sub account Name is commonly used for scenarios like grouping based on organizational constructs, access management needs, and cost allocation strategies.

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

* SubAccountName MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports a *sub account* construct.
* If present, the column MUST conform to the following additional requirements:
* SubAccountName MUST be of type String.
* SubAccountName MUST conform to [String Handling](#stringhandling) requirements.
* SubAccountName MUST be null if [SubAccountId](#subaccountid) is null.
* SubAccountName MUST NOT be null if SubAccountId is not null.

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

* The SubAccountName column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports a *sub account* construct.
Expand Down

0 comments on commit 6f4c08e

Please sign in to comment.