From 84678b4697c84d5c962ee152774b60d7acaf34cd Mon Sep 17 00:00:00 2001 From: Michael Flanakin Date: Fri, 17 Nov 2023 13:02:31 -0800 Subject: [PATCH 1/2] BillingAccountType and SubAccountType --- specification/columns/billingaccounttype.md | 30 +++++++++++++++++++ specification/columns/columns.mdpp | 2 ++ specification/columns/subaccounttype.md | 30 +++++++++++++++++++ .../columns/billingaccounttype.md | 29 ++++++++++++++++++ supporting_content/columns/subaccounttype.md | 27 +++++++++++++++++ 5 files changed, 118 insertions(+) create mode 100644 specification/columns/billingaccounttype.md create mode 100644 specification/columns/subaccounttype.md create mode 100644 supporting_content/columns/billingaccounttype.md create mode 100644 supporting_content/columns/subaccounttype.md diff --git a/specification/columns/billingaccounttype.md b/specification/columns/billingaccounttype.md new file mode 100644 index 000000000..7a925e6aa --- /dev/null +++ b/specification/columns/billingaccounttype.md @@ -0,0 +1,30 @@ +# Billing Account Type + +Billing Account Type is the label the provider uses to describe the kind of the billing account. Billing Account Type is a readable display name and not a code. Billing Account Type is commonly used for scenarios like mapping FOCUS constructs to provider constructs and summarizing costs across providers. + +The BillingAccountType column MUST be present and MUST NOT be null or empty. This column MUST be of type String and MUST NOT be null when BillingAccountId is not null. When BillingAccountId is null, BillingAccountType MUST also be null. Providers MUST use a consistent value-format and a set of values for BillingAccountType values within their cost and usage datasets. + +## Column ID + +BillingAccountType + +## Display Name + +Billing Account Type + +## Description + +Label the provider uses to describe the kind of billing account. + +## Content Constraints + +| Constraint | Value | +| :-------------- | :--------------- | +| Column required | True | +| Data type | String | +| Allows nulls | False | +| Value format | \ | + +## Introduced (version) + +1.0 diff --git a/specification/columns/columns.mdpp b/specification/columns/columns.mdpp index f1d027b95..0a81447e3 100644 --- a/specification/columns/columns.mdpp +++ b/specification/columns/columns.mdpp @@ -6,6 +6,7 @@ The FOCUS specification defines a group of columns that provide qualitative valu !INCLUDE "billedcost.md",1 !INCLUDE "billingaccountid.md",1 !INCLUDE "billingaccountname.md",1 +!INCLUDE "billingaccounttype.md",1 !INCLUDE "billingcurrency.md",1 !INCLUDE "billingperiodend.md",1 !INCLUDE "billingperiodstart.md",1 @@ -44,6 +45,7 @@ The FOCUS specification defines a group of columns that provide qualitative valu !INCLUDE "skupriceid.md",1 !INCLUDE "subaccountid.md",1 !INCLUDE "subaccountname.md",1 +!INCLUDE "subaccounttype.md",1 !INCLUDE "tags.md",1 [FODOFC]: https://www.finops.org/framework/capabilities/ diff --git a/specification/columns/subaccounttype.md b/specification/columns/subaccounttype.md new file mode 100644 index 000000000..f300dbf9f --- /dev/null +++ b/specification/columns/subaccounttype.md @@ -0,0 +1,30 @@ +# Sub Account Type + +Sub Account Type is the label the provider uses to describe the kind of the sub account. Sub Account Type is a readable display name and not a code. Sub Account Type is commonly used for scenarios like mapping FOCUS constructs to provider constructs and summarizing costs across providers. + +The SubAccountType column MUST be present and MUST NOT be null or empty. This column MUST be of type String and MUST NOT be null when SubAccountId is not null. When SubAccountId is null, SubAccountType MUST also be null. Providers MUST use a consistent value-format and a set of values for SubAccountType values within their cost and usage datasets. + +## Column ID + +SubAccountType + +## Display Name + +Sub Account Type + +## Description + +Label the provider uses to describe the kind of sub account. + +## Content Constraints + +| Constraint | Value | +| :-------------- | :--------------- | +| Column required | True | +| Data type | String | +| Allows nulls | False | +| Value format | \ | + +## Introduced (version) + +1.0 diff --git a/supporting_content/columns/billingaccounttype.md b/supporting_content/columns/billingaccounttype.md new file mode 100644 index 000000000..d2e630fc7 --- /dev/null +++ b/supporting_content/columns/billingaccounttype.md @@ -0,0 +1,29 @@ +# Column: BillingAccountType + +## Example provider mappings + +Current column mappings found in available data sets: + +| Provider | Data set | Column | +| --------- | ----------------------- | ------------- | +| AWS | CUR | Not available | +| GCP | BigQuery Billing Export | Not available | +| Microsoft | Cost details | Not available | + +## Documentation + +- GCP: [Resource Hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy#resource-hierarchy-detail) +- Azure: [Organizing resources](https://learn.microsoft.com/azure/cost-management-billing/manage/view-all-accounts) +- AWS: [Org Concepts](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) + +## Example usage scenarios + +Current terms used by providers: + +| Provider | Scenario | Value | +| --------- | ------------- | -------------------- | +| AWS | Not available | "Management Account" | +| GCP | Not available | "Billing Account" | +| Microsoft | EA | "Billing Account" | +| Microsoft | MCA/MPA | "Billing Profile" | +| Microsoft | Other | "Subscription" | diff --git a/supporting_content/columns/subaccounttype.md b/supporting_content/columns/subaccounttype.md new file mode 100644 index 000000000..052d5d337 --- /dev/null +++ b/supporting_content/columns/subaccounttype.md @@ -0,0 +1,27 @@ +# Column: SubAccountType + +## Example provider mappings + +Current column mappings found in available data sets: + +| Provider | Data set | Column | +| --------- | ----------------------- | ------------- | +| AWS | CUR | Not available | +| GCP | BigQuery Billing Export | Not available | +| Microsoft | Cost details | Not available | + +## Documentation + +- GCP: [Resource Hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy#resource-hierarchy-detail) +- Azure: [Organizing resources](https://learn.microsoft.com/azure/cost-management-billing/manage/view-all-accounts) +- AWS: [Org Concepts](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) + +## Example usage scenarios + +Current terms used by providers: + +| Provider | Value | +| --------- | ---------------- | +| AWS | "Member Account" | +| GCP | "Project" | +| Microsoft | "Subscription" | From 609fb6dd69ae5592a8804e2fd939becafd56f240 Mon Sep 17 00:00:00 2001 From: Michael Flanakin Date: Fri, 17 Nov 2023 13:30:07 -0800 Subject: [PATCH 2/2] Added links and aligned with other Type columns --- specification/columns/billingaccounttype.md | 7 ++++--- specification/columns/commitmentdiscounttype.md | 4 ++-- specification/columns/subaccounttype.md | 7 ++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/specification/columns/billingaccounttype.md b/specification/columns/billingaccounttype.md index 7a925e6aa..78252ad66 100644 --- a/specification/columns/billingaccounttype.md +++ b/specification/columns/billingaccounttype.md @@ -1,8 +1,8 @@ # Billing Account Type -Billing Account Type is the label the provider uses to describe the kind of the billing account. Billing Account Type is a readable display name and not a code. Billing Account Type is commonly used for scenarios like mapping FOCUS constructs to provider constructs and summarizing costs across providers. +Billing Account Type is the label the provider uses to describe the kind of [*billing account*](#glossary:billing-account). Billing Account Type is a readable display name and not a code. Billing Account Type is commonly used for scenarios like mapping FOCUS constructs to provider constructs and summarizing costs across providers. -The BillingAccountType column MUST be present and MUST NOT be null or empty. This column MUST be of type String and MUST NOT be null when BillingAccountId is not null. When BillingAccountId is null, BillingAccountType MUST also be null. Providers MUST use a consistent value-format and a set of values for BillingAccountType values within their cost and usage datasets. +The BillingAccountType column MUST be present in the billing data. This column MUST be of type String, MUST be null when [BillingAccountId](#billingaccountid) is null, and MUST NOT be null when BillingAccountId is not null. BillingAccountType MUST be a consistent, readable display value within the billing data. ## Column ID @@ -20,9 +20,10 @@ Label the provider uses to describe the kind of billing account. | Constraint | Value | | :-------------- | :--------------- | +| Column type | Dimension | | Column required | True | -| Data type | String | | Allows nulls | False | +| Data type | String | | Value format | \ | ## Introduced (version) diff --git a/specification/columns/commitmentdiscounttype.md b/specification/columns/commitmentdiscounttype.md index 5a7ed12c7..faa13df1e 100644 --- a/specification/columns/commitmentdiscounttype.md +++ b/specification/columns/commitmentdiscounttype.md @@ -2,7 +2,7 @@ Commitment Discount Type is a provider-assigned name to identify the type of [*commitment-based discount*](#glossary:commitment-based-discount) applied to the [*row*](#glossary:row). -The CommitmentDiscountType column MUST be present in the billing data when the provider supports *commitment-based discounts*. This column MUST be of type String, MUST be null when [CommitmentDiscountId](#commitmentdiscountid) is null, and MUST NOT be null when CommitmentDiscountId is not null. +The CommitmentDiscountType column MUST be present in the billing data when the provider supports *commitment-based discounts*. This column MUST be of type String, MUST be null when [CommitmentDiscountId](#commitmentdiscountid) is null, and MUST NOT be null when CommitmentDiscountId is not null. CommitmentDiscountType MUST be a consistent, readable display value within the billing data. ## Column ID @@ -16,7 +16,7 @@ Commitment Discount Type A provider-assigned identifier for the type of *commitment-based discount* applied to the *row*. -## Content constraints +## Content Constraints | Constraint | Value | |:----------------|:-----------------| diff --git a/specification/columns/subaccounttype.md b/specification/columns/subaccounttype.md index f300dbf9f..2b74167d9 100644 --- a/specification/columns/subaccounttype.md +++ b/specification/columns/subaccounttype.md @@ -1,8 +1,8 @@ # Sub Account Type -Sub Account Type is the label the provider uses to describe the kind of the sub account. Sub Account Type is a readable display name and not a code. Sub Account Type is commonly used for scenarios like mapping FOCUS constructs to provider constructs and summarizing costs across providers. +Sub Account Type is the label the provider uses to describe the kind of [*sub account*](#glossary:sub-account). Sub Account Type is a readable display name and not a code. Sub Account Type is commonly used for scenarios like mapping FOCUS constructs to provider constructs and summarizing costs across providers. -The SubAccountType column MUST be present and MUST NOT be null or empty. This column MUST be of type String and MUST NOT be null when SubAccountId is not null. When SubAccountId is null, SubAccountType MUST also be null. Providers MUST use a consistent value-format and a set of values for SubAccountType values within their cost and usage datasets. +The SubAccountType column MUST be present in the billing data. This column MUST be of type String, MUST be null when [SubAccountId](#subaccountid) is null, and MUST NOT be null when SubAccountId is not null. SubAccountType MUST be a consistent, readable display value within the billing data. ## Column ID @@ -20,9 +20,10 @@ Label the provider uses to describe the kind of sub account. | Constraint | Value | | :-------------- | :--------------- | +| Column type | Dimension | | Column required | True | +| Allows nulls | True | | Data type | String | -| Allows nulls | False | | Value format | \ | ## Introduced (version)