diff --git a/src/CosmosDB/CosmosDB/Cassandra/GetAzCosmosDBCassandraTableThroughput.cs b/src/CosmosDB/CosmosDB/Cassandra/GetAzCosmosDBCassandraTableThroughput.cs
index 0fb2434578f3..422e98e02a0a 100644
--- a/src/CosmosDB/CosmosDB/Cassandra/GetAzCosmosDBCassandraTableThroughput.cs
+++ b/src/CosmosDB/CosmosDB/Cassandra/GetAzCosmosDBCassandraTableThroughput.cs
@@ -58,7 +58,7 @@ public override void ExecuteCmdlet()
}
ThroughputSettingsGetResults throughputSettingsGetResults = CosmosDBManagementClient.CassandraResources.GetCassandraTableThroughputWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName, Name).GetAwaiter().GetResult().Body;
- WriteObject(throughputSettingsGetResults);
+ WriteObject(new PSThroughputSettingsGetResults(throughputSettingsGetResults));
return;
}
diff --git a/src/CosmosDB/CosmosDB/ChangeLog.md b/src/CosmosDB/CosmosDB/ChangeLog.md
index 856c665ce1f2..22898a1c4b0f 100644
--- a/src/CosmosDB/CosmosDB/ChangeLog.md
+++ b/src/CosmosDB/CosmosDB/ChangeLog.md
@@ -19,6 +19,12 @@
-->
## Upcoming Release
+* Allowing Account Creation for API Types: Gremlin, Cassandra and Table.
+* Bug Fixes
+
+## Version 0.1.2
+* Updated the Azure.Management.CosmosDB Sdk Version to 1.0.2
+ -Fix bugs related to https://github.com/Azure/azure-sdk-for-net/issues/10639
## Version 0.1.1
* Added cmdlets for Gremlin, MongoDB, Cassandra and Table APIs.
diff --git a/src/CosmosDB/CosmosDB/CosmosDB.csproj b/src/CosmosDB/CosmosDB/CosmosDB.csproj
index f25ac6819763..bfeb992d5923 100644
--- a/src/CosmosDB/CosmosDB/CosmosDB.csproj
+++ b/src/CosmosDB/CosmosDB/CosmosDB.csproj
@@ -6,7 +6,7 @@
-
+
\ No newline at end of file
diff --git a/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs b/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs
index f529910f25be..3c8cf6ad5100 100644
--- a/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs
+++ b/src/CosmosDB/CosmosDB/CosmosDBAccount/NewAzCosmosDBAccount.cs
@@ -81,7 +81,7 @@ public class NewAzCosmosDBAccount : AzureCosmosDBCmdletBase
public PSVirtualNetworkRule[] VirtualNetworkRuleObject { get; set; }
[Parameter(Mandatory = false, HelpMessage = Constants.ApiKindHelpMessage)]
- [PSArgumentCompleter("GlobalDocumentDB", "MongoDB", "Others")]
+ [PSArgumentCompleter("GlobalDocumentDB", "MongoDB", "Gremlin", "Cassandra", "Table")]
public string ApiKind { get; set; }
[Parameter(Mandatory = false, HelpMessage = Constants.AsJobHelpMessage)]
@@ -121,18 +121,6 @@ public override void ExecuteCmdlet()
}
}
- if(!string.IsNullOrEmpty(ApiKind))
- {
- if (!ApiKind.Equals("GlobalDocumentDB", StringComparison.OrdinalIgnoreCase) && !ApiKind.Equals("MongoDB", StringComparison.OrdinalIgnoreCase))
- {
- WriteWarning("Gremlin, Cassandra and Table account creation not supported" +
- "in Azure Powershell");
- return;
- }
- }
- else
- ApiKind = "GlobalDocumentDB";
-
string writeLocation = null;
Collection LocationCollection = new Collection();
@@ -185,15 +173,15 @@ public override void ExecuteCmdlet()
}
Collection virtualNetworkRule = new Collection();
- if ((VirtualNetworkRule != null && VirtualNetworkRule.Length > 0) ||
- (VirtualNetworkRuleObject != null && VirtualNetworkRuleObject.Length > 0))
+ if (VirtualNetworkRule != null && VirtualNetworkRule.Length > 0)
{
-
foreach (string id in VirtualNetworkRule)
{
virtualNetworkRule.Add(new VirtualNetworkRule(id: id));
}
-
+ }
+ if(VirtualNetworkRuleObject != null && VirtualNetworkRuleObject.Length > 0)
+ {
foreach (PSVirtualNetworkRule psVirtualNetworkRule in VirtualNetworkRuleObject)
{
virtualNetworkRule.Add(PSVirtualNetworkRule.ConvertPSVirtualNetworkRuleToVirtualNetworkRule(psVirtualNetworkRule));
@@ -214,12 +202,38 @@ public override void ExecuteCmdlet()
}
}
- DatabaseAccountCreateUpdateParameters databaseAccountCreateUpdateParameters = new DatabaseAccountCreateUpdateParameters(locations:LocationCollection, location: writeLocation, name:Name, kind:ApiKind, consistencyPolicy:consistencyPolicy, tags:tags, ipRangeFilter:IpRangeFilterAsString);
+ DatabaseAccountCreateUpdateParameters databaseAccountCreateUpdateParameters = new DatabaseAccountCreateUpdateParameters(locations:LocationCollection, location: writeLocation, name:Name, consistencyPolicy:consistencyPolicy, tags:tags, ipRangeFilter:IpRangeFilterAsString);
databaseAccountCreateUpdateParameters.EnableMultipleWriteLocations = EnableMultipleWriteLocations;
databaseAccountCreateUpdateParameters.IsVirtualNetworkFilterEnabled = EnableVirtualNetwork;
databaseAccountCreateUpdateParameters.EnableAutomaticFailover = EnableAutomaticFailover;
databaseAccountCreateUpdateParameters.VirtualNetworkRules = virtualNetworkRule;
+ if (!string.IsNullOrEmpty(ApiKind))
+ {
+ if (!ApiKind.Equals("GlobalDocumentDB", StringComparison.OrdinalIgnoreCase) && !ApiKind.Equals("MongoDB", StringComparison.OrdinalIgnoreCase))
+ {
+ switch (ApiKind)
+ {
+ case "Cassandra":
+ databaseAccountCreateUpdateParameters.Capabilities = new List { new Capability { Name = "EnableCassandra" } };
+ break;
+ case "Gremlin":
+ databaseAccountCreateUpdateParameters.Capabilities = new List { new Capability { Name = "EnableGremlin" } };
+ break;
+ case "Table":
+ databaseAccountCreateUpdateParameters.Capabilities = new List { new Capability { Name = "EnableTable" } };
+ break;
+ }
+
+ ApiKind = null;
+ }
+ }
+ else
+ {
+ ApiKind = "GlobalDocumentDB";
+ }
+ databaseAccountCreateUpdateParameters.Kind = ApiKind;
+
if (ShouldProcess(Name, "Creating Database Account"))
{
DatabaseAccountGetResults cosmosDBAccount = CosmosDBManagementClient.DatabaseAccounts.CreateOrUpdateWithHttpMessagesAsync(ResourceGroupName, Name, databaseAccountCreateUpdateParameters).GetAwaiter().GetResult().Body;
diff --git a/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs b/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs
index de65e8746947..8d0313c4d320 100644
--- a/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs
+++ b/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccount.cs
@@ -152,21 +152,23 @@ public override void ExecuteCmdlet()
databaseAccountUpdateParameters.Tags = tags;
}
- if ( ( VirtualNetworkRule != null && VirtualNetworkRule.Length > 0) ||
- (VirtualNetworkRuleObject != null && VirtualNetworkRuleObject.Length > 0))
+ if (VirtualNetworkRule != null || VirtualNetworkRuleObject != null)
{
Collection virtualNetworkRule = new Collection();
-
- foreach (string id in VirtualNetworkRule)
+ if (VirtualNetworkRule != null && VirtualNetworkRule.Length > 0)
{
- virtualNetworkRule.Add(new VirtualNetworkRule(id:id));
+ foreach (string id in VirtualNetworkRule)
+ {
+ virtualNetworkRule.Add(new VirtualNetworkRule(id: id));
+ }
}
-
- foreach (PSVirtualNetworkRule psVirtualNetworkRule in VirtualNetworkRuleObject)
+ if (VirtualNetworkRuleObject != null && VirtualNetworkRuleObject.Length > 0)
{
- virtualNetworkRule.Add(PSVirtualNetworkRule.ConvertPSVirtualNetworkRuleToVirtualNetworkRule(psVirtualNetworkRule));
+ foreach (PSVirtualNetworkRule psVirtualNetworkRule in VirtualNetworkRuleObject)
+ {
+ virtualNetworkRule.Add(PSVirtualNetworkRule.ConvertPSVirtualNetworkRuleToVirtualNetworkRule(psVirtualNetworkRule));
+ }
}
-
databaseAccountUpdateParameters.VirtualNetworkRules = virtualNetworkRule;
}
diff --git a/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccountRegion.cs b/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccountRegion.cs
index 8e24610e15e3..756a232ed407 100644
--- a/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccountRegion.cs
+++ b/src/CosmosDB/CosmosDB/CosmosDBAccount/UpdateAzCosmosDBAccountRegion.cs
@@ -46,7 +46,7 @@ public class UpdateAzCosmosDBAccountRegion : AzureCosmosDBCmdletBase
[ValidateNotNullOrEmpty]
public string ResourceId { get; set; }
- [Parameter(Mandatory = true, ValueFromPipeline = true, ParameterSetName = ObjectParameterSet, HelpMessage = Constants.ResourceIdHelpMessage)]
+ [Parameter(Mandatory = true, ValueFromPipeline = true, ParameterSetName = ObjectParameterSet, HelpMessage = Constants.AccountObjectHelpMessage)]
[ValidateNotNull]
public PSDatabaseAccount InputObject { get; set; }
@@ -72,18 +72,21 @@ public override void ExecuteCmdlet()
}
List locations = new List();
-
- if( (Location != null && Location.Length > 0) ||
- (LocationObject != null && LocationObject.Length > 0))
+ if (Location != null || LocationObject != null)
{
- foreach (string location in Location)
+ if (Location != null && Location.Length > 0)
{
- locations.Add(new Location(location));
+ foreach (string location in Location)
+ {
+ locations.Add(new Location(location));
+ }
}
-
- foreach (PSLocation psLocation in LocationObject)
+ if (LocationObject != null && LocationObject.Length > 0)
{
- locations.Add(PSLocation.ConvertPSLocationToLocation(psLocation));
+ foreach (PSLocation psLocation in LocationObject)
+ {
+ locations.Add(PSLocation.ConvertPSLocationToLocation(psLocation));
+ }
}
}
else
diff --git a/src/CosmosDB/CosmosDB/Helpers/Constants.cs b/src/CosmosDB/CosmosDB/Helpers/Constants.cs
index c8a6f0914585..b86f153fa2b3 100644
--- a/src/CosmosDB/CosmosDB/Helpers/Constants.cs
+++ b/src/CosmosDB/CosmosDB/Helpers/Constants.cs
@@ -26,7 +26,7 @@ internal static class Constants
public const string AccountKeyKindHelpMessage = "The access key to regenerate. Accepted values: primary, primaryReadonly, secondary, secondaryReadonly ";
public const string AccountFailoverPolicyHelpMessage = "Array of strings having region names, ordered by failover priority. E.g eastus, westus";
public const string AccountObjectHelpMessage = "CosmosDB Account object";
- public const string AccountUpdateLocationHelpMessage = "Name of the location to be added.";
+ public const string AccountUpdateLocationHelpMessage = "The georeplication location to be enabled for the Cosmos DB account, can be a single string or an array of strings.";
public const string DefaultConsistencyLevelHelpMessage = "Default consistency level of the Cosmos DB database account. Accepted values: BoundedStaleness, ConsistentPrefix, Eventual, Session, Strong. Default is Session.";
public const string EnableAutomaticFailoverHelpMessage = "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. Accepted values: false, true ";
diff --git a/src/CosmosDB/CosmosDB/Models/PSCassandraSchema.cs b/src/CosmosDB/CosmosDB/Models/PSCassandraSchema.cs
index b26b6e02dd0f..d97b950c5ee2 100644
--- a/src/CosmosDB/CosmosDB/Models/PSCassandraSchema.cs
+++ b/src/CosmosDB/CosmosDB/Models/PSCassandraSchema.cs
@@ -25,6 +25,23 @@ public PSCassandraSchema()
public PSCassandraSchema(CassandraSchema cassandraSchema)
{
+ Columns = new List();
+ foreach (Column column in cassandraSchema.Columns)
+ {
+ Columns.Add(new PSColumn(column));
+ }
+
+ PartitionKeys = new List();
+ foreach (CassandraPartitionKey cassandraPartitionKey in cassandraSchema.PartitionKeys)
+ {
+ PartitionKeys.Add(new PSCassandraPartitionKey(cassandraPartitionKey));
+ }
+
+ ClusterKeys = new List();
+ foreach (ClusterKey clusterKey in cassandraSchema.ClusterKeys)
+ {
+ ClusterKeys.Add(new PSClusterKey(clusterKey));
+ }
}
//
diff --git a/src/CosmosDB/CosmosDB/Models/PSMongoDBCollectionGetPropertiesResource.cs b/src/CosmosDB/CosmosDB/Models/PSMongoDBCollectionGetPropertiesResource.cs
index 7efc4f992e3a..d85f674bb659 100644
--- a/src/CosmosDB/CosmosDB/Models/PSMongoDBCollectionGetPropertiesResource.cs
+++ b/src/CosmosDB/CosmosDB/Models/PSMongoDBCollectionGetPropertiesResource.cs
@@ -21,6 +21,11 @@ public class PSMongoDBCollectionGetPropertiesResource
{
public PSMongoDBCollectionGetPropertiesResource(MongoDBCollectionGetPropertiesResource mongoDBCollectionGetPropertiesResource)
{
+ Id = mongoDBCollectionGetPropertiesResource.Id;
+ if (mongoDBCollectionGetPropertiesResource.ShardKey != null)
+ {
+ ShardKey = new Dictionary(mongoDBCollectionGetPropertiesResource.ShardKey);
+ }
List psMongoIndex = new List();
if (mongoDBCollectionGetPropertiesResource.Indexes != null)
{
diff --git a/src/CosmosDB/CosmosDB/help/Get-AzCosmosDBAccount.md b/src/CosmosDB/CosmosDB/help/Get-AzCosmosDBAccount.md
index 72168d8f57ca..11ee832c8966 100644
--- a/src/CosmosDB/CosmosDB/help/Get-AzCosmosDBAccount.md
+++ b/src/CosmosDB/CosmosDB/help/Get-AzCosmosDBAccount.md
@@ -39,7 +39,7 @@ FailoverPolicies : {databaseAccountName-region1}
ReadLocations : {databaseAccountName-region1}
WriteLocations : {databaseAccountName-region1}
Capabilities : {}
-ConsistencyPolicy : Microsoft.Azure.Management.CosmosDB.Fluent.Models.ConsistencyPolicy
+ConsistencyPolicy : Microsoft.Azure.Management.CosmosDB.Models.ConsistencyPolicy
EnableAutomaticFailover : False
IsVirtualNetworkFilterEnabled : False
IpRangeFilter :
diff --git a/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md b/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md
index 60b20e7fb6a6..858ff6c0dcda 100644
--- a/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md
+++ b/src/CosmosDB/CosmosDB/help/New-AzCosmosDBAccount.md
@@ -1,7 +1,7 @@
---
external help file: Microsoft.Azure.PowerShell.Cmdlets.CosmosDB.dll-Help.xml
Module Name: Az.CosmosDB
-online version: https://docs.microsoft.com/en-us/powershell/module/az.cosmosdb/new-azcosmosdbaccountkey
+online version: https://docs.microsoft.com/en-us/powershell/module/az.cosmosdb/new-azcosmosdbaccount
schema: 2.0.0
---
@@ -37,7 +37,7 @@ DatabaseAccountOfferType : Standard
IpRangeFilter :
IsVirtualNetworkFilterEnabled : False
EnableAutomaticFailover : False
-ConsistencyPolicy : Microsoft.Azure.Management.CosmosDB.Fluent.Models.ConsistencyPolicy
+ConsistencyPolicy : Microsoft.Azure.Management.CosmosDB.Models.ConsistencyPolicy
Capabilities : {}
WriteLocations : {databaseAccountName-eastus}
ReadLocations : {databaseAccountName-eastus}
@@ -57,7 +57,7 @@ A new CosmosDB Account with name databaseAccountName is created in the ResourceG
### -ApiKind
The type of Cosmos DB database account to create.
-Accepted values: GlobalDocumentDB, Sql, MongoDB, Gremlin, Table, Cassandra.
+Accepted values: GlobalDocumentDB, MongoDB, Gremlin, Table, Cassandra.
Default value: GlobalDocumentDB
```yaml