diff --git a/src/CosmosDB/CosmosDB.Test/ScenarioTests/AccountTests.ps1 b/src/CosmosDB/CosmosDB.Test/ScenarioTests/AccountTests.ps1 index 73d12867bb92..b9bb999f3b2e 100644 --- a/src/CosmosDB/CosmosDB.Test/ScenarioTests/AccountTests.ps1 +++ b/src/CosmosDB/CosmosDB.Test/ScenarioTests/AccountTests.ps1 @@ -59,7 +59,7 @@ function Test-AccountRelatedCmdlets Assert-AreEqual $_.Exception.Message ("Resource with Name " + $cosmosDBAccountName + " already exists.") } - $updatedCosmosDBAccount = Update-AzCosmosDBAccount -ResourceGroupName $rgName -Name $cosmosDBAccountName -DefaultConsistencyLevel "BoundedStaleness" -MaxStalenessIntervalInSeconds 10 -MaxStalenessPrefix 20 -IpRule $IpRule -Tag $tags -EnableVirtualNetwork 1 -EnableAutomaticFailover 1 -PublicNetworkAccess $publicNetworkAccess -NetworkAclBypassResourceId $networkAclBypassResourceId + $updatedCosmosDBAccount = Update-AzCosmosDBAccount -ResourceGroupName $rgName -Name $cosmosDBAccountName -DefaultConsistencyLevel "BoundedStaleness" -MaxStalenessIntervalInSeconds 10 -MaxStalenessPrefix 20 -IpRule $IpRule -Tag $tags -EnableVirtualNetwork 1 -EnableAutomaticFailover 1 -PublicNetworkAccess $publicNetworkAccess -NetworkAclBypassResourceId $networkAclBypassResourceId -EnablePartitionMerge 0 Assert-AreEqual $cosmosDBAccountName $updatedCosmosDBAccount.Name Assert-AreEqual "BoundedStaleness" $updatedCosmosDBAccount.ConsistencyPolicy.DefaultConsistencyLevel @@ -72,6 +72,7 @@ function Test-AccountRelatedCmdlets Assert-AreEqual $updatedCosmosDBAccount.NetworkAclBypassResourceIds.Count 1 Assert-AreEqual $updatedCosmosDBAccount.BackupPolicy.BackupIntervalInMinutes 480 Assert-AreEqual $updatedCosmosDBAccount.BackupPolicy.BackupRetentionIntervalInHours 16 + Assert-AreEqual $updatedCosmosDBAccount.EnablePartitionMerge 0 $updatedCosmosDBAccount = Update-AzCosmosDBAccount -ResourceGroupName $rgName -Name $cosmosDBAccountName -BackupStorageRedundancy "Geo" Assert-AreEqual $updatedCosmosDBAccount.BackupPolicy.BackupIntervalInMinutes 480 diff --git a/src/CosmosDB/CosmosDB/ChangeLog.md b/src/CosmosDB/CosmosDB/ChangeLog.md index 17859928c831..d9e7d46b01df 100644 --- a/src/CosmosDB/CosmosDB/ChangeLog.md +++ b/src/CosmosDB/CosmosDB/ChangeLog.md @@ -20,6 +20,7 @@ ## Upcoming Release * Added support for Continuous 7 Days backup mode. +* Added new parameter `EnablePartitionMerge` to `Update-AzCosmosDBAccount` and `New-AzCosmosDBAccount`. ## Version 1.10.1 * Updated Azure.Core to 1.31.0. diff --git a/src/CosmosDB/CosmosDB/CosmosDBAccount/NewOrUpdateAzCosmosDBAccount.cs b/src/CosmosDB/CosmosDB/CosmosDBAccount/NewOrUpdateAzCosmosDBAccount.cs index 726735bc80d0..809fe2a2eabf 100644 --- a/src/CosmosDB/CosmosDB/CosmosDBAccount/NewOrUpdateAzCosmosDBAccount.cs +++ b/src/CosmosDB/CosmosDB/CosmosDBAccount/NewOrUpdateAzCosmosDBAccount.cs @@ -70,6 +70,9 @@ public class NewOrUpdateAzCosmosDBAccount : AzureCosmosDBCmdletBase [Parameter(Mandatory = false, HelpMessage = Constants.EnableAnalyticalStorageHelpMessage)] public bool? EnableAnalyticalStorage { get; set; } + [Parameter(Mandatory = false, HelpMessage = Constants.EnablePartitionMergeHelpMessage)] + public bool? EnablePartitionMerge { get; set; } + [Parameter(Mandatory = false, HelpMessage = Constants.AsJobHelpMessage)] public SwitchParameter AsJob { get; set; } diff --git a/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs b/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs index 9f991aaa2e95..52d10e04fe41 100644 --- a/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs +++ b/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs @@ -98,6 +98,10 @@ public override void ExecuteCmdlet() { databaseAccountUpdateParameters.EnableAnalyticalStorage = EnableAnalyticalStorage; } + if (EnablePartitionMerge != null) + { + databaseAccountUpdateParameters.EnablePartitionMerge = EnablePartitionMerge; + } if (NetworkAclBypass != null) { databaseAccountUpdateParameters.NetworkAclBypass = diff --git a/src/CosmosDB/CosmosDB/Helpers/Constants.cs b/src/CosmosDB/CosmosDB/Helpers/Constants.cs index a6901e87b3c4..216117ef7802 100644 --- a/src/CosmosDB/CosmosDB/Helpers/Constants.cs +++ b/src/CosmosDB/CosmosDB/Helpers/Constants.cs @@ -58,6 +58,7 @@ internal static class Constants public const string NetworkAclBypassResourceIdHelpMessage = "List of Resource Ids to allow Network Acl Bypass for Synapse Link."; public const string DatabaseResourceIdHelpMessage = "ResourceId of the database."; public const string AnalyticalStorageSchemaTypeHelpMessage = "The schema type for analytical storage. Valid values include: 'WellDefined' and 'FullFidelity'."; + public const string EnablePartitionMergeHelpMessage = "Enables partition merge feature on the Cosmos DB database account. Accepted values: false, true"; //Restore specific help messages public const string IsRestoreRequestHelpMessage = "Indicates that the new Cosmos DB account request is a restore request."; diff --git a/src/CosmosDB/CosmosDB/Models/DatabaseAccount/PSDatabaseAccountGetResults.cs b/src/CosmosDB/CosmosDB/Models/DatabaseAccount/PSDatabaseAccountGetResults.cs index 35951b6bcf01..0f2112de6250 100644 --- a/src/CosmosDB/CosmosDB/Models/DatabaseAccount/PSDatabaseAccountGetResults.cs +++ b/src/CosmosDB/CosmosDB/Models/DatabaseAccount/PSDatabaseAccountGetResults.cs @@ -65,6 +65,7 @@ public PSDatabaseAccountGetResults(DatabaseAccountGetResults databaseAccountGetR RestoreParameters = new PSRestoreParameters(databaseAccountGetResults.RestoreParameters); CreateMode = databaseAccountGetResults.CreateMode; AnalyticalStorageConfiguration = new PSAnalyticalStorageConfiguration(databaseAccountGetResults.AnalyticalStorageConfiguration); + EnablePartitionMerge = databaseAccountGetResults.EnablePartitionMerge; } // @@ -189,6 +190,10 @@ public PSDatabaseAccountGetResults(DatabaseAccountGetResults databaseAccountGetR public bool? EnableAnalyticalStorage { get; set; } // // Summary: + // Gets or sets flag to indicate whether Partition Merge is enabled. + public bool? EnablePartitionMerge { get; set; } + // + // Summary: // Gets or sets flag to indicate to allow Network Acl Bypass. public NetworkAclBypass? NetworkAclBypass { get; set; } // diff --git a/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md b/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md index 46639bbf2c56..59ed487bbeeb 100644 --- a/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md +++ b/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md @@ -22,7 +22,7 @@ New-AzCosmosDBAccount [-EnableAutomaticFailover] [-EnableMultipleWriteLocations] [-PublicNetworkAccess ] [-KeyVaultKeyUri ] [-EnableAnalyticalStorage ] [-AsJob] [-NetworkAclBypass ] [-NetworkAclBypassResourceId ] [-ServerVersion ] [-BackupIntervalInMinutes ] [-BackupRetentionIntervalInHours ] - [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] + [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] [-EnablePartitionMerge ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -261,6 +261,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnablePartitionMerge +Bool to indicate if PartitionMerge is enabled on the account. +Accepted Values: false, true +```yaml +Type: System.Nullable`1[System.Boolean] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -EnableAutomaticFailover Enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account. diff --git a/src/CosmosDB/CosmosDB/help/Update-AzCosmosDBAccount.md b/src/CosmosDB/CosmosDB/help/Update-AzCosmosDBAccount.md index b61333ca64a9..5affd56fa8c1 100644 --- a/src/CosmosDB/CosmosDB/help/Update-AzCosmosDBAccount.md +++ b/src/CosmosDB/CosmosDB/help/Update-AzCosmosDBAccount.md @@ -22,7 +22,7 @@ Update-AzCosmosDBAccount [-EnableAutomaticFailover ] [-EnableMultipleWr [-PublicNetworkAccess ] [-KeyVaultKeyUri ] [-EnableAnalyticalStorage ] [-AsJob] [-NetworkAclBypass ] [-NetworkAclBypassResourceId ] [-ServerVersion ] [-BackupIntervalInMinutes ] [-BackupRetentionIntervalInHours ] - [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] + [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] [-EnablePartitionMerge ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -36,7 +36,7 @@ Update-AzCosmosDBAccount -ResourceId [-EnableAutomaticFailover ] [-KeyVaultKeyUri ] [-EnableAnalyticalStorage ] [-AsJob] [-NetworkAclBypass ] [-NetworkAclBypassResourceId ] [-ServerVersion ] [-BackupIntervalInMinutes ] [-BackupRetentionIntervalInHours ] - [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] + [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] [-EnablePartitionMerge ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -50,7 +50,7 @@ Update-AzCosmosDBAccount -InputObject [-EnableAuto [-PublicNetworkAccess ] [-KeyVaultKeyUri ] [-EnableAnalyticalStorage ] [-AsJob] [-NetworkAclBypass ] [-NetworkAclBypassResourceId ] [-ServerVersion ] [-BackupIntervalInMinutes ] [-BackupRetentionIntervalInHours ] - [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] + [-BackupStorageRedundancy ] [-BackupPolicyType ] [-ContinuousTier ] [-AnalyticalStorageSchemaType ] [-EnablePartitionMerge ] [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -274,6 +274,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnablePartitionMerge +Enable Partition Merge on Account +Accepted values: false, true + +```yaml +Type: System.Nullable`1[System.Boolean] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -EnableMultipleWriteLocations Enable Multiple Write Locations. Accepted values: false, true