diff --git a/src/Websites/Websites/ChangeLog.md b/src/Websites/Websites/ChangeLog.md index 7a0621fa5f3c..3b034a6dc443 100644 --- a/src/Websites/Websites/ChangeLog.md +++ b/src/Websites/Websites/ChangeLog.md @@ -18,6 +18,7 @@ - Additional information about change #1 --> ## Upcoming Release +* Added support for Premium V3 pricing tier ## Version 1.11.0 * Added support to perform operations for Slots not in the same resource group as the App Service Plan diff --git a/src/Websites/Websites/Cmdlets/AppServicePlans/NewAzureAppServicePlan.cs b/src/Websites/Websites/Cmdlets/AppServicePlans/NewAzureAppServicePlan.cs index 4200c6f1ba8c..69fdceebb0c2 100644 --- a/src/Websites/Websites/Cmdlets/AppServicePlans/NewAzureAppServicePlan.cs +++ b/src/Websites/Websites/Cmdlets/AppServicePlans/NewAzureAppServicePlan.cs @@ -35,8 +35,8 @@ public class NewAzureAppServicePlanCmdlet : AppServicePlanBaseCmdlet [ValidateNotNullOrEmpty] public string Location { get; set; } - [Parameter(Position = 3, Mandatory = false, HelpMessage = "The App Service plan tier. Allowed values are [Free|Shared|Basic|Standard|Premium|PremiumV2]")] - [PSArgumentCompleter("Free", "Shared", "Basic", "Standard", "Premium", "PremiumV2", "Isolated", "PremiumContainer")] + [Parameter(Position = 3, Mandatory = false, HelpMessage = "The App Service plan tier. Allowed values are [Free|Shared|Basic|Standard|Premium|PremiumV2|PremiumV3]")] + [PSArgumentCompleter("Free", "Shared", "Basic", "Standard", "Premium", "PremiumV2", "PremiumV3", "Isolated", "PremiumContainer")] public string Tier { get; set; } [Parameter(Position = 4, Mandatory = false, HelpMessage = "Number of Workers to be allocated.")] @@ -73,9 +73,10 @@ public class NewAzureAppServicePlanCmdlet : AppServicePlanBaseCmdlet public override void ExecuteCmdlet() { - if (HyperV.IsPresent && Tier != "PremiumContainer") + if (HyperV.IsPresent && + (Tier != "PremiumContainer" && Tier != "PremiumV3")) { - throw new Exception("HyperV switch is only allowed for PremiumContainer tier"); + throw new Exception("HyperV switch is only allowed for PremiumContainer or PremiumV3 tiers"); } if (!HyperV.IsPresent && Tier == "PremiumContainer") { diff --git a/src/Websites/Websites/Cmdlets/AppServicePlans/SetAzureAppServicePlan.cs b/src/Websites/Websites/Cmdlets/AppServicePlans/SetAzureAppServicePlan.cs index bea9fb46e1f6..6c3963580c15 100644 --- a/src/Websites/Websites/Cmdlets/AppServicePlans/SetAzureAppServicePlan.cs +++ b/src/Websites/Websites/Cmdlets/AppServicePlans/SetAzureAppServicePlan.cs @@ -33,8 +33,8 @@ public class SetAzureAppServicePlanCmdlet : AppServicePlanBaseCmdlet [ValidateNotNullOrEmpty] public string AdminSiteName { get; set; } - [Parameter(ParameterSetName = ParameterSet1Name, Position = 3, Mandatory = false, HelpMessage = "The App Service plan tier. Allowed values are [Free|Shared|Basic|Standard|Premium|PremiumV2]")] - [PSArgumentCompleter("Free", "Shared", "Basic", "Standard", "Premium", "PremiumV2", "Isolated")] + [Parameter(ParameterSetName = ParameterSet1Name, Position = 3, Mandatory = false, HelpMessage = "The App Service plan tier. Allowed values are [Free|Shared|Basic|Standard|Premium|PremiumV2|PremiumV3]")] + [PSArgumentCompleter("Free", "Shared", "Basic", "Standard", "Premium", "PremiumV2", "PremiumV3", "Isolated")] public string Tier { get; set; } [Parameter(ParameterSetName = ParameterSet1Name, Position = 4, Mandatory = false, HelpMessage = "Number of Workers to be allocated.")] diff --git a/src/Websites/Websites/Utilities/CmdletHelpers.cs b/src/Websites/Websites/Utilities/CmdletHelpers.cs index 2d58eda99445..15cfd4addca1 100644 --- a/src/Websites/Websites/Utilities/CmdletHelpers.cs +++ b/src/Websites/Websites/Utilities/CmdletHelpers.cs @@ -287,6 +287,11 @@ internal static string GetSkuName(string tier, int workerSize) sku = "P" + workerSize + "V2"; return sku; } + else if (string.Equals("PremiumV3", tier, StringComparison.OrdinalIgnoreCase)) + { + sku = "P" + workerSize + "V3"; + return sku; + } else if (string.Equals("PremiumContainer", tier, StringComparison.OrdinalIgnoreCase)) { sku = "PC" + (workerSize + 1); @@ -313,6 +318,11 @@ internal static string GetSkuName(string tier, string workerSize) sku = "P" + WorkerSizes[workerSize] + "V2"; return sku; } + else if (string.Equals("PremiumV3", tier, StringComparison.OrdinalIgnoreCase)) + { + sku = "P" + WorkerSizes[workerSize] + "V3"; + return sku; + } else if (string.Equals("PremiumContainer", tier, StringComparison.OrdinalIgnoreCase)) { sku = "PC" + (WorkerSizes[workerSize] + 1);