public RedisResource CreateCache(string resourceGroupName, string cacheName, string location, string skuFamily, int skuCapacity, string skuName, Hashtable redisConfiguration, bool?enableNonSslPort, Hashtable tenantSettings, int?shardCount, string minimumTlsVersion, string subnetId, string staticIP, Hashtable tags, IList <string> zones, string redisVersion, string identityType, string[] userAssignedIdentities) { try { _resourceManagementClient.Providers.Register("Microsoft.Cache"); } catch { } var parameters = new RedisCreateParameters { Location = location, Sku = new Microsoft.Azure.Management.Redis.Models.Sku { Name = skuName, Family = skuFamily, Capacity = skuCapacity }, RedisVersion = redisVersion }; parameters.Identity = Utility.BuildManagedServiceIdentity(identityType, userAssignedIdentities); if (zones != null && zones.Count != 0) { parameters.Zones = zones; } if (tags != null) { parameters.Tags = new Dictionary <string, string>(); foreach (object key in tags.Keys) { parameters.Tags.Add(key.ToString(), tags[key].ToString()); } } if (redisConfiguration != null) { parameters.RedisConfiguration = new RedisCommonPropertiesRedisConfiguration(additionalProperties: new Dictionary <string, object>()); foreach (object key in redisConfiguration.Keys) { parameters.RedisConfiguration.AdditionalProperties.Add(key.ToString(), redisConfiguration[key].ToString()); } } if (enableNonSslPort.HasValue) { parameters.EnableNonSslPort = enableNonSslPort.Value; } if (tenantSettings != null) { parameters.TenantSettings = new Dictionary <string, string>(); foreach (object key in tenantSettings.Keys) { parameters.TenantSettings.Add(key.ToString(), tenantSettings[key].ToString()); } } if (shardCount.HasValue) { parameters.ShardCount = shardCount.Value; } if (!string.IsNullOrEmpty(minimumTlsVersion)) { parameters.MinimumTlsVersion = minimumTlsVersion; } if (!string.IsNullOrWhiteSpace(subnetId)) { parameters.SubnetId = subnetId; } if (!string.IsNullOrWhiteSpace(staticIP)) { parameters.StaticIP = staticIP; } RedisResource response = _client.Redis.BeginCreate(resourceGroupName: resourceGroupName, name: cacheName, parameters: parameters); return(response); }
public RedisResource UpdateCache(string resourceGroupName, string cacheName, string skuFamily, int skuCapacity, string skuName, Hashtable redisConfiguration, bool?enableNonSslPort, Hashtable tenantSettings, int?shardCount, string MinimumTlsVersion, string redisVersion, Hashtable tags, string identityType, string[] userAssignedIdentities) { try { _resourceManagementClient.Providers.Register("Microsoft.Cache"); } catch { } var parameters = new RedisUpdateParameters { Sku = new Microsoft.Azure.Management.Redis.Models.Sku { Name = skuName, Family = skuFamily, Capacity = skuCapacity } }; if (tags != null) { parameters.Tags = new Dictionary <string, string>(); foreach (object key in tags.Keys) { parameters.Tags.Add(key.ToString(), tags[key].ToString()); } } if (redisConfiguration != null) { parameters.RedisConfiguration = new RedisCommonPropertiesRedisConfiguration(additionalProperties: new Dictionary <string, object>()); foreach (object key in redisConfiguration.Keys) { parameters.RedisConfiguration.AdditionalProperties.Add(key.ToString(), redisConfiguration[key].ToString()); } } parameters.Identity = Utility.BuildManagedServiceIdentity(identityType, userAssignedIdentities); parameters.EnableNonSslPort = enableNonSslPort; parameters.RedisVersion = redisVersion; if (tenantSettings != null) { parameters.TenantSettings = new Dictionary <string, string>(); foreach (object key in tenantSettings.Keys) { // RP should disregard "InternalDependencyList" passed from user (it happens because of piping scenario) string stringKey = key.ToString(); if (stringKey.Equals("InternalDependencyList", StringComparison.InvariantCultureIgnoreCase)) { continue; } parameters.TenantSettings.Add(key.ToString(), tenantSettings[key].ToString()); } } parameters.ShardCount = shardCount; if (!string.IsNullOrEmpty(MinimumTlsVersion)) { parameters.MinimumTlsVersion = MinimumTlsVersion; } RedisResource response = _client.Redis.Update(resourceGroupName: resourceGroupName, name: cacheName, parameters: parameters); return(response); }