Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ADMIN] Candidate recommendation v1 1 #599

Merged
merged 53 commits into from
Oct 9, 2024

Conversation

jpradocueva
Copy link
Contributor

@jpradocueva jpradocueva commented Oct 9, 2024

This PR is to prepare the Candidate Release v1.1.

TDubovchenko and others added 30 commits May 17, 2024 15:42
Fixed incorrect alphabetical order in Table of Contents.
This PR outlines the planned release schedule and key milestones for the
FOCUS project. It includes the scope and high-level system requirements
for each version, as well as detailed timelines for the development and
review processes of the upcoming releases.
This PR fixes the commit history link in the changelog for 1.0. The
previous link included more than just the 1.0 changes.
#478)

Update RELEASE_PLANNING Content:
* Change Jun 27 to Jul 18 as new milestone for approval v1.1 scope
* Move interim Consistency Review to July 18 to Aug 1st
* Add first Release v1.1 scope topic: Improve SKU Details"
…FOCUS Membership doc. (#480)

It was identified that the reference to the Patent Policy was incorrect
in the license document. It should be listed as Option 4, W3C mode,
stated in the FOCUS Membership Agreement rather than Patent Policy
Option 3: Open Web Foundation 1.0 Mode. See the screenshot below with
the correct reference to the W3C Mode patent.


![image](https://github.com/FinOps-Open-Cost-and-Usage-Spec/FOCUS_Spec/assets/3258579/25d47b58-7ae1-4a37-ad2a-443501ea1992)
I think we have the wrong word at the very beginning. This is supposed
to be billing period end.
There is a duplicated entry in the glossary which needs to be removed.

---------

Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
This just cleans up outdated supporting content

---------

Co-authored-by: chandra-cloudtrakr <111657294+chandra-cloudtrakr@users.noreply.github.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
### Enhance Template: `issue feedback `
This addition explicitly requests users to provide relevant data or data
extracts along with their feedback. It emphasizes the importance of data
in supporting discussions and decision-making while reminding submitters
to ensure that the data is anonymized and compliant with privacy
guidelines.

### Enhance Template: `discussion Topic`
This YAML replaces the previous `discussion-topic.md` file. It defines
the structure and content of the GitHub issue form for discussing broad
topics within the FOCUS community. It ensures that all necessary
information is gathered effectively, including an optional field for
attaching relevant data, which will support the discussion with tangible
examples.

### Enhance Template: `maintenance`
This YAML template is structured to gather essential information about
maintenance tasks within the GitHub repository or actions. The format
ensures clarity and specificity in the task descriptions and outcomes,
facilitating effective task management and completion.

### Enhance Template: `spec-change`
This template provides a YAML format for submitting specification
changes, ensuring that all relevant information is captured, including
the type of issue, whether the issue is normalized, a detailed
description, a clear definition of what constitutes completion of the
task, and an optional section for additional context or supporting
information. This approach ensures clarity and facilitates the efficient
management of specification changes.
)

Correct ConsumedUnit column type to Dimension from Metric (similar to
PricingUnit) because it is an attribute of how the consumption is
measured and is not able to have mathematical operations applied to it.
**Irena** and **Udam** have been working offline to formalize the scope
for FOCUS v1.1. This proposal is based on the current discussions and
Issues discussed in the three Task Forces (TF-1, TF-2, and TF-3).

In a nutshell, here is what Udam and I are proposing:

> _**SKU and SKU Price Details**_
> _Provide deeper visibility into SKU and SKU Price details (in addition
to the current SKU and SKU Price IDs that are available in FOCUS) which
enables many standard FinOps use cases from cost reporting to commitment
optimization._
>
>_**Deeper service classification**_
>_Move beyond the highest-level service categorization to a
sub-categorization for services while adding flexibility for providers
to share their native categorizations within FOCUS._
>
>_**Capacity Reservation**_
>_Ability to represent on-demand capacity reservations within FOCUS
datasets_
>
>_**Improved metadata support**_
>_Strengthen the correlation between FOCUS-compatible datasets and the
corresponding metadata to better support data analysis and ETL use
cases._

If everyone agrees, we could add that to the Release Planning as a
high-level scope for FOCUS 1.1.
Resolving #472 

### Acceptance
- [ ] select a term to used to describe a FOCUS compliant dataset
- [ ] defining term in glossary
- [ ] maintain consistent usage of term across specification and
changelog, etc.
- [ ] add glossary anchors where needed
- [ ] confirm convention for referring to a generic potentially
noncompliant dataset from a provider

### Proposed term and definition
`FOCUS Dataset`
`A structured collection of cost and usage data that meets or exceeds
the Basic compliance criteria of FOCUS.`

---

### Open Questions

When to retain use of `billing data`
 - When used in general context of FinOps data at large

#### Examples
Overview.md
>FOCUS aims to establish a community-driven specification for
consumption-based _billing data_.

>_Billing data_ generators: Infrastructure and services providers that
bill based on consumption

Readme.md
>The FOCUS spec will make it easier to merge multiple _billing data_
sources together

---

### Notes

- Term replaces instances of `-`, `billing data`, and `cost data` in
normative statements
- Term does not refer to dataset supplied/created/provided by the spec
- Term refers to dataset that is being described by normative statements
   - a dataset that meets certain compliance criteria

---------

Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
…charge records (#505)

Specification and supporting content update.

In case of late arriving costs, there might not be previous charges that
we are explicitly correcting, but rather correcting the invoiced billing
period as a whole.

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Co-authored-by: Christopher Harris <cnharris@gmail.com>
…arge Category' (#527)

Since 'Charge Subcategory' was rolled up into 'Charge Category', remove
all references.
…ommitment discount" (or similar) to match updated iteration of term in FinOps Terminology page. (#524)

Rename all mentions on "commitment-based discount" (or similar) to
"commitment discount" (or similar) to match updated iteration of term in
FinOps Terminology page:
https://www.finops.org/assets/terminology/#commitment-discounts

<img width="927" alt="image"
src="https://github.com/user-attachments/assets/57ca1e6e-be3b-4804-8d81-c7acf1daeeb6">

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
This PR supersedes PR #499

---------

Co-authored-by: Karl <133434112+kk09v@users.noreply.github.com>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
This change is dependent on #503 being merged as it links to
SkuPriceDetails. This change to SkuPriceId solves for a case where a
provider does not have a SkuPriceId but wants to include
SkuPriceDetails. This case was introduced when there was a change in
scope of #503 to not include SkuDetails.

Changes:
- Reformatted normative to bullets
- Added option (MAY) to repeat SkuId as SkuPriceId when there is no
SkuPriceId, as long as other conditions are not violated.

---------

Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Proposal based on Action Items, TF-3, Aug 16:


[TF3-[#397](#397)]
George will draft a PR for the new “ID” and “Status” columns related to
ODCRs.

[TF3-[#397](#397)]
to consult AWS for further guidance on the feasibility of providing a CR
ID in the billing data.

---------

Co-authored-by: Christopher Harris <cnharris@gmail.com>
Co-authored-by: Alex Hullah <alex.hullah@ln.email.gs.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Introduction of _KeyValueFormat_ columns _SkuDetails_ and
_SkuPriceDetails_ to capture properties of a **SKU ID** and **SKU Price
ID**, respectively.

**Lead Maintainer**: Karl
### Documents: 
*
[#497](#497)
SKU Price Details (Issue)
* Folder:
[#497-srv-SKU-details-SKU-price-details](https://drive.google.com/drive/folders/1kbNNasX0xZBbLrcs1MQK5s5zWyv9o8CD?usp=drive_link)
* PR
[#503](#503)
SKU Details + SKU PriceDetails Columns by
[karl.kraft@walmart.com](mailto:karl.kraft@walmart.com)
* PR
[#530](#530)
#503a - Update SkuPriceId per SkuPriceDetails by
[karl.kraft@walmart.com](mailto:karl.kraft@walmart.com)
* Spreadsheet:[
24.07.17-AzureEA-FOCUS-and-PriceList-sample-dataset](https://docs.google.com/spreadsheets/d/1qoy5OjFeZFIK5fuVUKGiI_yCfN5_9tBxVBaRVlBgXtA/edit?gid=240278343#gid=240278343)
* Document from Joseph:[ SKU Details from
Providers](https://docs.google.com/document/d/1zPEUZ5L5wf9YAJ63ymW3tyrOFx-krJBB6sf1bHU_oOs/edit#heading=h.p2oplf92wckb)

---------

Co-authored-by: Joaquin <jprado@standardshub.io>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
No change to content, just makes the `working_draft` branch pass builds
1. Adds `capacityreservation{id,status}` columns to `columns.mdpp` file.
2. Adds linter correction across all capacityreservation*, sku* columns:
  - `-` --> `*` bullets
  - spaces around lists
…arately from consumed quantity/unit columns (#400)

**Lead Maintainers**: Chris Harris, @cnharris10, Irena Jurica, @ijurica
### Documents: 
* **PR**:
[#400](#400)
Commitment Utilization and Normalization
* **PR**:
[#524](#524)
rename Commitment-Based Discount to Commitment-Discount by
[christopher.harris@datadoghq.com](mailto:christopher.harris@datadoghq.com)
* [Usage vs Pricing Quantity and unit
examples](https://docs.google.com/spreadsheets/d/1zA0brhrEntfWlzt5VNcNLBFnKPEiarajTF84o4ATeEw/edit?gid=1705742856#gid=1705742856)
*
[24.07.21-CommitmentUtilization-sample-datasets](https://docs.google.com/spreadsheets/d/1AYDPZ4rl90PPEbyQJUaGCUSwZ4s_sfy-8sO2KyNq0aM/edit?usp=drive_link)
*
[#400-commitment-utilization](https://drive.google.com/drive/u/0/folders/1u4_rc6TAqgMwuIQEKUVIX3zAzyvLM7Dj)
folder
* Document: [24.09.08 - Commitment utilization
discussion](https://docs.google.com/document/d/1bOD6MYoFi0fX-MgLyN-hxUpNOSfojlsL0MSt3menOxk/edit?usp=sharing)
* **Slack channel**:
[#tf-commitment-utilization](https://f2-focus.slack.com/archives/C07CPAQDN75)
* Approval deadline: ~Aug 29~, Sep 5


# Related PR's (Appendices):
- #528
- #535

# Key Points
- Adds 3 new columns to track CSP usage-based and spend-based
commitments: `CommitmentDiscountConsumedQuantity`,
`CommitmentDiscountPurchasedQuantity`, `CommitmentDiscountUnit`
- `CommitmentDiscountConsumedQuantity` captures the commitment units
used or unused in a charge period.
- `CommitmentDiscountPurchasedQuantity` captures the commitment units
purchased for one-time and recurring charge periods.
- `CommitmentDiscountUnit` captures the unit that the commitment
discount specifies.
- Fixes a 1.0 bug by specifying that `ConsumedQuantity` and
`ConsumedUnit` MUST be NULL for unused commitment rows. (reference
[pr](#507))
- Further scopes the definition of `commitment discount` and `negotiated
discount` within the glossary and specifies that `CommitmentDiscount*`
columns only correspond to `commitment discounts`.

## UPDATE (8/16/24)
1. Columns renamed to: `CommitmentDiscountConsumedQuantity`,
`CommitmentDiscountUnit`, `CommitmentDiscountPurchaseQuantity`
2. `{List,Contracted}UnitPrice`, `Pricing{Quantity,Unit}` are null when
`CommitmentDiscountStatus:Unused`
3. `{List,Contracted}Cost` are 0 when `CommitmentDiscountStatus:Unused`
4. New, official glossary terms incorporated from FinOps page for
[`commitment-based
discount`](https://www.finops.org/assets/terminology/#commitment-discounts)
and [`negotiated
discount`](https://www.finops.org/assets/terminology/#cloud-cost-management-terminology)

## UPDATE (8/19/24)
1. `{List,Contracted}{Cost,UnitPrice}` and `Pricing{Quantity,Unit}`
columns now `0` or `null` when `CommitmentDiscountStatus:Unused` (TO BE
DISCUSSED in TF-1)
2. `{List,Contracted}{Cost,UnitPrice}` and `Pricing{Quantity,Unit}`
columns now in bullet-list format.
3. Correction-based normative text added by Irena.
4. This
[pr](#524)
exists to renaming all instances of
`/commitment[\-,\s]?based\sdiscount/i` to `commitment discount` (with
correct casing)

### Discussion Points (8/20/24)
1. 2 current views for columns: `{List,Contracted}{Cost,UnitPrice}` and
`Pricing{Quantity,Unit}` when `CommitmentDiscountStatus:Unused`
    a. Set all values to appropriate `null` or `0` values (current).
b. Set all values to the same values as the purchase record (if it
exists).
2. Currently, `PricingCategory MUST be "Committed" when
[CommitmentDiscountId](#commitmentdiscountid) is not null`. Should this
be changed to `Standard` for `Purchase` rows where the
`CommitmentDiscountId` is the `ResourceId`?
3. With commitment/negotiated discount definitions altered, is it clear
that current/planned `CommitmentDiscount*` columns are relevant for
commitment discounts and *not* negotiated discounts?

## UPDATE (8/21/24)
1. Includes a recurring purchase for each charge period of the term for
No/Partial Upfront commitments
- No Upfront Purchase - has all units for the charge period
- Partial Upfront Purchase - has 1/2 of the units for each charge period
2. Reverts changing guidance around these
`{List,Contracted}{Cost,UnitPrice}` and `Pricing{Quantity,Unit}`
columns.
3. Adds additional guidance commitment discount purchase is one-time vs.
recurring
4. Adds additional phrasing to differentiate commitment vs negotiated
discounts in each CommitmentDiscount* column.
5. Removes edit to resource name to further minimize pr size (for now)

## Update (8/22/24)
1. Changes to the ResourceId column have been reverted (no clause for
ResourceId to be null with an unused commitment discount)

## Update (8/31/24)
Given that this pr was not fully approved on 8/30, and there was
considerable feedback (but less time) to merge
`CommitmentDiscountConsumedQuantity` and
`CommitmentDiscountPurchasedQuantity` into 1 column, I've gone ahead
with this change to form column: `CommitmentDiscountQuantity`.

Practitioners can stil filter to purchases and committed usage like:
- Purchases: `ChargeCategory = 'Purchase' AND CommitmentDiscountId IS
NOT NULL`
- Committed Usage (Used): `ChargeCategory = 'Usage' AND
CommitmentDiscountStatus = 'Used' AND CommitmentDiscountId IS NOT NULL`
- Committed Usage (Unused): `ChargeCategory = 'Usage' AND
CommitmentDiscountStatus = 'Unused' AND CommitmentDiscountId IS NOT
NULL`.

## Update (9/3/24)
- Added a brief paragraph around size-flexibility within
`CommitmentDiscountQuantity`
- Added additional glossary terms: `size-flexibility`,
`instance-family`, `instance-type`, `instance-type-ratio`.
- `instance-type-ratio` is the proposal for a generic, "FOCUS" term for
`normalization factor` (AWS), or `size flexibility ratio` (Azure)

This change is meant to reduce the number of proposed columns *without*
changing *any* (meaningful) intent of the previous versions with 2
quantity columns. The last commit to this pr encapsulates this entire
change and can be backed out if the group does not approve of this
iteration.

## Update (9/10/24)
- Further generalize "size-flexibility" as "commitment flexibility" and
tie to provider requirements
- Further generalize unit suggestions

# Sample Data

https://docs.google.com/spreadsheets/d/1AYDPZ4rl90PPEbyQJUaGCUSwZ4s_sfy-8sO2KyNq0aM/edit?pli=1&gid=1976106562#gid=1976106562

# Normative Text (original version, adopted into pr)


https://docs.google.com/spreadsheets/d/1AYDPZ4rl90PPEbyQJUaGCUSwZ4s_sfy-8sO2KyNq0aM/edit?pli=1&gid=464941124#gid=464941124

---------

Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Graham <graham_murphy@sunsuper.com.au>
Co-authored-by: Larry Advey <104788770+ljadvey@users.noreply.github.com>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
Fixes an incorrect column name reference. No functional changes.

---------

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
…chase records as Standard instead of Committed (#533)

**Lead Maintainer**: Irena

Classify commitment discount purchase records as Standard instead of
Committed, by rephrasing the following requirement:

> * PricingCategory MUST be "Committed" when
[CommitmentDiscountId](#commitmentdiscountid) is not null.

New version:

> * PricingCategory MUST be "Committed" when
[CommitmentDiscountId](#commitmentdiscountid) is not null, except when
ChargeCategory is "Purchase" and the [ResourceId](#resourceid) matches
the CommitmentDiscountId.

or 

> * PricingCategory MUST be "Committed" when
[CommitmentDiscountId](#commitmentdiscountid) is not null, except when
ChargeCategory is "Purchase" and the [ResourceId](#resourceid) matches
the CommitmentDiscountId, representing a charge related to the purchase
of that commitment discount.

---------

Co-authored-by: Alex Hullah <alex.hullah@ln.email.gs.com>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
)

Old: `[*commitment discount*](#glossary:commitment-discount)identified`
New: `[*commitment discount*](#glossary:commitment-discount) identified`
Improvements to schema metadata including examples.

---------

Co-authored-by: Christopher Harris <cnharris@gmail.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Shawn Alpay <77511110+salpaysenturus@users.noreply.github.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Introduction of column _ServiceSubcategory_ underneath the existing
column _ServiceCategory_ to capture finer grouping detail for Services.

**Lead Maintainer**: Shawn Alpay, @salpaysenturus 
### Documents: 
* [Categorization
principles](https://github.com/FinOps-Open-Cost-and-Usage-Spec/FOCUS_Spec/blob/working_draft/supporting_content/columns/servicecategory.md)
* **Slack channel**: “[#
tf-service-categorization](https://f2-focus.slack.com/archives/C07A21GKUCD)”
* **Folder**:[
#404-subcategories](https://drive.google.com/drive/u/0/folders/134b1Alk5zDHy77iGh3Sv2a_J7zext-LP)
* **Presentation**:[ Service
Subcategories](https://docs.google.com/presentation/d/1kzndJctjrXROoSodF88ehaMWJXt8Nl9EkuohVCv1ilI/edit#slide=id.p)
* **Spreadsheet**: [24.06.27 Service
Subcategories](https://docs.google.com/spreadsheets/d/1aYq79sWp8TK4zbcSKUb-gRIBei3fERVwAgDJ5ezZf1w/edit?gid=0#gid=0)
* **PR**: [#519
](#519:
Service Subcategory
* **Approval deadline**: ~Aug 29~, Sep 5,

---------

Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
AWS-ZachErdman and others added 22 commits September 19, 2024 20:59
**Lead Maintainer**: Zach
### Documents: 
* Folder #495 : [SKU Properties & Providers
Alignment](https://drive.google.com/drive/u/0/folders/11CDin-7o7KNGrdCzgq7gdVwQFcJ2l8aq)
by Zach moved to folder #495
* Document: [SKU Details from Providers
(FOCUS)](https://docs.google.com/document/d/1PdF8VQ5Ad4kDmrTlSEzWGOitwyEeQHR5B13hPWArMg0/edit#heading=h.ezdq0hltg6)
* Spreadsheet: [24.08.08 -
Alternative-Column-Names-for-UsageType](https://docs.google.com/spreadsheets/d/1-n_-z1bWKKwEbSXfiICHl0ff-uC9qAdDaDYhQGsagEM/edit?usp=sharing)
* PR
[#516](#516)
Initial Draft of UsageType
* Approval date: Sep 05

---------

Co-authored-by: Christopher Harris <cnharris@gmail.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Co-authored-by: Karl <133434112+kk09v@users.noreply.github.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
An appendix detailing how various commitment discount purchases and
usage records are modeled through various examples.

---------

Co-authored-by: Shawn Alpay <77511110+salpaysenturus@users.noreply.github.com>
Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Co-authored-by: AWS-ZachErdman <157180770+AWS-ZachErdman@users.noreply.github.com>
Co-authored-by: Karl <133434112+kk09v@users.noreply.github.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Change `[SKU](glossary:sku)` to `[*SKU*](glossary:sku)` (italicized)
…y as "commitment discount flexibility" (#545)

### Documents:
* PR
[#545](#545)
Normalize all instances of commitment discount flexibility as
"commitment discount flexibility"


"Commitment Flexibility" -> "Commitment Discount Flexibility"
Changelog updates for FOCUS 1.1

---------

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Co-authored-by: Christopher Harris <cnharris@gmail.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Someone in the FOCUS User Group was asking about Resource Group, and I
pointed them to the supporting content for SubaccountID. There, I
noticed that the table format was broken. I just repaired it.

Co-authored-by: Shawn Alpay <77511110+salpaysenturus@users.noreply.github.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
…nesting, formatting (#543)

Fixes include fixing missing content linking, broken links, formatting,
and some content bugs.
…ion charges (#549)

Standardize the column specifications, i.e. allow nulls in the case of
corrections for all columns except cost metrics, and explicitly define
value ranges for all metrics, for the following columns:

- PricingUnit
- ConsumedUnit
- CommitmentDiscountUnit
- PricingQuantity
- ConsumedQuantity
- CommitmentDiscountQuantity
- ListCost
- ContractedCost
- ListUnitPrice
- ContractedUnitPrice

---

### NOTE:

An initial overall analysis of the current correction handling and value
ranges was conducted within this PR.
Due to deadlines, **the scope of this particular PR was limited to
addressing the following two columns**:

- **ConsumedUnit**
- **ConsumedQuantity**

Please use this
[table](https://docs.google.com/spreadsheets/d/1SvaD-PSzxwRKExKYbQXbtEmVPtbhN4HnycOatvLfGPI/edit?gid=1823426118#gid=1823426118)
to verify the normative requirements.

---------

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Fixes based on discussions at the consistency review meeting on 9/25.

---------

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
…ricing_category as "Standard" (#579)

Co-authored-by: AWS-ZachErdman <zserdman@amazon.com>
`Commitment Discount Visibility` --> Provide deeper visibility into how
various commitment discount purchases are amortized across eligible
resources.
Adds correction-based logic and reduces duplication of clauses

---------

Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
This pull request provides a draft list of FOCUS members who contributed
to the FOCUS Release v1.1 specifications through various means,
including submitting pull requests, reviewing existing submissions, or
actively participating in discussions.

---------

Co-authored-by: Karl <133434112+kk09v@users.noreply.github.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Adding Usability Constraints for Aggregation, to support commitment
utilization calculation

---------

Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
Co-authored-by: Christopher Harris <cnharris@gmail.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
_The changes in this PR are in accordance with the agreement that we
will continue to use the previous version of the editorial guidelines in
FOCUS version 1.1 (for details, see the table below)._

<table>
    <tr>
        <th width="20%">Component</th>
        <th width="30%">Markdown (examples)</th>
        <th width="50%">Editorial Guidelines</th>
    </tr>
    <tr>
        <td><strong>Column Names</strong>:</td>
        <td>
            <strong>Column Names</strong>:<br>
            Pricing Quantity<br>
            Pricing Unit<br>
            Provider<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the display name in the introductory (non-normative) section and
description.</li>
<li>The first occurrence in a section is linked to the section, except
when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Attribute Names</strong>:</td>
        <td>
            <strong>Attribute Names</strong>:<br>
             Currency Code Format<br>
            Date/Time Format<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the attribute display name in the introductory (non-normative)
section, description, normative section, and content constraints
table.</li>
<li>The first occurrence in a section is linked to the section, except
when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Column IDs</strong>:</td>        
        <td>
            <strong>Column IDs</strong>:<br>
            PricingQuantity<br>
            PricingUnit<br>
            ProviderName<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the column ID in the normative section and when referencing
column values.</li>
<li>For column IDs, use PascalCase (the first letter of every word is
capitalized).</li>
<li>The first occurrence in a section is linked to the corresponding
column, except when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Glossary</strong></td>
        <td>
            [*SKU*](#glossary:sku) <br>
            [*resource*](#glossary:resource) <br>
            [*service*](#glossary:service) <br>
        </td>
        <td>
            <ul>
                <li>Italic.</li>
<li>The first occurrence in a section is linked to the glossary
term.</li>
            </ul>
        </td>
    </tr>
</table>

---------

Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
_The changes in this PR are in accordance with the agreement that we
will continue to use the previous version of the editorial guidelines in
FOCUS version 1.1 (for details, see the table below)._

<table>
    <tr>
        <th width="20%">Component</th>
        <th width="30%">Markdown (examples)</th>
        <th width="50%">Editorial Guidelines</th>
    </tr>
    <tr>
        <td><strong>Column Names</strong>:</td>
        <td>
            <strong>Column Names</strong>:<br>
            Pricing Quantity<br>
            Pricing Unit<br>
            Provider<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the display name in the introductory (non-normative) section and
description.</li>
<li>The first occurrence in a section is linked to the section, except
when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Attribute Names</strong>:</td>
        <td>
            <strong>Attribute Names</strong>:<br>
             Currency Code Format<br>
            Date/Time Format<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the attribute display name in the introductory (non-normative)
section, description, normative section, and content constraints
table.</li>
<li>The first occurrence in a section is linked to the section, except
when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Column IDs</strong>:</td>        
        <td>
            <strong>Column IDs</strong>:<br>
            PricingQuantity<br>
            PricingUnit<br>
            ProviderName<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the column ID in the normative section and when referencing
column values.</li>
<li>For column IDs, use PascalCase (the first letter of every word is
capitalized).</li>
<li>The first occurrence in a section is linked to the corresponding
column, except when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Glossary</strong></td>
        <td>
            [*SKU*](#glossary:sku) <br>
            [*resource*](#glossary:resource) <br>
            [*service*](#glossary:service) <br>
        </td>
        <td>
            <ul>
                <li>Italic.</li>
<li>The first occurrence in a section is linked to the glossary
term.</li>
            </ul>
        </td>
    </tr>
</table>

---

**Types of Editorial Changes:**

- Aligned the **formatting** of references to columns (display name, ID)
and glossary terms with the approach used in other columns.
- Aligned **formatting of references to format attributes** in normative
requirements, opting for the **attribute name instead of the attribute
ID** (_see Note for reasoning_):
- CommitmentDiscountUnit, ConsumedUnit and PricingUnit addressed in this
PR
  - SkuPriceDetails addressed in PR #588 
- Addressed several **missing and broken links** to columns and glossary
terms.

**Changes applied to the following columns:**

- Commitment Discount Quantity
- Commitment Discount Unit
- Consumed Unit
- Pricing Unit
- Service Subcategory

---

**Notes:** 

- I prefer using the attribute name over the attribute ID when
referencing formatting attributes, at least for now, considering:
- The attribute name was used in the Content Constraints tables in all
instances.
- The attribute name was used in the Normative Requirements in 13
instances.
- The attribute ID was used in the Normative Requirements in only 4
instances (CommitmentDiscountUnit, ConsumedUnit, PricingUnit,
SkuPriceDetails).
  
- In 2 instances (ChargePeriodStart and ChargePeriodEnd), although
listed in the constraints table, the requirement to follow the Date/Time
format wasn’t explicitly mentioned in the normative requirements
paragraph. I suggest addressing all Date/Time references in version 1.2
or later.
…590)

Editorial changes:

- Commitment Discounts
- Replaced column names previously formatted as code with links to
columns
  - Addressed several missing and broken links to glossary terms
- Grouping Constructs for Resources or Services
- Added links to billing account, sub account, resource and service
glossary terms
- Origination of Cost Data
  - Added links to Provider, Publisher and Invoice Issuer columns
  - Added links to resource and service glossary terms

---

_The changes in this PR are in accordance with the agreement that we
will continue to use the previous version of the editorial guidelines in
FOCUS version 1.1 (for details, see the table below)._

<table>
    <tr>
        <th width="20%">Component</th>
        <th width="30%">Markdown (examples)</th>
        <th width="50%">Editorial Guidelines</th>
    </tr>
    <tr>
        <td><strong>Column Names</strong>:</td>
        <td>
            <strong>Column Names</strong>:<br>
            Pricing Quantity<br>
            Pricing Unit<br>
            Provider<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the display name in the introductory (non-normative) section and
description.</li>
<li>The first occurrence in a section is linked to the section, except
when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Attribute Names</strong>:</td>
        <td>
            <strong>Attribute Names</strong>:<br>
             Currency Code Format<br>
            Date/Time Format<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the attribute display name in the introductory (non-normative)
section, description, normative section, and content constraints
table.</li>
<li>The first occurrence in a section is linked to the section, except
when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Column IDs</strong>:</td>        
        <td>
            <strong>Column IDs</strong>:<br>
            PricingQuantity<br>
            PricingUnit<br>
            ProviderName<br>
        </td>
        <td>
            <ul>
                <li>Normal text without bold or italics.</li>
<li>Use the column ID in the normative section and when referencing
column values.</li>
<li>For column IDs, use PascalCase (the first letter of every word is
capitalized).</li>
<li>The first occurrence in a section is linked to the corresponding
column, except when referring to itself.</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td><strong>Glossary</strong></td>
        <td>
            [*SKU*](#glossary:sku) <br>
            [*resource*](#glossary:resource) <br>
            [*service*](#glossary:service) <br>
        </td>
        <td>
            <ul>
                <li>Italic.</li>
<li>The first occurrence in a section is linked to the glossary
term.</li>
            </ul>
        </td>
    </tr>
</table>
Editorial changes (ordering):
- Columns
- Glossary terms
… normative paragraphs (#593)

**Type of Editorial change:**

Although attribute names were initially used for this purpose, for the
sake of consistency and in accordance with the agreement made during the
maintainers' meeting on Oct 8th, **switching from attribute names to
attribute IDs in the normative paragraphs**, while retaining attribute
names in the Content Constraints tables.

**Scope of this PR:**

This PR addresses references in the normative paragraphs of 12 columns
and Metadata - CreationDate.
For the remaining column, CommitmentDiscountQuantity, please refer to PR
#589.

---------

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Editorial changes:

- Replaced ...MUST be present in the billing data... with ...MUST be
present in a **[*FOCUS dataset*](#glossary:FOCUS-dataset)**... in the
following columns:
  - CapacityReservation
  - ChargeClass
  - ConsumedUnit
  - SkuMeter

- Added **links to the FOCUS dataset glossary term** for the remaining
columns and other instances where the FOCUS dataset is mentioned.

---

**Note:** For three columns, there are concurrent editorial PRs
addressing column ID formatting and making changes to the same code
line. To simplify the merge process and avoid conflicts, **links to the
FOCUS dataset term** are not included in this PR but have been **added
as suggestions in the respective PRs**:

- SKU Price Details (see PR #588)
- SKU Price ID (see PR #588)
- Pricing Unit (see PR #589)

---------

Co-authored-by: Joaquin <jprado@linuxfoundation.org>
[ADMIN] Blank PR to trigger a build.
@jpradocueva jpradocueva requested a review from a team as a code owner October 9, 2024 20:39
@jpradocueva jpradocueva merged commit 66c9566 into candidate_recommendation Oct 9, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: W.I.P
Development

Successfully merging this pull request may close these issues.