/// <summary>
        /// Add an autoheal rule
        /// </summary>
        /// <param name="rule">Rule to add</param>
        public void AddAutoHealRule(AppServiceWebAppAutoHealRule rule)
        {
            IsAutoHealEnabled = true;
            if (AutoHealRules == null)
            {
                AutoHealRules = new List <AppServiceWebAppAutoHealRule>();
            }

            AutoHealRules.Add(rule);
        }
 internal SiteConfigAutoGeneratedData(ResourceIdentifier id, string name, ResourceType type, string kind, int?numberOfWorkers, IList <string> defaultDocuments, string netFrameworkVersion, string phpVersion, string pythonVersion, string nodeVersion, string powerShellVersion, string linuxFxVersion, string windowsFxVersion, bool?requestTracingEnabled, DateTimeOffset?requestTracingExpirationTime, bool?remoteDebuggingEnabled, string remoteDebuggingVersion, bool?httpLoggingEnabled, bool?acrUseManagedIdentityCreds, string acrUserManagedIdentityID, int?logsDirectorySizeLimit, bool?detailedErrorLoggingEnabled, string publishingUsername, IList <NameValuePair> appSettings, IList <ConnStringInfo> connectionStrings, SiteMachineKey machineKey, IList <HandlerMapping> handlerMappings, string documentRoot, ScmType?scmType, bool?use32BitWorkerProcess, bool?webSocketsEnabled, bool?alwaysOn, string javaVersion, string javaContainer, string javaContainerVersion, string appCommandLine, ManagedPipelineMode?managedPipelineMode, IList <VirtualApplication> virtualApplications, SiteLoadBalancing?loadBalancing, Experiments experiments, SiteLimits limits, bool?autoHealEnabled, AutoHealRules autoHealRules, string tracingOptions, string vnetName, bool?vnetRouteAllEnabled, int?vnetPrivatePortsCount, CorsSettings cors, PushSettings push, ApiDefinitionInfo apiDefinition, ApiManagementConfig apiManagementConfig, string autoSwapSlotName, bool?localMySqlEnabled, int?managedServiceIdentityId, int?xManagedServiceIdentityId, string keyVaultReferenceIdentity, IList <IpSecurityRestriction> ipSecurityRestrictions, IList <IpSecurityRestriction> scmIpSecurityRestrictions, bool?scmIpSecurityRestrictionsUseMain, bool?http20Enabled, FtpsState?ftpsState, int?preWarmedInstanceCount, int?functionAppScaleLimit, string healthCheckPath, bool?functionsRuntimeScaleMonitoringEnabled, string websiteTimeZone, int?minimumElasticInstanceCount, IDictionary <string, AzureStorageInfoValue> azureStorageAccounts, string publicNetworkAccess) : base(id, name, type, kind)
 {
     NumberOfWorkers              = numberOfWorkers;
     DefaultDocuments             = defaultDocuments;
     NetFrameworkVersion          = netFrameworkVersion;
     PhpVersion                   = phpVersion;
     PythonVersion                = pythonVersion;
     NodeVersion                  = nodeVersion;
     PowerShellVersion            = powerShellVersion;
     LinuxFxVersion               = linuxFxVersion;
     WindowsFxVersion             = windowsFxVersion;
     RequestTracingEnabled        = requestTracingEnabled;
     RequestTracingExpirationTime = requestTracingExpirationTime;
     RemoteDebuggingEnabled       = remoteDebuggingEnabled;
     RemoteDebuggingVersion       = remoteDebuggingVersion;
     HttpLoggingEnabled           = httpLoggingEnabled;
     AcrUseManagedIdentityCreds   = acrUseManagedIdentityCreds;
     AcrUserManagedIdentityID     = acrUserManagedIdentityID;
     LogsDirectorySizeLimit       = logsDirectorySizeLimit;
     DetailedErrorLoggingEnabled  = detailedErrorLoggingEnabled;
     PublishingUsername           = publishingUsername;
     AppSettings                  = appSettings;
     ConnectionStrings            = connectionStrings;
     MachineKey                   = machineKey;
     HandlerMappings              = handlerMappings;
     DocumentRoot                 = documentRoot;
     ScmType = scmType;
     Use32BitWorkerProcess = use32BitWorkerProcess;
     WebSocketsEnabled     = webSocketsEnabled;
     AlwaysOn             = alwaysOn;
     JavaVersion          = javaVersion;
     JavaContainer        = javaContainer;
     JavaContainerVersion = javaContainerVersion;
     AppCommandLine       = appCommandLine;
     ManagedPipelineMode  = managedPipelineMode;
     VirtualApplications  = virtualApplications;
     LoadBalancing        = loadBalancing;
     Experiments          = experiments;
     Limits                = limits;
     AutoHealEnabled       = autoHealEnabled;
     AutoHealRules         = autoHealRules;
     TracingOptions        = tracingOptions;
     VnetName              = vnetName;
     VnetRouteAllEnabled   = vnetRouteAllEnabled;
     VnetPrivatePortsCount = vnetPrivatePortsCount;
     Cors                                   = cors;
     Push                                   = push;
     ApiDefinition                          = apiDefinition;
     ApiManagementConfig                    = apiManagementConfig;
     AutoSwapSlotName                       = autoSwapSlotName;
     LocalMySqlEnabled                      = localMySqlEnabled;
     ManagedServiceIdentityId               = managedServiceIdentityId;
     XManagedServiceIdentityId              = xManagedServiceIdentityId;
     KeyVaultReferenceIdentity              = keyVaultReferenceIdentity;
     IpSecurityRestrictions                 = ipSecurityRestrictions;
     ScmIpSecurityRestrictions              = scmIpSecurityRestrictions;
     ScmIpSecurityRestrictionsUseMain       = scmIpSecurityRestrictionsUseMain;
     Http20Enabled                          = http20Enabled;
     FtpsState                              = ftpsState;
     PreWarmedInstanceCount                 = preWarmedInstanceCount;
     FunctionAppScaleLimit                  = functionAppScaleLimit;
     HealthCheckPath                        = healthCheckPath;
     FunctionsRuntimeScaleMonitoringEnabled = functionsRuntimeScaleMonitoringEnabled;
     WebsiteTimeZone                        = websiteTimeZone;
     MinimumElasticInstanceCount            = minimumElasticInstanceCount;
     AzureStorageAccounts                   = azureStorageAccounts;
     PublicNetworkAccess                    = publicNetworkAccess;
 }