diff --git a/docs/_resources/changelog.md b/docs/_resources/changelog.md index f6ce4e3dc..64cee392a 100644 --- a/docs/_resources/changelog.md +++ b/docs/_resources/changelog.md @@ -138,8 +138,15 @@ Legend: 🌐 Open data {: .fs-5 .fw-500 .mt-4 mb-0 } +> ➕ Added: +> +> - [Pricing units](../_reporting/data/README.md#-pricing-units) +> 1. Added handling for the following new UnitOfMeasure values: "1 /Minute", "10 PiB/Hour", "100000 /Month", "Text". +> > ✏️ Changed > +> - [Pricing units](../_reporting/data/README.md#-pricing-units) +> 1. Changed DistinctUnits for the "10000s" UnitOfMeasure from "Units" to "Transactions". > - [Services](../_reporting/data/README.md#️-services) > 1. Moved Microsoft Genomics from the "AI and Machine Learning" service category to "Analytics". > 2. Changed Microsoft Genomics from the "SaaS" service model to "PaaS". diff --git a/src/open-data/PricingUnits.csv b/src/open-data/PricingUnits.csv index 8ff15900c..9ddbe1bb3 100644 --- a/src/open-data/PricingUnits.csv +++ b/src/open-data/PricingUnits.csv @@ -3,6 +3,7 @@ UnitOfMeasure,AccountTypes,PricingBlockSize,DistinctUnits "1 ",EA,1,Units "1 /Day",EA,1,Units/Day "1 /Hour",EA,1,Units/Hour +"1 /Minute",EA,1,Units/Minute "1 /Month",EA,1,Units/Month "1 /Year",EA,1,Units/Year "1 1 Hour",EA,1,Hours @@ -144,6 +145,7 @@ UnitOfMeasure,AccountTypes,PricingBlockSize,DistinctUnits "10 PB Seconds",EA,10,PB Seconds "10 PB/Hour",EA,10,PB/Hour "10 PiB Seconds",EA,10,PiB Seconds +"10 PiB/Hour",EA,10,PiB/Hour "10 Pipelines",EA,10,Pipelines "10 Rotations",EA,10,Rotations "10 Service Endpoints",EA,10,Endpoints @@ -252,6 +254,7 @@ UnitOfMeasure,AccountTypes,PricingBlockSize,DistinctUnits "100000 ",EA,100000,Units "100000 /Day",EA,100000,Units/Day "100000 /Hour",EA,100000,Units/Hour +"100000 /Month",EA,100000,Units/Month "100000 Executions",EA,100000,Executions "100000 GB",EA,100000,GB "100000 GB Seconds",EA,100000,GB Seconds @@ -296,7 +299,7 @@ UnitOfMeasure,AccountTypes,PricingBlockSize,DistinctUnits "10000000000 ",EA,10000000000,Units "100000000000",EA,100000000000,Units "100000000000 ",EA,100000000000,Units -"10000s",MCA,1,Units +"10000s",MCA,1,Transactions "100K",MCA,100000,Units "1024 GB",EA,1024,GB "102400 TiB/Hour",EA,102400,TiB/Hour @@ -369,6 +372,7 @@ UnitOfMeasure,AccountTypes,PricingBlockSize,DistinctUnits "Minute(s)","MCA, EA",1,Minutes "Per Call","MCA, EA",1,Calls "Per Request",MCA,1,Requests +"Text",MCA,1,Messages "Unassigned",EA,1,Units "Unit",MCA,1,Units "Units",MCA,1,Units diff --git a/src/open-data/README.md b/src/open-data/README.md index 4efdf88d4..4083546eb 100644 --- a/src/open-data/README.md +++ b/src/open-data/README.md @@ -14,7 +14,7 @@ On this page: ## 📏 Pricing units - 📅 Updated: Jun 1, 2024
+ 📅 Updated: Aug 22, 2024
➡️ Source: Cost Management team
@@ -60,6 +60,7 @@ Meters | extend DistinctUnits = replace_regex(DistinctUnits, @'^Gb( ?/ ?Month)?$', @'GB\1') // // Clean up units per period +| extend DistinctUnits = iff(DistinctUnits matches regex '^[a-z]', strcat(toupper(substring(DistinctUnits, 0, 1)), substring(DistinctUnits, 1)), DistinctUnits) // Capitalize first word | extend DistinctUnits = replace_string(DistinctUnits, ' / ', '/') // Don't space out the slash | extend DistinctUnits = replace_regex(DistinctUnits, @'(App|Border|Call|Certificate|Connection|Day|Device|Domain|Hour|Key|Machine|Meter|Minute|Month|Node|Pack|Pipeline|Plan|Request|Resource|Second|Subscription|Unit|User|Website|Zone)(/.*)?$', @'\1s\2') // Always plural before slash | extend DistinctUnits = replace_regex(DistinctUnits, @'/(Second|Minute|Hour|Day|Month)s$', @'/\1') // Always singular after slash @@ -68,10 +69,11 @@ Meters | extend DistinctUnits = case( UnitOfMeasure == '10000s' and DistinctUnits == 'S', 'Transactions', DistinctUnits == '1,000s', 'Transactions in Thousands', - DistinctUnits in ('API Calls', 'print job'), 'Requests', + DistinctUnits in ('API Calls', 'Print job'), 'Requests', DistinctUnits == 'Concurrent DVC', 'Configurations', DistinctUnits == 'CallingMinutes', 'Minutes', DistinctUnits == 'Key Use', 'Keys', + DistinctUnits == 'Text', 'Messages', DistinctUnits == 'Unassigned', 'Units', DistinctUnits == 'VM', 'Virtual Machines', DistinctUnits in ('MAUS', 'MAUs'), 'Users/Month', @@ -81,7 +83,6 @@ Meters // Prefix cleanup | extend DistinctUnits = replace_regex(DistinctUnits, @'^1 ', '') // Remove duplicate quantity | extend DistinctUnits = replace_regex(DistinctUnits, @'^[\s\pZ\pC]+', '') // Remove leading spaces -| extend DistinctUnits = iff(DistinctUnits matches regex '^[a-z]', strcat(toupper(substring(DistinctUnits, 0, 1)), substring(DistinctUnits, 1)), DistinctUnits) // Capitalize first word | extend DistinctUnits = replace_regex(DistinctUnits, @'^(Per|Por) ', '') // Remove starting "per" | extend DistinctUnits = replace_regex(DistinctUnits, @'^(Activity|Border|Content|Core|Database|Hosted|Instance|Messaging|Named|Operation|Privacy Subject Rights|Relay|Reserved|Service|Virtual User) ', '') // Trim extra adjectives // @@ -91,8 +92,6 @@ Meters | extend DistinctUnits = replace_regex(DistinctUnits, @'\(s\)$', 's') // Always plural // | order by UnitOfMeasure asc -// Write as a single column with quotes to maintain spaces for easy copy/paste to CSV -- -| project ["UnitOfMeasure,AccountTypes,PricingBlockSize,DistinctUnits"] = strcat('"', UnitOfMeasure, '",', iff(AccountTypes contains ',', '"', ''), AccountTypes, iff(AccountTypes contains ',', '"', ''), ',', PricingBlockSize ,',', DistinctUnits) ```
diff --git a/src/powershell/Private/Get-OpenDataPricingUnit.ps1 b/src/powershell/Private/Get-OpenDataPricingUnit.ps1 index 36e17fb37..734e5681d 100644 --- a/src/powershell/Private/Get-OpenDataPricingUnit.ps1 +++ b/src/powershell/Private/Get-OpenDataPricingUnit.ps1 @@ -9,6 +9,7 @@ function Get-OpenDataPricingUnit ,[PSCustomObject]@{ UnitOfMeasure = '1 '; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = '1 /Day'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units/Day'; } ,[PSCustomObject]@{ UnitOfMeasure = '1 /Hour'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units/Hour'; } + ,[PSCustomObject]@{ UnitOfMeasure = '1 /Minute'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units/Minute'; } ,[PSCustomObject]@{ UnitOfMeasure = '1 /Month'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units/Month'; } ,[PSCustomObject]@{ UnitOfMeasure = '1 /Year'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units/Year'; } ,[PSCustomObject]@{ UnitOfMeasure = '1 1 Hour'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Hours'; } @@ -150,6 +151,7 @@ function Get-OpenDataPricingUnit ,[PSCustomObject]@{ UnitOfMeasure = '10 PB Seconds'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'PB Seconds'; } ,[PSCustomObject]@{ UnitOfMeasure = '10 PB/Hour'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'PB/Hour'; } ,[PSCustomObject]@{ UnitOfMeasure = '10 PiB Seconds'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'PiB Seconds'; } + ,[PSCustomObject]@{ UnitOfMeasure = '10 PiB/Hour'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'PiB/Hour'; } ,[PSCustomObject]@{ UnitOfMeasure = '10 Pipelines'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'Pipelines'; } ,[PSCustomObject]@{ UnitOfMeasure = '10 Rotations'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'Rotations'; } ,[PSCustomObject]@{ UnitOfMeasure = '10 Service Endpoints'; AccountTypes = 'EA'; PricingBlockSize = 10; DistinctUnits = 'Endpoints'; } @@ -258,6 +260,7 @@ function Get-OpenDataPricingUnit ,[PSCustomObject]@{ UnitOfMeasure = '100000 '; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000 /Day'; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'Units/Day'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000 /Hour'; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'Units/Hour'; } + ,[PSCustomObject]@{ UnitOfMeasure = '100000 /Month'; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'Units/Month'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000 Executions'; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'Executions'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000 GB'; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'GB'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000 GB Seconds'; AccountTypes = 'EA'; PricingBlockSize = 100000; DistinctUnits = 'GB Seconds'; } @@ -302,7 +305,7 @@ function Get-OpenDataPricingUnit ,[PSCustomObject]@{ UnitOfMeasure = '10000000000 '; AccountTypes = 'EA'; PricingBlockSize = 10000000000; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000000000'; AccountTypes = 'EA'; PricingBlockSize = 100000000000; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = '100000000000 '; AccountTypes = 'EA'; PricingBlockSize = 100000000000; DistinctUnits = 'Units'; } - ,[PSCustomObject]@{ UnitOfMeasure = '10000s'; AccountTypes = 'MCA'; PricingBlockSize = 1; DistinctUnits = 'Units'; } + ,[PSCustomObject]@{ UnitOfMeasure = '10000s'; AccountTypes = 'MCA'; PricingBlockSize = 1; DistinctUnits = 'Transactions'; } ,[PSCustomObject]@{ UnitOfMeasure = '100K'; AccountTypes = 'MCA'; PricingBlockSize = 100000; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = '1024 GB'; AccountTypes = 'EA'; PricingBlockSize = 1024; DistinctUnits = 'GB'; } ,[PSCustomObject]@{ UnitOfMeasure = '102400 TiB/Hour'; AccountTypes = 'EA'; PricingBlockSize = 102400; DistinctUnits = 'TiB/Hour'; } @@ -375,6 +378,7 @@ function Get-OpenDataPricingUnit ,[PSCustomObject]@{ UnitOfMeasure = 'Minute(s)'; AccountTypes = 'MCA, EA'; PricingBlockSize = 1; DistinctUnits = 'Minutes'; } ,[PSCustomObject]@{ UnitOfMeasure = 'Per Call'; AccountTypes = 'MCA, EA'; PricingBlockSize = 1; DistinctUnits = 'Calls'; } ,[PSCustomObject]@{ UnitOfMeasure = 'Per Request'; AccountTypes = 'MCA'; PricingBlockSize = 1; DistinctUnits = 'Requests'; } + ,[PSCustomObject]@{ UnitOfMeasure = 'Text'; AccountTypes = 'MCA'; PricingBlockSize = 1; DistinctUnits = 'Messages'; } ,[PSCustomObject]@{ UnitOfMeasure = 'Unassigned'; AccountTypes = 'EA'; PricingBlockSize = 1; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = 'Unit'; AccountTypes = 'MCA'; PricingBlockSize = 1; DistinctUnits = 'Units'; } ,[PSCustomObject]@{ UnitOfMeasure = 'Units'; AccountTypes = 'MCA'; PricingBlockSize = 1; DistinctUnits = 'Units'; }