public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; KeyspaceName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (!string.IsNullOrEmpty(Name)) { CassandraTableGetResults cassandraTableGetResults = CosmosDBManagementClient.CassandraResources.GetCassandraTableWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName, Name).GetAwaiter().GetResult().Body; WriteObject(new PSCassandraTableGetResults(cassandraTableGetResults)); if (Detailed) { ThroughputSettingsGetResults throughputSettingsGetResults = CosmosDBManagementClient.CassandraResources.GetCassandraTableThroughputWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName, Name).GetAwaiter().GetResult().Body; WriteObject(throughputSettingsGetResults); } } else { IEnumerable <CassandraTableGetResults> cassandraTables = CosmosDBManagementClient.CassandraResources.ListCassandraTablesWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName).GetAwaiter().GetResult().Body; foreach (CassandraTableGetResults cassandraTable in cassandraTables) { WriteObject(new PSCassandraTableGetResults(cassandraTable)); } } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; ContainerName = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (!string.IsNullOrEmpty(Name)) { SqlStoredProcedureGetResults sqlStoredProcedureGetResults = CosmosDBManagementClient.SqlResources.GetSqlStoredProcedureWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name).GetAwaiter().GetResult().Body; WriteObject(new PSSqlStoredProcedureGetResults(sqlStoredProcedureGetResults)); } else { IEnumerable <SqlStoredProcedureGetResults> sqlStoredProcedures = CosmosDBManagementClient.SqlResources.ListSqlStoredProceduresWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, ContainerName).GetAwaiter().GetResult().Body; foreach (SqlStoredProcedureGetResults sqlStoredProcedure in sqlStoredProcedures) { WriteObject(new PSSqlStoredProcedureGetResults(sqlStoredProcedure)); } } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; AccountName = resourceIdentifier.ResourceName; } else if (ParameterSetName.Equals(ObjectParameterSet)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); Name = resourceIdentifier.ResourceName; } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); GremlinDatabaseCreateUpdateParameters gremlinDatabaseCreateUpdateParameters = new GremlinDatabaseCreateUpdateParameters { Resource = new GremlinDatabaseResource { Id = Name }, Options = options }; if (ShouldProcess(Name, "Updating CosmosDB Gremlin Database")) { GremlinDatabaseGetResults gremlinDatabaseGetResults = CosmosDBManagementClient.GremlinResources.CreateUpdateGremlinDatabaseWithHttpMessagesAsync(ResourceGroupName, AccountName, Name, gremlinDatabaseCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSGremlinDatabaseGetResults(gremlinDatabaseGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (!string.IsNullOrEmpty(Name)) { GremlinGraphGetResults gremlinGraphGetResults = CosmosDBManagementClient.GremlinResources.GetGremlinGraphWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name).GetAwaiter().GetResult().Body; WriteObject(new PSGremlinGraphGetResults(gremlinGraphGetResults)); if (Detailed) { ThroughputSettingsGetResults throughputSettingsGetResults = CosmosDBManagementClient.GremlinResources.GetGremlinGraphThroughputWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name).GetAwaiter().GetResult().Body; WriteObject(throughputSettingsGetResults); } } else { IEnumerable <GremlinGraphGetResults> gremlinGraphs = CosmosDBManagementClient.GremlinResources.ListGremlinGraphsWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName).GetAwaiter().GetResult().Body; foreach (GremlinGraphGetResults gremlinGraph in gremlinGraphs) { WriteObject(new PSGremlinGraphGetResults(gremlinGraph)); } } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; AccountName = resourceIdentifier.ResourceName; } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } ThroughputSettingsUpdateParameters throughputSettingsUpdateParameters = new ThroughputSettingsUpdateParameters { Resource = new ThroughputSettingsResource { Throughput = Throughput } }; if (ShouldProcess(Name, "Updating the throughput value of a CosmosDB Gremlin Database")) { ThroughputSettingsGetResults throughputSettingsGetResults = CosmosDBManagementClient.GremlinResources.UpdateGremlinDatabaseThroughputWithHttpMessagesAsync(ResourceGroupName, AccountName, Name, throughputSettingsUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSThroughputSettingsGetResults(throughputSettingsGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(SqlDatabaseObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (!string.IsNullOrEmpty(Name)) { ClientEncryptionKeyGetResults clientEncryptionKeyGetResults = CosmosDBManagementClient.SqlResources.GetClientEncryptionKeyWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name).GetAwaiter().GetResult().Body; WriteObject(new PSSqlClientEncryptionKeyGetResults(clientEncryptionKeyGetResults)); } else { IEnumerable <ClientEncryptionKeyGetResults> clientEncryptionKeys = CosmosDBManagementClient.SqlResources.ListClientEncryptionKeysWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName).GetAwaiter().GetResult().Body; foreach (ClientEncryptionKeyGetResults clientEncryptionKey in clientEncryptionKeys) { WriteObject(new PSSqlClientEncryptionKeyGetResults(clientEncryptionKey)); } } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; ContainerName = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } SqlTriggerGetResults readSqlTriggerGetResults = null; try { readSqlTriggerGetResults = CosmosDBManagementClient.SqlResources.GetSqlTrigger(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name); } catch (CloudException e) { if (e.Response.StatusCode != System.Net.HttpStatusCode.NotFound) { throw; } } if (readSqlTriggerGetResults != null) { throw new ConflictingResourceException(message: string.Format(ExceptionMessage.Conflict, Name)); } if (string.IsNullOrEmpty(TriggerOperation)) { TriggerOperation = "All"; } if (string.IsNullOrEmpty(TriggerType)) { TriggerType = "Pre"; } SqlTriggerCreateUpdateParameters sqlTriggerCreateUpdateParameters = new SqlTriggerCreateUpdateParameters { Resource = new SqlTriggerResource { Id = Name, TriggerOperation = TriggerOperation, TriggerType = TriggerType, Body = Body }, Options = new CreateUpdateOptions() //passing empty object as options cannot be null }; if (ShouldProcess(Name, "Creating a new CosmosDB Sql Trigger")) { SqlTriggerGetResults sqlTriggerGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlTriggerWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name, sqlTriggerCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlTriggerGetResults(sqlTriggerGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (!string.IsNullOrEmpty(Name)) { MongoDBCollectionGetResults mongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name).GetAwaiter().GetResult().Body; WriteObject(new PSMongoDBCollectionGetResults(mongoDBCollectionGetResults)); if (Detailed) { ThroughputSettingsGetResults throughputSettingsGetResults = CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionThroughputWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name).GetAwaiter().GetResult().Body; WriteObject(throughputSettingsGetResults); } } else { IEnumerable <MongoDBCollectionGetResults> mongoDBCollections = CosmosDBManagementClient.MongoDBResources.ListMongoDBCollectionsWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName).GetAwaiter().GetResult().Body; foreach (MongoDBCollectionGetResults mongoDBCollection in mongoDBCollections) { WriteObject(new PSMongoDBCollectionGetResults(mongoDBCollection)); } } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; ContainerName = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } SqlUserDefinedFunctionCreateUpdateParameters sqlStoredProcedureCreateUpdateParameters = new SqlUserDefinedFunctionCreateUpdateParameters { Resource = new SqlUserDefinedFunctionResource { Id = Name, Body = Body }, Options = new Dictionary <string, string>() { } }; if (ShouldProcess(Name, "Creating or Updating CosmosDB Sql User Defined Function")) { SqlUserDefinedFunctionGetResults sqlUserDefinedFunctionGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlUserDefinedFunctionWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name, sqlStoredProcedureCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlUserDefinedFunctionGetResults(sqlUserDefinedFunctionGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; ContainerName = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } else if (ParameterSetName.Equals(ObjectParameterSet)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; ContainerName = ResourceIdentifierExtensions.GetSqlContainerName(resourceIdentifier); DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); Name = resourceIdentifier.ResourceName; } SqlStoredProcedureGetResults readSqlStoredProcedureGetResults = null; try { readSqlStoredProcedureGetResults = CosmosDBManagementClient.SqlResources.GetSqlStoredProcedure(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } if (string.IsNullOrEmpty(Body)) { Body = readSqlStoredProcedureGetResults.Resource.Body; } SqlStoredProcedureCreateUpdateParameters sqlStoredProcedureCreateUpdateParameters = new SqlStoredProcedureCreateUpdateParameters { Resource = new SqlStoredProcedureResource { Id = Name, Body = Body }, Options = new CreateUpdateOptions() { } //passing empty object as options cannot be null }; if (ShouldProcess(Name, "Updating an existing CosmosDB Sql Stored Procedure")) { SqlStoredProcedureGetResults sqlStoredProcedureGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlStoredProcedureWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name, sqlStoredProcedureCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlStoredProcedureGetResults(sqlStoredProcedureGetResults)); } return; }
public override void PopulateFromInputObject() { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; KeyspaceName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } CassandraTableGetResults readCassandraTableGetResults = null; try { readCassandraTableGetResults = CosmosDBManagementClient.CassandraResources.GetCassandraTable(ResourceGroupName, AccountName, KeyspaceName, Name); } catch (CloudException e) { if (e.Response.StatusCode != System.Net.HttpStatusCode.NotFound) { throw; } } if (readCassandraTableGetResults != null) { throw new ConflictingResourceException(message: string.Format(ExceptionMessage.Conflict, Name)); } CreateUpdateOptions options = new CreateUpdateOptions(); if (Throughput != null) { options.Throughput = Throughput.ToString(); } CassandraTableResource cassandraTableResource = new CassandraTableResource { Id = Name, DefaultTtl = TtlInSeconds }; cassandraTableResource.Schema = PSCassandraSchema.ToSDKModel(Schema); CassandraTableCreateUpdateParameters cassandraTableCreateUpdateParameters = new CassandraTableCreateUpdateParameters { Resource = cassandraTableResource, Options = options }; if (ShouldProcess(Name, "Creating a new CosmosDB Cassandra Table")) { CassandraTableGetResults cassandraTableGetResults = CosmosDBManagementClient.CassandraResources.CreateUpdateCassandraTableWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName, Name, cassandraTableCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSCassandraTableGetResults(cassandraTableGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; AccountName = resourceIdentifier.ResourceName; } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); Name = resourceIdentifier.ResourceName; } TableGetResults readTableGetResults = null; try { readTableGetResults = CosmosDBManagementClient.TableResources.GetTable(ResourceGroupName, AccountName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } CreateUpdateOptions options = new CreateUpdateOptions(); if (Throughput != null) { options.Throughput = Throughput.ToString(); } TableCreateUpdateParameters tableCreateUpdateParameters = new TableCreateUpdateParameters { Resource = new TableResource { Id = Name }, Options = options }; if (ShouldProcess(Name, "Updating an existing CosmosDB Table")) { TableGetResults tableGetResults = CosmosDBManagementClient.TableResources.CreateUpdateTableWithHttpMessagesAsync(ResourceGroupName, AccountName, Name, tableCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSTableGetResults(tableGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } MongoDBCollectionResource mongoDBCollectionResource = new MongoDBCollectionResource { Id = Name }; if (Shard != null) { mongoDBCollectionResource.ShardKey = new Dictionary <string, string> { { Shard, "Hash" } }; } if (Index != null) { List <MongoIndex> Indexes = new List <MongoIndex>(); foreach (PSMongoIndex psMongoIndex in Index) { Indexes.Add(PSMongoIndex.ConvertPSMongoIndexToMongoIndex(psMongoIndex)); } mongoDBCollectionResource.Indexes = Indexes; } CreateUpdateOptions options = new CreateUpdateOptions(); if (Throughput != null) { options.Throughput = Throughput.ToString(); } MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = mongoDBCollectionResource, Options = options }; if (ShouldProcess(Name, "Setting CosmosDB MongoDB Collection")) { MongoDBCollectionGetResults mongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSMongoDBCollectionGetResults(mongoDBCollectionGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; AccountName = resourceIdentifier.ResourceName; } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } SqlDatabaseGetResults readSqlDatabaseGetResults = null; try { readSqlDatabaseGetResults = CosmosDBManagementClient.SqlResources.GetSqlDatabase(ResourceGroupName, AccountName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); SqlDatabaseCreateUpdateParameters sqlDatabaseCreateUpdateParameters = new SqlDatabaseCreateUpdateParameters { Resource = new SqlDatabaseResource { Id = Name }, Options = options }; if (ShouldProcess(Name, "Updating an existing CosmosDB Sql Database")) { SqlDatabaseGetResults sqlDatabaseGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlDatabaseWithHttpMessagesAsync(ResourceGroupName, AccountName, Name, sqlDatabaseCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlDatabaseGetResults(sqlDatabaseGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetMongoDBDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } ThroughputSettingsGetResults throughputSettingsGetResults = CosmosDBManagementClient.MongoDBResources.GetMongoDBCollectionThroughputWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name).GetAwaiter().GetResult().Body; WriteObject(new PSThroughputSettingsGetResults(throughputSettingsGetResults)); return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; ContainerName = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (string.IsNullOrEmpty(TriggerOperation)) { TriggerOperation = "All"; } if (string.IsNullOrEmpty(TriggerType)) { TriggerType = "Pre"; } SqlTriggerCreateUpdateParameters sqlTriggerCreateUpdateParameters = new SqlTriggerCreateUpdateParameters { Resource = new SqlTriggerResource { Id = Name, TriggerOperation = TriggerOperation, TriggerType = TriggerType, Body = Body }, Options = new Dictionary <string, string>() { } }; if (ShouldProcess(Name, "Creating or Updating CosmosDB Sql Trigger")) { SqlTriggerGetResults sqlTriggerGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlTriggerWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, ContainerName, Name, sqlTriggerCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlTriggerGetResults(sqlTriggerGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; KeyspaceName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } IDictionary <string, string> options = new Dictionary <string, string>(); if (Throughput != null) { options.Add("Throughput", Throughput.ToString()); } CassandraTableResource cassandraTableResource = new CassandraTableResource { Id = Name, DefaultTtl = TtlInSeconds }; cassandraTableResource.Schema = PSCassandraSchema.ConvertPSCassandraSchemaToCassandraSchema(Schema); CassandraTableCreateUpdateParameters cassandraTableCreateUpdateParameters = new CassandraTableCreateUpdateParameters { Resource = cassandraTableResource, Options = options }; if (ShouldProcess(Name, "Setting CosmosDB Cassandra Table")) { CassandraTableGetResults cassandraTableGetResults = CosmosDBManagementClient.CassandraResources.CreateUpdateCassandraTableWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName, Name, cassandraTableCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSCassandraTableGetResults(cassandraTableGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } if (ShouldProcess(Name, "Deleting CosmosDB Gremlin Database")) { CosmosDBManagementClient.GremlinResources.DeleteGremlinDatabaseWithHttpMessagesAsync(ResourceGroupName, AccountName, Name).GetAwaiter().GetResult(); if (PassThru) { WriteObject(true); } } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(SqlDatabaseObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); Name = InputObject.Name; } KeyWrapMetadata newEncryptionKeyWrapMetadata; if (KeyWrapMetadata != null) { newEncryptionKeyWrapMetadata = PSSqlKeyWrapMetadata.ToSDKModel(KeyWrapMetadata); } else { throw new ArgumentException("KeyWrapMetadata cannot be null"); } ClientEncryptionKeyGetResults readClientEncryptionKeyGetResults = null; try { readClientEncryptionKeyGetResults = CosmosDBManagementClient.SqlResources.GetClientEncryptionKey(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } ClientEncryptionKeyResource clientEncryptionKeyResource = UpdateAzCosmosDbClientEncryptionKey.PopulateSqlClientEncryptionKeyResource(readClientEncryptionKeyGetResults.Resource); if (!string.Equals(newEncryptionKeyWrapMetadata.Algorithm, "RSA-OAEP")) { throw new ArgumentException($"Invalid key wrap algorithm '{newEncryptionKeyWrapMetadata.Algorithm}' passed. Please refer to https://aka.ms/CosmosClientEncryption for more details."); } byte[] rewrappedKey; if (string.Equals(clientEncryptionKeyResource.KeyWrapMetadata.Type, "AZURE_KEY_VAULT") && KeyEncryptionKeyResolver == null) { if (!string.Equals(newEncryptionKeyWrapMetadata.Type, "AZURE_KEY_VAULT")) { throw new ArgumentException("KeyEncryptionKeyResolver type cannot be changed during rewrap operations. Please refer to https://aka.ms/CosmosClientEncryption for more details."); } // get the token credential for key vault audience. TokenCredential tokenCredential = new CosmosDBSessionCredential(DefaultContext, AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId); KeyEncryptionKeyResolver = new KeyResolver(tokenCredential); } else { if (KeyEncryptionKeyResolver == null) { throw new ArgumentException("KeyEncryptionKeyResolver cannot be null."); } } byte[] unwrappedKey = KeyEncryptionKeyResolver.Resolve(clientEncryptionKeyResource.KeyWrapMetadata.Value) .UnwrapKey(clientEncryptionKeyResource.KeyWrapMetadata.Algorithm, clientEncryptionKeyResource.WrappedDataEncryptionKey); rewrappedKey = KeyEncryptionKeyResolver.Resolve(newEncryptionKeyWrapMetadata.Value) .WrapKey(newEncryptionKeyWrapMetadata.Algorithm, unwrappedKey); clientEncryptionKeyResource = new ClientEncryptionKeyResource { Id = Name, EncryptionAlgorithm = clientEncryptionKeyResource.EncryptionAlgorithm, KeyWrapMetadata = newEncryptionKeyWrapMetadata, WrappedDataEncryptionKey = rewrappedKey }; ClientEncryptionKeyCreateUpdateParameters clientEncryptionKeyCreateUpdateParameters = new ClientEncryptionKeyCreateUpdateParameters { Resource = clientEncryptionKeyResource }; if (ShouldProcess(Name, "Updating an existing CosmosDB Client Encryption Key")) { ClientEncryptionKeyGetResults clientEncryptionKeyGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateClientEncryptionKeyWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, clientEncryptionKeyCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlClientEncryptionKeyGetResults(clientEncryptionKeyGetResults)); } }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } List <string> Paths = new List <string>(); foreach (string path in PartitionKeyPath) { Paths.Add(path); } SqlContainerResource sqlContainerResource = new SqlContainerResource { Id = Name, PartitionKey = new ContainerPartitionKey { Kind = PartitionKeyKind, Paths = Paths, Version = PartitionKeyVersion } }; if (UniqueKeyPolicy != null) { UniqueKeyPolicy uniqueKeyPolicy = new UniqueKeyPolicy(); foreach (PSSqlUniqueKey uniqueKey in UniqueKeyPolicy.UniqueKey) { UniqueKey key = new UniqueKey(uniqueKey.Path); uniqueKeyPolicy.UniqueKeys.Add(key); } sqlContainerResource.UniqueKeyPolicy = uniqueKeyPolicy; } if (TtlInSeconds != null) { sqlContainerResource.DefaultTtl = TtlInSeconds; } if (ConflictResolutionPolicy != null) { ConflictResolutionPolicy conflictResolutionPolicy = new ConflictResolutionPolicy { Mode = ConflictResolutionPolicy.Type }; if (ConflictResolutionPolicy.Type.Equals("LastWriterWins", StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionPath = ConflictResolutionPolicy.Path; } else if (ConflictResolutionPolicy.Type.Equals("Custom", StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionProcedure = ConflictResolutionPolicy.ConflictResolutionProcedure; } sqlContainerResource.ConflictResolutionPolicy = conflictResolutionPolicy; } if (IndexingPolicy != null) { IList <IncludedPath> includedPaths = new List <IncludedPath>(); IList <ExcludedPath> excludedPaths = new List <ExcludedPath>(); foreach (string path in IndexingPolicy.IncludedPaths) { includedPaths.Add(new IncludedPath(path: path)); } foreach (string path in IndexingPolicy.ExcludedPaths) { excludedPaths.Add(new ExcludedPath(path: path)); } IndexingPolicy indexingPolicy = new IndexingPolicy { Automatic = IndexingPolicy.Automatic, IndexingMode = IndexingPolicy.IndexingMode, IncludedPaths = includedPaths, ExcludedPaths = excludedPaths }; sqlContainerResource.IndexingPolicy = indexingPolicy; } IDictionary <string, string> options = new Dictionary <string, string>(); if (Throughput != null) { options.Add("Throughput", Throughput.ToString()); } SqlContainerCreateUpdateParameters sqlContainerCreateUpdateParameters = new SqlContainerCreateUpdateParameters { Resource = sqlContainerResource, Options = options }; if (ShouldProcess(Name, "Creating or Updating CosmosDB Sql Container")) { SqlContainerGetResults sqlContainerGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlContainerWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, sqlContainerCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlContainerGetResults(sqlContainerGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetMongoDBDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } MongoDBCollectionGetResults readMongoDBCollectionGetResults = null; try { readMongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.GetMongoDBCollection(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } MongoDBCollectionResource mongoDBCollectionResource = PopulateMongoDBResource(readMongoDBCollectionGetResults.Resource); if (Shard != null) { mongoDBCollectionResource.ShardKey = new Dictionary <string, string> { { Shard, "Hash" } }; } if (Index != null) { List <MongoIndex> Indexes = new List <MongoIndex>(); foreach (PSMongoIndex psMongoIndex in Index) { Indexes.Add(PSMongoIndex.ToSDKModel(psMongoIndex)); } mongoDBCollectionResource.Indexes = Indexes; } if (AnalyticalStorageTtl != null) { mongoDBCollectionResource.AnalyticalStorageTtl = AnalyticalStorageTtl; } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); MongoDBCollectionCreateUpdateParameters mongoDBCollectionCreateUpdateParameters = new MongoDBCollectionCreateUpdateParameters { Resource = mongoDBCollectionResource, Options = options }; if (ShouldProcess(Name, "Updating an existing CosmosDB MongoDB Collection")) { MongoDBCollectionGetResults mongoDBCollectionGetResults = CosmosDBManagementClient.MongoDBResources.CreateUpdateMongoDBCollectionWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, mongoDBCollectionCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSMongoDBCollectionGetResults(mongoDBCollectionGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } GremlinGraphGetResults readGremlinGraphGetResults = null; try { readGremlinGraphGetResults = CosmosDBManagementClient.GremlinResources.GetGremlinGraph(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode != System.Net.HttpStatusCode.NotFound) { throw; } } if (readGremlinGraphGetResults != null) { throw new ConflictingResourceException(message: string.Format(ExceptionMessage.Conflict, Name)); } List <string> Paths = new List <string>(PartitionKeyPath); GremlinGraphResource gremlinGraphResource = new GremlinGraphResource { Id = Name, PartitionKey = new ContainerPartitionKey { Kind = PartitionKeyKind, Paths = Paths, Version = PartitionKeyVersion } }; if (UniqueKeyPolicy != null) { gremlinGraphResource.UniqueKeyPolicy = PSUniqueKeyPolicy.ToSDKModel(UniqueKeyPolicy); } if (TtlInSeconds != null) { gremlinGraphResource.DefaultTtl = TtlInSeconds; } if (ConflictResolutionPolicy != null) { gremlinGraphResource.ConflictResolutionPolicy = PSConflictResolutionPolicy.ToSDKModel(ConflictResolutionPolicy); } else if (ConflictResolutionPolicyMode != null) { ConflictResolutionPolicy conflictResolutionPolicy = new ConflictResolutionPolicy { Mode = ConflictResolutionPolicyMode }; if (ConflictResolutionPolicyMode.Equals(ConflictResolutionMode.LastWriterWins, StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionPath = ConflictResolutionPolicyPath; } else if (ConflictResolutionPolicyMode.Equals(ConflictResolutionMode.Custom, StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionProcedure = ConflictResolutionPolicyProcedure; } gremlinGraphResource.ConflictResolutionPolicy = conflictResolutionPolicy; } if (IndexingPolicy != null) { gremlinGraphResource.IndexingPolicy = PSIndexingPolicy.ToSDKModel(IndexingPolicy); } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); GremlinGraphCreateUpdateParameters gremlinGraphCreateUpdateParameters = new GremlinGraphCreateUpdateParameters { Resource = gremlinGraphResource, Options = options }; if (ShouldProcess(Name, "Creating a new CosmosDB Gremlin Graph")) { GremlinGraphGetResults gremlinGraphGetResults = CosmosDBManagementClient.GremlinResources.CreateUpdateGremlinGraphWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, gremlinGraphCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSGremlinGraphGetResults(gremlinGraphGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(SqlDatabaseObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } KeyWrapMetadata encryptionKeyWrapMetadata; if (KeyWrapMetadata != null) { encryptionKeyWrapMetadata = PSSqlKeyWrapMetadata.ToSDKModel(KeyWrapMetadata); } else { throw new ArgumentException("KeyWrapMetadata cannot be null"); } if (!string.Equals(EncryptionAlgorithmName, "AEAD_AES_256_CBC_HMAC_SHA256")) { throw new ArgumentException($"Invalid encryption algorithm '{EncryptionAlgorithmName}' passed. Please refer to https://aka.ms/CosmosClientEncryption for more details."); } if (!string.Equals(encryptionKeyWrapMetadata.Algorithm, "RSA-OAEP")) { throw new ArgumentException($"Invalid key wrap algorithm '{encryptionKeyWrapMetadata.Algorithm}' passed. Please refer to https://aka.ms/CosmosClientEncryption for more details."); } if (string.Equals(encryptionKeyWrapMetadata.Type, "AZURE_KEY_VAULT") && KeyEncryptionKeyResolver == null) { // get the token credential for key vault audience. TokenCredential tokenCredential = new CosmosDBSessionCredential(DefaultContext, AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId); KeyEncryptionKeyResolver = new KeyResolver(tokenCredential); } else { if (KeyEncryptionKeyResolver == null) { throw new ArgumentException("KeyEncryptionKeyResolver cannot be null."); } } byte[] plainTextDataEncryptionKey = new byte[32]; RandomNumberGenerator rng = RandomNumberGenerator.Create(); rng.GetBytes(plainTextDataEncryptionKey); byte[] wrappedDataEncryptionKey = KeyEncryptionKeyResolver.Resolve(encryptionKeyWrapMetadata.Value) .WrapKey(encryptionKeyWrapMetadata.Algorithm, plainTextDataEncryptionKey); ClientEncryptionKeyResource clientEncryptionKeyResource = new ClientEncryptionKeyResource { Id = Name, EncryptionAlgorithm = EncryptionAlgorithmName, KeyWrapMetadata = encryptionKeyWrapMetadata, WrappedDataEncryptionKey = wrappedDataEncryptionKey }; ClientEncryptionKeyCreateUpdateParameters clientEncryptionKeyCreateUpdateParameters = new ClientEncryptionKeyCreateUpdateParameters { Resource = clientEncryptionKeyResource }; if (ShouldProcess(Name, "Creating a new CosmosDB Client Encryption Key")) { // FIXME : This requires a backend fix since its not honoring If-None-Match header with a *. This is required to prevent a race which might result in // accidental replace of a key. This is a best effort approach to check for resource conflict. ClientEncryptionKeyGetResults readClientEncryptionKeyGetResults = null; try { readClientEncryptionKeyGetResults = CosmosDBManagementClient.SqlResources.GetClientEncryptionKey(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode != System.Net.HttpStatusCode.NotFound) { throw; } } if (readClientEncryptionKeyGetResults != null) { throw new ConflictingResourceException(message: string.Format(ExceptionMessage.Conflict, Name)); } ClientEncryptionKeyGetResults clientEncryptionKeyGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateClientEncryptionKeyWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, clientEncryptionKeyCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlClientEncryptionKeyGetResults(clientEncryptionKeyGetResults)); } }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; DatabaseName = ResourceIdentifierExtensions.GetSqlDatabaseName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } SqlContainerGetResults readSqlContainerGetResults = null; try { readSqlContainerGetResults = CosmosDBManagementClient.SqlResources.GetSqlContainer(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } SqlContainerResource sqlContainerResource = UpdateAzCosmosDBSqlContainer.PopulateSqlContainerResource(readSqlContainerGetResults.Resource); if (PartitionKeyPath != null) { List <string> Paths = new List <string>(PartitionKeyPath); sqlContainerResource.PartitionKey = new ContainerPartitionKey { Kind = PartitionKeyKind, Paths = Paths, Version = PartitionKeyVersion }; } if (UniqueKeyPolicy != null) { sqlContainerResource.UniqueKeyPolicy = PSUniqueKeyPolicy.ToSDKModel(UniqueKeyPolicy); } if (TtlInSeconds != null) { sqlContainerResource.DefaultTtl = TtlInSeconds; } if (ConflictResolutionPolicy != null) { sqlContainerResource.ConflictResolutionPolicy = PSConflictResolutionPolicy.ToSDKModel(ConflictResolutionPolicy); } else if (ConflictResolutionPolicyMode != null) { ConflictResolutionPolicy conflictResolutionPolicy = new ConflictResolutionPolicy { Mode = ConflictResolutionPolicyMode }; if (ConflictResolutionPolicyMode.Equals(ConflictResolutionMode.LastWriterWins, StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionPath = ConflictResolutionPolicyPath; } else if (ConflictResolutionPolicyMode.Equals(ConflictResolutionMode.Custom, StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionProcedure = ConflictResolutionPolicyProcedure; } sqlContainerResource.ConflictResolutionPolicy = conflictResolutionPolicy; } if (IndexingPolicy != null) { sqlContainerResource.IndexingPolicy = PSIndexingPolicy.ToSDKModel(IndexingPolicy); } if (AnalyticalStorageTtl != null) { sqlContainerResource.AnalyticalStorageTtl = AnalyticalStorageTtl; } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); SqlContainerCreateUpdateParameters sqlContainerCreateUpdateParameters = new SqlContainerCreateUpdateParameters { Resource = sqlContainerResource, Options = options }; if (ShouldProcess(Name, "Updating an existing CosmosDB Sql Container")) { SqlContainerGetResults sqlContainerGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlContainer(ResourceGroupName, AccountName, DatabaseName, Name, sqlContainerCreateUpdateParameters); WriteObject(new PSSqlContainerGetResults(sqlContainerGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } List <string> Paths = new List <string>(); foreach (string path in PartitionKeyPath) { Paths.Add(path); } GremlinGraphResource gremlinGraphResource = new GremlinGraphResource { Id = Name, PartitionKey = new ContainerPartitionKey { Kind = PartitionKeyKind, Paths = Paths, Version = PartitionKeyVersion } }; if (UniqueKeyPolicy != null) { UniqueKeyPolicy uniqueKeyPolicy = new UniqueKeyPolicy { UniqueKeys = new List <UniqueKey>() }; foreach (PSUniqueKey uniqueKey in UniqueKeyPolicy.UniqueKeys) { UniqueKey key = new UniqueKey { Paths = new List <string>() }; foreach (string path in uniqueKey.Paths) { key.Paths.Add(path); } uniqueKeyPolicy.UniqueKeys.Add(key); } gremlinGraphResource.UniqueKeyPolicy = uniqueKeyPolicy; } if (TtlInSeconds != null) { gremlinGraphResource.DefaultTtl = TtlInSeconds; } if (ConflictResolutionPolicy != null) { ConflictResolutionPolicyMode = ConflictResolutionPolicy.Mode; if (ConflictResolutionPolicy.ConflictResolutionPath != null) { ConflictResolutionPolicyPath = ConflictResolutionPolicy.ConflictResolutionPath; } if (ConflictResolutionPolicy.ConflictResolutionProcedure != null) { ConflictResolutionPolicyProcedure = ConflictResolutionPolicy.ConflictResolutionProcedure; } } if (ConflictResolutionPolicyMode != null) { ConflictResolutionPolicy conflictResolutionPolicy = new ConflictResolutionPolicy { Mode = ConflictResolutionPolicyMode }; if (ConflictResolutionPolicyMode.Equals("LastWriterWins", StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionPath = ConflictResolutionPolicyPath; } else if (ConflictResolutionPolicyMode.Equals("Custom", StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionProcedure = ConflictResolutionPolicyProcedure; } gremlinGraphResource.ConflictResolutionPolicy = conflictResolutionPolicy; } if (IndexingPolicy != null) { IndexingPolicy indexingPolicy = new IndexingPolicy { Automatic = IndexingPolicy.Automatic, IndexingMode = IndexingPolicy.IndexingMode, }; if (IndexingPolicy.IncludedPaths != null) { IList <IncludedPath> includedPaths = new List <IncludedPath>(); foreach (PSIncludedPath pSIncludedPath in IndexingPolicy.IncludedPaths) { includedPaths.Add(new IncludedPath { Path = pSIncludedPath.Path, Indexes = PSIncludedPath.ConvertPSIndexesToIndexes(pSIncludedPath.Indexes) }); } indexingPolicy.IncludedPaths = new List <IncludedPath>(includedPaths); } if (IndexingPolicy.ExcludedPaths != null && IndexingPolicy.ExcludedPaths.Count > 0) { IList <ExcludedPath> excludedPaths = new List <ExcludedPath>(); foreach (PSExcludedPath pSExcludedPath in IndexingPolicy.ExcludedPaths) { excludedPaths.Add(new ExcludedPath { Path = pSExcludedPath.Path }); } indexingPolicy.ExcludedPaths = new List <ExcludedPath>(excludedPaths); } if (IndexingPolicy.CompositeIndexes != null) { IList <IList <CompositePath> > compositeIndexes = new List <IList <CompositePath> >(); foreach (IList <PSCompositePath> pSCompositePathList in IndexingPolicy.CompositeIndexes) { IList <CompositePath> compositePathList = new List <CompositePath>(); foreach (PSCompositePath pSCompositePath in pSCompositePathList) { compositePathList.Add(new CompositePath { Order = pSCompositePath.Order, Path = pSCompositePath.Path }); } compositeIndexes.Add(compositePathList); } indexingPolicy.CompositeIndexes = new List <IList <CompositePath> >(compositeIndexes); } if (IndexingPolicy.SpatialIndexes != null && IndexingPolicy.SpatialIndexes.Count > 0) { IList <SpatialSpec> spatialIndexes = new List <SpatialSpec>(); foreach (PSSpatialSpec pSSpatialSpec in IndexingPolicy.SpatialIndexes) { spatialIndexes.Add(new SpatialSpec { Path = pSSpatialSpec.Path, Types = pSSpatialSpec.Types }); } indexingPolicy.SpatialIndexes = new List <SpatialSpec>(spatialIndexes); } gremlinGraphResource.IndexingPolicy = indexingPolicy; } CreateUpdateOptions options = new CreateUpdateOptions(); if (Throughput != null) { options.Throughput = Throughput.ToString(); } GremlinGraphCreateUpdateParameters gremlinGraphCreateUpdateParameters = new GremlinGraphCreateUpdateParameters { Resource = gremlinGraphResource, Options = options }; if (ShouldProcess(Name, "Setting CosmosDB Gremlin Graph")) { GremlinGraphGetResults gremlinGraphGetResults = CosmosDBManagementClient.GremlinResources.CreateUpdateGremlinGraphWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, gremlinGraphCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSGremlinGraphGetResults(gremlinGraphGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; DatabaseName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } SqlContainerGetResults readSqlContainerGetResults = null; try { readSqlContainerGetResults = CosmosDBManagementClient.SqlResources.GetSqlContainer(ResourceGroupName, AccountName, DatabaseName, Name); } catch (CloudException e) { if (e.Response.StatusCode != System.Net.HttpStatusCode.NotFound) { throw; } } if (readSqlContainerGetResults != null) { throw new ConflictingResourceException(message: string.Format(ExceptionMessage.Conflict, Name)); } List <string> Paths = new List <string>(); foreach (string path in PartitionKeyPath) { Paths.Add(path); } SqlContainerResource sqlContainerResource = new SqlContainerResource { Id = Name, PartitionKey = new ContainerPartitionKey { Kind = PartitionKeyKind, Paths = Paths, Version = PartitionKeyVersion } }; if (UniqueKeyPolicy != null) { sqlContainerResource.UniqueKeyPolicy = PSUniqueKeyPolicy.ConvertPSUniqueKeyPolicyToUniqueKeyPolicy(UniqueKeyPolicy); } if (TtlInSeconds != null) { sqlContainerResource.DefaultTtl = TtlInSeconds; } if (ConflictResolutionPolicy != null) { sqlContainerResource.ConflictResolutionPolicy = PSConflictResolutionPolicy.ConvertPSConflictResolutionPolicyToConflictResolutionPolicy(ConflictResolutionPolicy); } if (ConflictResolutionPolicyMode != null) { ConflictResolutionPolicy conflictResolutionPolicy = new ConflictResolutionPolicy { Mode = ConflictResolutionPolicyMode }; if (ConflictResolutionPolicyMode.Equals(ConflictResolutionMode.LastWriterWins, StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionPath = ConflictResolutionPolicyPath; } else if (ConflictResolutionPolicyMode.Equals(ConflictResolutionMode.Custom, StringComparison.OrdinalIgnoreCase)) { conflictResolutionPolicy.ConflictResolutionProcedure = ConflictResolutionPolicyProcedure; } sqlContainerResource.ConflictResolutionPolicy = conflictResolutionPolicy; } if (IndexingPolicy != null) { sqlContainerResource.IndexingPolicy = PSIndexingPolicy.ConvertPSIndexingToIndexingPolicy(IndexingPolicy); } CreateUpdateOptions options = new CreateUpdateOptions(); if (Throughput != null) { options.Throughput = Throughput.ToString(); } SqlContainerCreateUpdateParameters sqlContainerCreateUpdateParameters = new SqlContainerCreateUpdateParameters { Resource = sqlContainerResource, Options = options }; if (ShouldProcess(Name, "Creating a new CosmosDB Sql Container")) { SqlContainerGetResults sqlContainerGetResults = CosmosDBManagementClient.SqlResources.CreateUpdateSqlContainerWithHttpMessagesAsync(ResourceGroupName, AccountName, DatabaseName, Name, sqlContainerCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSSqlContainerGetResults(sqlContainerGetResults)); } return; }
public override void ExecuteCmdlet() { if (ParameterSetName.Equals(ParentObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(ParentObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; KeyspaceName = resourceIdentifier.ResourceName; AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } else if (ParameterSetName.Equals(ObjectParameterSet, StringComparison.Ordinal)) { ResourceIdentifier resourceIdentifier = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resourceIdentifier.ResourceGroupName; Name = resourceIdentifier.ResourceName; KeyspaceName = ResourceIdentifierExtensions.GetCassandraKeyspaceName(resourceIdentifier); AccountName = ResourceIdentifierExtensions.GetDatabaseAccountName(resourceIdentifier); } CassandraTableGetResults readCassandraTableGetResults = null; try { readCassandraTableGetResults = CosmosDBManagementClient.CassandraResources.GetCassandraTable(ResourceGroupName, AccountName, KeyspaceName, Name); } catch (CloudException e) { if (e.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { throw new ResourceNotFoundException(message: string.Format(ExceptionMessage.NotFound, Name), innerException: e); } } CassandraTableResource cassandraTableResource = PopulateCassandraTableResource(readCassandraTableGetResults.Resource); if (TtlInSeconds != null) { cassandraTableResource.DefaultTtl = TtlInSeconds; } if (Schema != null) { cassandraTableResource.Schema = PSCassandraSchema.ToSDKModel(Schema); } if (AnalyticalStorageTtl != null) { cassandraTableResource.AnalyticalStorageTtl = AnalyticalStorageTtl; } CreateUpdateOptions options = ThroughputHelper.PopulateCreateUpdateOptions(Throughput, AutoscaleMaxThroughput); CassandraTableCreateUpdateParameters cassandraTableCreateUpdateParameters = new CassandraTableCreateUpdateParameters { Resource = cassandraTableResource, Options = options, }; if (ShouldProcess(Name, "Updating an existing CosmosDB Cassandra Table")) { CassandraTableGetResults cassandraTableGetResults = CosmosDBManagementClient.CassandraResources.CreateUpdateCassandraTableWithHttpMessagesAsync(ResourceGroupName, AccountName, KeyspaceName, Name, cassandraTableCreateUpdateParameters).GetAwaiter().GetResult().Body; WriteObject(new PSCassandraTableGetResults(cassandraTableGetResults)); } return; }