{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "webOptimizer": {
      "title": "web optimizer",
      "type": "object",
      "description": "Settings for WebOptimizer.Core",
      "properties": {
        "enableCaching": {
          "description": "Determines if the \"cache-control\" HTTP headers should be set and if conditional GET (304) requests should be supported. This could be helpful to disable while in development mode.",
          "type": "boolean"
        },
        "enableTagHelperBundling": {
          "description": "Determines if `<script>` and `<link>` elements should point to the bundled path or a reference per source file should be created. This is helpful to disable when in development mode.",
          "type": "boolean",
          "default": true
        }
      }
    },
    "cdn": {
      "title": "CDN",
      "type": "object",
      "description": "Definitions for WebEssentials.AspNetCore.CdnTagHelpers",
      "properties": {
        "url": {
          "description": "An absolute URL used as a prefix for static resources",
          "type": "string",
          "pattern": "^((//|https?://).+|)$"
        },
        "prefetch": {
          "description": "If true, injects a <link rel='dns-prefetch'> tag that speeds up DNS resolution to the CDN.",
          "type": "boolean",
          "default": true
        }
      }
    },
    "pwa": {
      "properties": {
        "cacheId": {
          "description": "The cache identifier of the service worker (can be any string). Change this property to force the service worker to reload in browsers.",
          "type": "string",
          "default": "v1.0"
        },
        "offlineRoute": {
          "description": "The route to the page to show when offline.",
          "type": "string",
          "default": "/offline.html"
        },
        "registerServiceWorker": {
          "description": "Determines if a script that registers the service worker should be injected into the bottom of the HTML page.",
          "type": "boolean",
          "default": true
        },
        "registerWebmanifest": {
          "description": "Determines if a meta tag that points to the web manifest should be inserted at the end of the head element.",
          "type": "boolean",
          "default": true
        },
        "routesToPreCache": {
          "description": "A comma separated list of routes to pre-cache when service worker installs in the browser.",
          "type": "string",
          "default": ""
        },
        "strategy": {
          "description": "Selects one of the predefined service worker types.",
          "enum": [
            "cacheFirst",
            "cacheFirstSafe",
            "minimal",
            "networkFirst"
          ],
          "default": "cacheFirstSafe"
        }
      }
    },
    "ElmahIo": {
      "properties": {
        "ApiKey": {
          "description": "An elmah.io API key with the Messages | Write permission.",
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "LogId": {
          "description": "The Id of the elmah.io log to store messages in.",
          "type": "string",
          "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "Application": {
          "description": "An application name to put on all error messages.",
          "type": "string"
        },
        "HandledStatusCodesToLog": {
          "description": "A list of HTTP status codes (besides 404) to log even though no exception is thrown.",
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "TreatLoggingAsBreadcrumbs": {
          "description": "Include log messages from Microsoft.Extensions.Logging as breadcrumbs.",
          "type": "boolean"
        },
        "HeartbeatId": {
          "description": "The Id of the elmah.io heartbeat to notify.",
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        }
      },
      "required": [
        "ApiKey",
        "LogId"
      ]
    },
    "protocols": {
      "description": "The protocols enabled on the endpoint.",
      "type": "string",
      "enum": [
        "None",
        "Http1",
        "Http2",
        "Http1AndHttp2",
        "Http3",
        "Http1AndHttp2AndHttp3"
      ]
    },
    "certificate": {
      "title": "certificate",
      "description": "Certificate configuration.",
      "type": "object",
      "properties": {
        "Path": {
          "description": "The certificate file path. If a file path is specified then the certificate will be loaded from the file system.",
          "type": "string"
        },
        "KeyPath": {
          "description": "The certificate key file path. Available in .NET 5 and later.",
          "type": "string"
        },
        "Password": {
          "description": "The certificate password used to access the private key.",
          "type": "string"
        },
        "Subject": {
          "description": "The certificate subject. If a subject is specified then the certificate will be loaded from the certificate store.",
          "type": "string"
        },
        "Store": {
          "description": "The certificate store name. Defaults to 'My'.",
          "type": "string",
          "default": "My"
        },
        "Location": {
          "description": "The certificate store location. Defaults to 'CurrentUser'.",
          "type": "string",
          "enum": [
            "LocalMachine",
            "CurrentUser"
          ],
          "default": "CurrentUser"
        },
        "AllowInvalid": {
          "description": "A value indicating whether or not to load certificates that are considered invalid. Defaults to false.",
          "type": "boolean",
          "default": false
        }
      }
    },
    "sslProtocols": {
      "description": "Specifies allowable SSL protocols. Defaults to 'None' which allows the operating system to choose the best protocol to use, and to block protocols that are not secure. Unless your app has a specific reason not to, you should use this default. Available in .NET 5 and later.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "None",
          "Tls",
          "Tls11",
          "Tls12",
          "Tls13"
        ],
        "default": "None"
      }
    },
    "clientCertificateMode": {
      "description": "Specifies the client certificate requirements for a HTTPS connection. Defaults to 'NoCertificate'. Available in .NET 5 and later.",
      "type": "string",
      "enum": [
        "NoCertificate",
        "AllowCertificate",
        "RequireCertificate"
      ],
      "default": "NoCertificate"
    },
    "kestrel": {
      "title": "kestrel",
      "type": "object",
      "description": "ASP.NET Core Kestrel server configuration.",
      "properties": {
        "Endpoints": {
          "title": "endpoints",
          "description": "Endpoints that Kestrel listens to for network requests. Each endpoint has a name specified by its JSON property name.",
          "type": "object",
          "additionalProperties": {
            "title": "endpoint options",
            "description": "Kestrel endpoint configuration.",
            "type": "object",
            "properties": {
              "Url": {
                "description": "The scheme, host name, and port the endpoint will listen on. A Url is required.",
                "type": "string",
                "format": "uri"
              },
              "Protocols": {
                "$ref": "#/definitions/protocols"
              },
              "SslProtocols": {
                "$ref": "#/definitions/sslProtocols"
              },
              "Certificate": {
                "$ref": "#/definitions/certificate"
              },
              "ClientCertificateMode": {
                "$ref": "#/definitions/clientCertificateMode"
              },
              "Sni": {
                "title": "SNI",
                "description": "Server Name Indication (SNI) configuration. This enables the mapping of client requested host names to certificates and other TLS settings. Wildcard names prefixed with '*.', as well as a top level '*' are supported. Available in .NET 5 and later.",
                "type": "object",
                "additionalProperties": {
                  "title": "SNI options",
                  "description": "Endpoint SNI configuration.",
                  "type": "object",
                  "properties": {
                    "Protocols": {
                      "$ref": "#/definitions/protocols"
                    },
                    "SslProtocols": {
                      "$ref": "#/definitions/sslProtocols"
                    },
                    "Certificate": {
                      "$ref": "#/definitions/certificate"
                    },
                    "ClientCertificateMode": {
                      "$ref": "#/definitions/clientCertificateMode"
                    }
                  }
                }
              }
            },
            "required": [
              "Url"
            ]
          }
        },
        "EndpointDefaults": {
          "title": "endpoint defaults",
          "description": "Default configuration applied to all endpoints. Named endpoint specific configuration overrides defaults.",
          "type": "object",
          "properties": {
            "Protocols": {
              "$ref": "#/definitions/protocols"
            },
            "SslProtocols": {
              "$ref": "#/definitions/sslProtocols"
            },
            "ClientCertificateMode": {
              "$ref": "#/definitions/clientCertificateMode"
            }
          }
        },
        "Certificates": {
          "title": "certificates",
          "description": "Certificates that Kestrel uses with HTTPS endpoints. Each certificate has a name specified by its JSON property name. The 'Default' certificate is used by HTTPS endpoints that haven't specified a certificate.",
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/certificate"
          }
        }
      }
    },
    "logLevelThreshold": {
      "description": "Log level threshold.",
      "type": "string",
      "enum": [
        "Trace",
        "Debug",
        "Information",
        "Warning",
        "Error",
        "Critical",
        "None"
      ]
    },
    "logLevel": {
      "title": "logging level options",
      "description": "Log level configurations used when creating logs. Only logs that exceeds its matching log level will be enabled. Each log level configuration has a category specified by its JSON property name. For more information about configuring log levels, see https://docs.microsoft.com/aspnet/core/fundamentals/logging/#configure-logging.",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/logLevelThreshold"
      }
    },
    "logging": {
      "title": "logging options",
      "type": "object",
      "description": "Configuration for Microsoft.Extensions.Logging.",
      "properties": {
        "LogLevel": {
          "$ref": "#/definitions/logLevel"
        },
        "Console": {
          "properties": {
            "LogLevel": {
              "$ref": "#/definitions/logLevel"
            },
            "FormatterName": {
              "description": "Name of the log message formatter to use. Defaults to 'simple'.",
              "type": "string",
              "default": "simple"
            },
            "FormatterOptions": {
              "title": "formatter options",
              "description": "Log message formatter options. Additional properties are available on the options depending on the configured formatter. The formatter is specified by FormatterName.",
              "type": "object",
              "properties": {
                "IncludeScopes": {
                  "description": "Include scopes when true. Defaults to false.",
                  "type": "boolean",
                  "default": false
                },
                "TimestampFormat": {
                  "description": "Format string used to format timestamp in logging messages. Defaults to null.",
                  "type": "string"
                },
                "UseUtcTimestamp": {
                  "description": "Indication whether or not UTC timezone should be used to for timestamps in logging messages. Defaults to false.",
                  "type": "boolean",
                  "default": false
                }
              }
            },
            "LogToStandardErrorThreshold": {
              "description": "The minimum level of messages are written to Console.Error.",
              "$ref": "#/definitions/logLevelThreshold"
            }
          }
        },
        "EventSource": {
          "properties": {
            "LogLevel": {
              "$ref": "#/definitions/logLevel"
            }
          }
        },
        "Debug": {
          "properties": {
            "LogLevel": {
              "$ref": "#/definitions/logLevel"
            }
          }
        },
        "EventLog": {
          "properties": {
            "LogLevel": {
              "$ref": "#/definitions/logLevel"
            }
          }
        },
        "ElmahIo": {
          "properties": {
            "LogLevel": {
              "$ref": "#/definitions/logLevel"
            }
          }
        },
        "ElmahIoBreadcrumbs": {
          "properties": {
            "LogLevel": {
              "$ref": "#/definitions/logLevel"
            }
          }
        }
      },
      "additionalProperties": {
        "title": "provider logging settings",
        "type": "object",
        "description": "Logging configuration for a provider. The provider name must match the configuration's JSON property property name.",
        "properties": {
          "LogLevel": {
            "$ref": "#/definitions/logLevel"
          }
        }
      }
    },
    "allowedHosts": {
      "description": "ASP.NET Core host filtering middleware configuration. Allowed hosts is a semicolon-delimited list of host names without port numbers. Requests without a matching host name will be refused. Host names may be prefixed with a '*.' wildcard, or use '*' to allow all hosts.",
      "type": "string"
    },
    "connectionStrings": {
      "title": "connection string options",
      "description": "Connection string configuration. Get connection strings with the IConfiguration.GetConnectionString(string) extension method.",
      "type": "object",
      "additionalProperties": {
        "description": "Connection string configuration. Each connection string has a name specified by its JSON property name.",
        "type": "string"
      }
    },
    "NLog": {
      "title": "NLog options",
      "type": "object",
      "description": "NLog configuration",
      "default": {},
      "properties": {
        "autoReload": {
          "type": "boolean",
          "description": "Automatically reload the NLog configuration when notified that appsettings.json file has changed.",
          "default": false
        },
        "throwConfigExceptions": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Throws an exception when there is a config error? If not set, then throwExceptions will be used for this setting.",
          "default": false
        },
        "throwExceptions": {
          "type": "boolean",
          "description": "Throws an exception when there is an error. For unit testing only and advanced troubleshooting.",
          "default": false
        },
        "internalLogLevel": {
          "type": "string",
          "description": "The minimal log level for the internal logger.",
          "enum": [
            "Trace",
            "Debug",
            "Info",
            "Warn",
            "Error",
            "Fatal",
            "Off"
          ],
          "default": "Off"
        },
        "internalLogFile": {
          "type": "string",
          "description": "Write internal log to the specified filepath"
        },
        "internalLogToConsole": {
          "type": "boolean",
          "description": "Write internal log to a console",
          "default": "false"
        },
        "internalLogToConsoleError": {
          "type": "boolean",
          "description": "Write internal log to a console with error stream",
          "default": "false"
        },
        "globalThreshold": {
          "type": "string",
          "description": "Log events below this threshold are not logged.",
          "enum": [
            "Trace",
            "Debug",
            "Info",
            "Warn",
            "Error",
            "Fatal",
            "Off"
          ],
          "default": "Off"
        },
        "autoShutdown": {
          "type": "boolean",
          "description": "Automatically call `LogFactory.Shutdown` on AppDomain.Unload or AppDomain.ProcessExit",
          "default": "true"
        },
        "extensions": {
          "type": "array",
          "description": "Load NLog extension packages for additional targets and layouts",
          "default": [],
          "items": {
            "title": "extension",
            "type": "object",
            "description": "",
            "default": {},
            "properties": {
              "assembly": {
                "type": "string",
                "description": "Assembly Name of the NLog extension package."
              },
              "prefix": {
                "type": "string",
                "description": "Appends prefix to all type-names loaded from the assembly",
                "default": ""
              },
              "assemblyFile": {
                "type": "string",
                "description": "Absolute filepath to the Assembly-file of the NLog extension package.",
                "default": ""
              }
            }
          }
        },
        "variables": {
          "title": "variables",
          "type": "object",
          "description": "Key-value pair of variables",
          "propertyNames": {
            "pattern": "^[A-Za-z0-9_.-]+$"
          },
          "patternProperties": {
            ".*": {
              "type": [
                "number",
                "string",
                "boolean"
              ]
            }
          }
        },
        "targetDefaultWrapper": {
          "title": "default wrapper",
          "type": "object",
          "description": "Wrap all defined targets with this custom target wrapper.",
          "default": {},
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string",
              "description": ""
            }
          }
        },
        "targets": {
          "title": "targets",
          "type": "object",
          "description": "",
          "default": {},
          "properties": {
            "async": {
              "type": "boolean",
              "description": "Wrap all defined targets using AsyncWrapper with OverflowAction=Discard for better performance."
            }
          }
        },
        "rules": {
          "oneOf": [
            {
              "type": "array",
              "description": "",
              "default": [],
              "items": {
                "$ref": "#/definitions/NLogRulesItem"
              }
            },
            {
              "title": "rules",
              "type": "object",
              "propertyNames": {
                "pattern": "^[0-9]+$"
              },
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/NLogRulesItem"
                }
              }
            }
          ]
        }
      }
    },
    "NLogRulesItem": {
      "title": "NLog rule item",
      "type": "object",
      "description": "Redirect LogEvents from matching Logger objects to specified targets",
      "default": {},
      "required": [
        "logger"
      ],
      "properties": {
        "logger": {
          "type": "string",
          "description": "Match Logger objects based on their Logger-name. Can use wildcard characters ('*' or '?')."
        },
        "ruleName": {
          "type": "string",
          "description": "Rule identifier to allow rule lookup with Configuration.FindRuleByName and Configuration.RemoveRuleByName."
        },
        "level": {
          "anyOf": [
            {
              "type": "string",
              "description": "",
              "enum": [
                "Trace",
                "Debug",
                "Info",
                "Warn",
                "Error",
                "Fatal"
              ]
            },
            {
              "type": "string"
            }
          ]
        },
        "levels": {
          "type": "string",
          "description": "Comma separated list of levels that this rule matches."
        },
        "minLevel": {
          "anyOf": [
            {
              "type": "string",
              "description": "",
              "enum": [
                "Trace",
                "Debug",
                "Info",
                "Warn",
                "Error",
                "Fatal"
              ]
            },
            {
              "type": "string"
            }
          ]
        },
        "maxLevel": {
          "anyOf": [
            {
              "type": "string",
              "description": "",
              "enum": [
                "Trace",
                "Debug",
                "Info",
                "Warn",
                "Error",
                "Fatal"
              ]
            },
            {
              "type": "string"
            }
          ]
        },
        "finalMinLevel": {
          "anyOf": [
            {
              "type": "string",
              "description": "",
              "enum": [
                "Trace",
                "Debug",
                "Info",
                "Warn",
                "Error",
                "Fatal"
              ]
            },
            {
              "type": "string"
            }
          ]
        },
        "writeTo": {
          "type": "string",
          "description": "Name or names of a target - separated by comma. Remove this property for sending events to the blackhole."
        },
        "final": {
          "type": "boolean",
          "description": "Ignore further rules if this one matches.",
          "default": false
        },
        "enabled": {
          "type": "boolean",
          "description": "",
          "default": true
        },
        "filters": {
          "oneOf": [
            {
              "type": "array",
              "description": "",
              "default": [],
              "items": {
                "title": "filter",
                "type": "object",
                "description": "",
                "default": {},
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": ""
                  },
                  "action": {
                    "type": "string",
                    "description": "Result action when filter matches logevent.",
                    "enum": [
                      "Neutral",
                      "Log",
                      "Ignore",
                      "LogFinal",
                      "IgnoreFinal"
                    ],
                    "default": "Neutral"
                  }
                }
              }
            },
            {
              "title": "filter",
              "type": "object",
              "description": "",
              "default": {}
            }
          ]
        },
        "filterDefaultAction": {
          "type": "string",
          "description": "Default action if none of the filters match.",
          "enum": [
            "Neutral",
            "Log",
            "Ignore",
            "LogFinal",
            "IgnoreFinal"
          ],
          "default": "Ignore"
        }
      }
    },
    "umbraco": {
      "description": "Configuration of Open Source .NET CMS - Umbraco",
      "properties": {
        "CMS": {
          "title": "CMD options",
          "type": "object",
          "properties": {
            "ActiveDirectory": {
              "$ref": "#/definitions/umbracoActiveDirectory"
            },
            "Content": {
              "$ref": "#/definitions/umbracoContent"
            },
            "Debug": {
              "$ref": "#/definitions/umbracoDebug"
            },
            "Examine": {
              "properties": {
                "LuceneDirectoryFactory": {
                  "description": "Lucene directory factory type",
                  "type": "string"
                }
              }
            },
            "ExceptionFilter": {
              "properties": {
                "Disabled": {
                  "description": "Indicating whether the exception filter is disabled",
                  "type": "boolean",
                  "default": false
                }
              }
            },
            "Global": {
              "$ref": "#/definitions/umbracoGlobal"
            },
            "HealthChecks": {
              "$ref": "#/definitions/umbracoHealthChecks"
            },
            "Hosting": {
              "$ref": "#/definitions/umbracoHosting"
            },
            "Imaging": {
              "$ref": "#/definitions/umbracoImaging"
            },
            "KeepAlive": {
              "$ref": "#/definitions/umbracoKeepAlive"
            },
            "Logging": {
              "properties": {
                "MaxLogAge": {
                  "description": "Maximum age of a log file - https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
                  "type": "string",
                  "default": "1.00:00:00"
                }
              }
            },
            "ModelsBuilder": {
              "$ref": "#/definitions/umbracoModelsBuilder"
            },
            "NuCache": {
              "properties": {
                "BTreeBlockSize": {
                  "type": "integer"
                }
              }
            },
            "Plugins": {
              "properties": {
                "BrowsableFileExtensions": {
                  "description": "Allowed file extensions (including the period .) that should be accessible from the browser",
                  "type": [
                    "string"
                  ]
                }
              }
            },
            "RequestHandler": {
              "$ref": "#/definitions/umbracoRequestHandler"
            },
            "RichTextEditor": {
              "$ref": "#/definitions/umbracoRichTextEditor"
            },
            "Runtime": {
              "properties": {
                "MaxQueryStringLength": {
                  "description": "Value for the maximum query string length",
                  "type": "integer"
                },
                "MaxRequestLength": {
                  "description": "Value for the maximum request length",
                  "type": "integer"
                }
              }
            },
            "RuntimeMinification": {
              "$ref": "#/definitions/umbracoRuntimeMinification"
            },
            "Security": {
              "$ref": "#/definitions/umbracoSecurity"
            },
            "Tours": {
              "properties": {
                "EnableTours": {
                  "description": "Indicating whether back-office tours are enabled",
                  "type": "boolean",
                  "default": true
                }
              }
            },
            "TypeFinder": {
              "properties": {
                "AssembliesAcceptingLoadExceptions": {
                  "description": "A CSV string of assemblies that accept load exceptions during type finder operations",
                  "type": "string"
                }
              }
            },
            "WebRouting": {
              "$ref": "#/definitions/umbracoWebRouting"
            },
            "Unattended": {
              "$ref": "#/definitions/umbracoUnattended"
            }
          }
        }
      },
      "required": [
        "CMS"
      ]
    },
    "umbracoActiveDirectory": {
      "description": "Configuration of Active Directory for Umbraco CMS",
      "properties": {
        "Domain": {
          "type": "string",
          "description": "Active Directory Domain"
        }
      }
    },
    "umbracoContent": {
      "properties": {
        "AllowedUploadFiles": {
          "description": "Collection of file extensions without . that are allowed for upload",
          "type": [
            "string"
          ]
        },
        "DisallowedUploadFiles": {
          "description": "Collection of file extensions without . that are disallowed for upload",
          "type": [
            "string"
          ]
        },
        "Error404Collection": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/umbracoContentErrorPage"
          }
        },
        "Imaging": {
          "properties": {
            "AutoFillImageProperties": {
              "description": "Imaging autofill following media file upload fields",
              "properties": {
                "Alias": {
                  "default": "umbracoFile"
                },
                "ExtensionFieldAlias": {
                  "default": "umbracoExtension"
                },
                "HeightFieldAlias": {
                  "default": "umbracoHeight"
                },
                "LengthFieldAlias": {
                  "default": "umbracoBytes"
                },
                "WidthFieldAlias": {
                  "default": "umbracoWidth"
                }
              }
            },
            "ImageFileTypes": {
              "description": "Collection of accepted image file extensions",
              "type": [
                "string"
              ]
            }
          }
        },
        "LoginBackgroundImage": {
          "description": "Path to the login screen background image",
          "default": "assets/img/login.jpg",
          "type": "string"
        },
        "LoginLogoImage": {
          "description": "Path to the login screen logo image",
          "default": "assets/img/application/umbraco_logo_white.svg",
          "type": "string"
        },
        "MacroErrors": {
          "description": "Macro error behaviour",
          "enum": [
            "Inline",
            "Silent",
            "Throw",
            "Content"
          ]
        },
        "Notifications": {
          "properties": {
            "Email": {
              "description": "Email address used for notifications",
              "type": "string"
            },
            "DisableHtmlEmail": {
              "description": "Whether HTML email notifications should be disabled",
              "type": "boolean",
              "default": false
            }
          }
        },
        "PreviewBadge": {
          "description": "Preview badge mark-up",
          "type": "string"
        },
        "ResolveUrlsFromTextString": {
          "description": "URLs should be resolved from text strings",
          "type": "boolean",
          "default": false
        },
        "ShowDeprecatedPropertyEditors": {
          "description": "Deprecated property editors should be shown",
          "type": "boolean",
          "default": false
        }
      }
    },
    "umbracoContentErrorPage": {
      "properties": {
        "ContentId": {
          "description": "An int of the content",
          "type": "integer"
        },
        "ContentKey": {
          "description": "A guid of the content",
          "type": "string"
        },
        "ContentXPath": {
          "description": "An XPath query for the content",
          "type": "string"
        },
        "Culture": {
          "description": "Content culture",
          "type": "string"
        }
      }
    },
    "umbracoDebug": {
      "properties": {
        "LogIncompletedScopes": {
          "description": "Indicating whether incompleted scopes should be logged",
          "type": "boolean",
          "default": false
        },
        "DumpOnTimeoutThreadAbort": {
          "description": "Indicating whether memory dumps on thread abort should be taken",
          "type": "boolean",
          "default": false
        }
      }
    },
    "umbracoGlobal": {
      "properties": {
        "ReservedUrls": {
          "description": "CSV string of reserved URLs (must end with a comma)",
          "type": "string",
          "default": "~/config/splashes/noNodes.aspx,~/.well-known,"
        },
        "ReservedPaths": {
          "description": "CSV string of reserved paths (must end with a comma)",
          "type": "string",
          "default": "~/app_plugins/,~/install/,~/mini-profiler-resources/,~/umbraco/,"
        },
        "TimeOut": {
          "description": "Duration of timeout https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
          "type": "string",
          "default": "00:20:00"
        },
        "DefaultUILanguage": {
          "description": "Default UI language of Umbraco backoffice",
          "type": "string",
          "default": "en-US"
        },
        "HideTopLevelNodeFromPath": {
          "description": "Indicating whether to hide the top level node from the path",
          "type": "boolean",
          "default": false
        },
        "UseHttps": {
          "description": "Indicating whether HTTPS should be used",
          "type": "boolean",
          "default": false
        },
        "VersionCheckPeriod": {
          "description": "Check for new version. Period in days",
          "type": "integer",
          "default": 7
        },
        "IconsPath": {
          "description": "Path to Umbraco Icons for backoffice",
          "type": "string",
          "default": "~/umbraco/assets/icons"
        },
        "UmbracoCssPath": {
          "description": "Path to store CSS files used for website built with Umbraco",
          "type": "string",
          "default": "~/css"
        },
        "UmbracoMediaPath": {
          "description": "Path to store media files",
          "type": "string",
          "default": "~/media"
        },
        "InstallMissingDatabase": {
          "description": "Indicating whether to install the database when it is missing",
          "type": "boolean",
          "default": false
        },
        "DisableElectionForSingleServer": {
          "description": "Indicating whether to disable the election for a single server",
          "type": "boolean",
          "default": false
        },
        "NoNodesViewPath": {
          "description": "Path to view when the website built with Umbraco has no content nodes",
          "type": "string",
          "default": "~/umbraco/UmbracoWebsite/NoNodes.cshtml"
        },
        "DatabaseServerRegistrar": {
          "properties": {
            "WaitTimeBetweenCalls": {
              "description": "The amount of time to wait between calls to the database on the background thread https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "00:01:00"
            },
            "StaleServerTimeout": {
              "description": "The time span to wait before considering a server stale, after it has last been accessed https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "00:02:00"
            }
          }
        },
        "DatabaseServerMessenger": {
          "properties": {
            "MaxProcessingInstructionCount": {
              "description": "The maximum number of instructions that can be processed at startup; otherwise the server cold-boots (rebuilds its caches)",
              "type": "integer",
              "default": 1000
            },
            "TimeToRetainInstructions": {
              "description": "The time to keep instructions in the database. Records older than this number will be pruned https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "2.00:00:00"
            },
            "TimeBetweenSyncOperations": {
              "description": "The time to wait between each sync operations https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "00:00:05"
            },
            "TimeBetweenPruneOperations": {
              "description": "The time to wait between each prune operations https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "00:01:00"
            }
          }
        },
        "Smtp": {
          "properties": {
            "From": {
              "description": "Email address to use for messages",
              "type": "string"
            },
            "Host": {
              "description": "SMTP Server hostname",
              "type": "string"
            },
            "Port": {
              "description": "SMTP Server Port Number",
              "type": "integer"
            },
            "SecureSocketOptions": {
              "description": "Secure socket options for SMTP server",
              "enum": [
                "None",
                "Auto",
                "SslOnConnect",
                "StartTls",
                "StartTlsWhenAvailable"
              ],
              "default": "Auto"
            },
            "PickupDirectoryLocation": {
              "description": "SMTP pick-up directory path",
              "type": "string"
            },
            "DeliveryMethod": {
              "description": "SMTP delivery method",
              "enum": [
                "Network",
                "SpecifiedPickupDirectory",
                "PickupDirectoryFromIis"
              ],
              "default": "Network"
            },
            "Username": {
              "description": "SMTP server username",
              "type": "string"
            },
            "Password": {
              "description": "SMTP server password",
              "type": "string"
            }
          }
        }
      }
    },
    "umbracoHealthChecks": {
      "properties": {
        "DisabledChecks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/umbracoDisabledHealthChecks"
          }
        },
        "Notification": {
          "properties": {
            "Enabled": {
              "description": "Indicating whether health check notifications are enabled",
              "type": "boolean",
              "default": false
            },
            "FirstRunTime": {
              "description": "The first run time of a healthcheck notification in crontab format",
              "type": "string"
            },
            "Period": {
              "description": "The period of the healthcheck notifications are run https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "1.00:00:00"
            },
            "NotificationMethods": {
              "title": "notification methods",
              "description": "A collection of health check notification methods that are set by their alias such as 'email'",
              "type": "object",
              "additionalProperties": {
                "title": "notification method options",
                "type": "object",
                "properties": {
                  "Enabled": {
                    "description": "Indicating whether the health check notification method is enabled",
                    "type": "boolean"
                  },
                  "Verbosity": {
                    "description": "The health check notifications reporting verbosity",
                    "enum": [
                      "Summary",
                      "Detailed"
                    ],
                    "default": "Summary"
                  },
                  "FailureOnly": {
                    "description": "Indicating whether the health check notifications should occur on failures only",
                    "type": "boolean",
                    "default": false
                  },
                  "Settings": {
                    "title": "options",
                    "description": "An object of Health Check Notification provider specific settings. For the email notification it uses a setting 'RecipientEmail'",
                    "type": "object"
                  }
                }
              }
            },
            "DisabledChecks": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/umbracoDisabledHealthChecks"
              }
            }
          }
        }
      }
    },
    "umbracoDisabledHealthChecks": {
      "properties": {
        "Id": {
          "description": "Guid of healthcheck to disable",
          "type": "string"
        }
      }
    },
    "umbracoHosting": {
      "properties": {
        "ApplicationVirtualPath": {
          "type": "string"
        },
        "Debug": {
          "description": "Indicating whether umbraco is running in [debug mode]",
          "type": "boolean",
          "default": false
        },
        "LocalTempStorageLocation": {
          "description": "The location of temporary files",
          "default": "Default",
          "enum": [
            "Default",
            "EnvironmentTemp"
          ]
        }
      }
    },
    "umbracoImaging": {
      "properties": {
        "Cache": {
          "properties": {
            "BrowserMaxAge": {
              "description": "Browser image cache maximum age https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "7.00:00:00"
            },
            "CacheMaxAge": {
              "description": "Image cache maximum age https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings",
              "type": "string",
              "default": "365.00:00:00"
            },
            "CachedNameLength": {
              "description": "Length of the cached name",
              "type": "integer",
              "default": 8
            },
            "CacheFolder": {
              "description": "Location of media cache folder",
              "type": "string",
              "default": "..\\umbraco\\mediacache"
            }
          }
        },
        "Resize": {
          "properties": {
            "MaxWidth": {
              "description": "Value for the maximum resize width",
              "type": "integer",
              "default": 5000
            },
            "MaxHeight": {
              "description": "Value for the maximum resize height",
              "type": "integer",
              "default": 5000
            }
          }
        }
      }
    },
    "umbracoKeepAlive": {
      "properties": {
        "DisableKeepAliveTask": {
          "description": "Indicating whether the keep alive task is disabled",
          "type": "boolean",
          "default": false
        },
        "KeepAlivePingUrl": {
          "description": "Keep alive ping URL. {umbracoApplicationUrl} is replaced",
          "type": "string",
          "default": "{umbracoApplicationUrl}/api/keepalive/ping"
        }
      }
    },
    "umbracoRichTextEditor": {
      "properties": {
        "Commands": {
          "description": "Commands to add to the TinyMCE Richtext editor",
          "type": "array",
          "items": {
            "$ref": "#/definitions/umbracoRichTextEditorCommands"
          }
        },
        "Plugins": {
          "description": "An array of TinyMCE Plugins to load such as 'paste', 'table'",
          "type": [
            "string"
          ]
        },
        "CustomConfig": {
          "title": "TinyMCE options",
          "description": "Custom configuration for TinyMCE and its plugins",
          "type": "object"
        },
        "ValidElements": {
          "description": "A CSV string of valid HTML elements in the richtext editor. Ex: iframe[*],button[class|title]",
          "type": "string"
        },
        "InvalidElements": {
          "description": "A CSV string of invalid HTML elements in the richtext editor. Ex: font",
          "type": "string"
        }
      }
    },
    "umbracoRichTextEditorCommands": {
      "properties": {
        "Name": {
          "description": "Friendly name of Richtext Editor Command",
          "type": "string"
        },
        "Alias": {
          "description": "Alias of the Richtext Editor Command",
          "type": "string"
        },
        "Mode": {
          "description": "Set how the Richtext Editor Command can be used. Such as when a selection is made",
          "enum": [
            "Insert",
            "Selection",
            "All"
          ]
        }
      }
    },
    "umbracoRequestHandler": {
      "properties": {
        "AddTrailingSlash": {
          "description": "Indicating whether to add a trailing slash to URLs",
          "type": "boolean",
          "default": true
        },
        "CharCollection": {
          "description": "Character collection for replacements",
          "type": "array",
          "items": {
            "$ref": "#/definitions/umbracoCharCollection"
          }
        },
        "ConvertUrlsToAscii": {
          "description": "Indicating whether to convert URLs to ASCII (valid values: true, try or false)",
          "enum": [
            "try",
            "true",
            "false"
          ],
          "default": "try"
        }
      }
    },
    "umbracoCharCollection": {
      "required": [
        "Char",
        "Replacement"
      ],
      "properties": {
        "Char": {
          "type": "string",
          "default": "ä"
        },
        "Replacement": {
          "type": "string",
          "default": "ae"
        }
      }
    },
    "umbracoRuntimeMinification": {
      "properties": {
        "UseInMemoryCache": {
          "type": "boolean",
          "default": false
        },
        "CacheBuster": {
          "description": "Cache buster type to use",
          "enum": [
            "Version",
            "AppDomain",
            "Timestamp"
          ],
          "default": "Version"
        }
      }
    },
    "umbracoSecurity": {
      "properties": {
        "AllowPasswordReset": {
          "description": "Indicating whether to allow user password reset",
          "type": "boolean",
          "default": true
        },
        "AuthCookieDomain": {
          "description": "Authorization cookie domain",
          "type": "string"
        },
        "AuthCookieName": {
          "description": "The authorization cookie name",
          "type": "string",
          "default": "UMB_UCONTEXT"
        },
        "HideDisabledUsersInBackOffice": {
          "description": "Indicating whether to hide disabled users in the back-office",
          "type": "boolean",
          "default": false
        },
        "KeepUserLoggedIn": {
          "description": "Indicating whether to keep the user logged in",
          "type": "boolean",
          "default": false
        },
        "MemberPassword": {
          "$ref": "#/definitions/umbracoMemberPassword"
        },
        "UsernameIsEmail": {
          "description": "Indicating whether the user's email address is to be considered as their username",
          "type": "boolean",
          "default": true
        },
        "UserPassword": {
          "$ref": "#/definitions/umbracoUserPassword"
        }
      }
    },
    "umbracoMemberPassword": {
      "properties": {
        "RequiredLength": {
          "type": "integer",
          "default": 10
        },
        "RequireNonLetterOrDigit": {
          "type": "boolean",
          "default": false
        },
        "RequireDigit": {
          "type": "boolean",
          "default": false
        },
        "RequireLowercase": {
          "type": "boolean",
          "default": false
        },
        "RequireUppercase": {
          "type": "boolean",
          "default": false
        },
        "MaxFailedAccessAttemptsBeforeLockout": {
          "type": "integer",
          "default": 5
        },
        "HashAlgorithmType": {
          "type": "string",
          "default": "HMACSHA256"
        }
      }
    },
    "umbracoUserPassword": {
      "properties": {
        "RequiredLength": {
          "type": "integer",
          "default": 10
        },
        "RequireNonLetterOrDigit": {
          "type": "boolean",
          "default": false
        },
        "RequireDigit": {
          "type": "boolean",
          "default": false
        },
        "RequireLowercase": {
          "type": "boolean",
          "default": false
        },
        "RequireUppercase": {
          "type": "boolean",
          "default": false
        },
        "MaxFailedAccessAttemptsBeforeLockout": {
          "type": "integer",
          "default": 5
        },
        "HashAlgorithmType": {
          "type": "string",
          "default": "PBKDF2.ASPNETCORE.V3"
        }
      }
    },
    "umbracoWebRouting": {
      "properties": {
        "TryMatchingEndpointsForAllPages": {
          "description": "Indicating whether to check if any routed endpoints match a front-end request before the Umbraco dynamic router tries to map the request to an Umbraco content item",
          "type": "boolean",
          "default": false
        },
        "TrySkipIisCustomErrors": {
          "description": "Indicating whether IIS custom errors should be skipped",
          "type": "boolean",
          "default": false
        },
        "InternalRedirectPreservesTemplate": {
          "description": "Indicating whether an internal redirect should preserve the template",
          "type": "boolean",
          "default": false
        },
        "DisableAlternativeTemplates": {
          "description": "Indicating whether the use of alternative templates are disabled",
          "type": "boolean",
          "default": false
        },
        "ValidateAlternativeTemplates": {
          "description": "Indicating whether the use of alternative templates should be validated",
          "type": "boolean",
          "default": false
        },
        "DisableFindContentByIdPath": {
          "description": "Indicating whether find content ID by path is disabled",
          "type": "boolean",
          "default": false
        },
        "DisableRedirectUrlTracking": {
          "description": "Indicating whether redirect URL tracking is disabled",
          "type": "boolean",
          "default": false
        },
        "UrlProviderMode": {
          "enum": [
            "Default",
            "Relative",
            "Absolute",
            "Auto"
          ],
          "default": "Auto"
        },
        "UmbracoApplicationUrl": {
          "type": "string"
        }
      }
    },
    "umbracoUnattended": {
      "properties": {
        "InstallUnattended": {
          "description": "Indicating whether unattended installs are enabled",
          "type": "boolean",
          "default": false
        },
        "UpgradeUnattended": {
          "description": "Indicating whether unattended upgrades are enabled",
          "type": "boolean",
          "default": false
        },
        "UnattendedUserName": {
          "description": "Use for creating a user with a name for Unattended Installs",
          "type": "string"
        },
        "UnattendedUserEmail": {
          "description": "Use for creating a user with an email for Unattended Installs",
          "type": "string"
        },
        "UnattendedUserPassword": {
          "description": "Use for creating a user with a password for Unattended Installs",
          "type": "string"
        }
      }
    },
    "umbracoModelsBuilder": {
      "properties": {
        "ModelsMode": {
          "description": "ModelsBuilder generation mode",
          "enum": [
            "Nothing",
            "InMemoryAuto",
            "SourceCodeManual",
            "SourceCodeAuto"
          ],
          "default": "InMemoryAuto"
        },
        "ModelsNamespace": {
          "type": "string",
          "description": "Namespace to use when generating strongly typed models",
          "default": "Umbraco.Cms.Web.Common.PublishedModels"
        },
        "ModelsDirectory": {
          "type": "string",
          "description": "Location to generate ModelsBuilder models",
          "default": "~/umbraco/models"
        },
        "DebugLevel": {
          "type": "integer",
          "description": "Indicates the debug level. For internal / development use. Set to greater than zero to enable detailed logging.",
          "default": 0
        },
        "AcceptUnsafeModelsDirectory": {
          "type": "boolean",
          "description": "Indicates that the directory indicated in ModelsDirectory is allowed to be outside the website root (e.g. ~/../../some/place). Because that can be a potential security risk, it is not allowed by default.",
          "default": false
        },
        "FlagOutOfDateModels": {
          "type": "boolean",
          "description": "Indicates whether out-of-date models (i.e. after a content type or data type has been modified) should be flagged.",
          "default": true
        }
      }
    },
    "JsonSchemaUmbracoDefinition": {
      "type": "object",
      "description": "Configuration of Umbraco CMS and packages\n            ",
      "properties": {
        "CMS": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/JsonSchemaCmsDefinition"
            }
          ]
        },
        "Forms": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/JsonSchemaFormsDefinition"
            }
          ]
        },
        "Deploy": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/JsonSchemaDeployDefinition"
            }
          ]
        }
      }
    },
    "JsonSchemaCmsDefinition": {
      "type": "object",
      "description": "Configurations for the Umbraco CMS\n            ",
      "properties": {
        "Content": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsContentSettings"
        },
        "Debug": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsCoreDebugSettings"
        },
        "ExceptionFilter": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsExceptionFilterSettings"
        },
        "ModelsBuilder": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsModelsBuilderSettings"
        },
        "Global": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsGlobalSettings"
        },
        "HealthChecks": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsHealthChecksSettings"
        },
        "Hosting": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsHostingSettings"
        },
        "Imaging": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsImagingSettings"
        },
        "Examine": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsIndexCreatorSettings"
        },
        "KeepAlive": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsKeepAliveSettings"
        },
        "Logging": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsLoggingSettings"
        },
        "NuCache": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsNuCacheSettings"
        },
        "RequestHandler": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRequestHandlerSettings"
        },
        "Runtime": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRuntimeSettings"
        },
        "Security": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsSecuritySettings"
        },
        "Tours": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsTourSettings"
        },
        "TypeFinder": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsTypeFinderSettings"
        },
        "WebRouting": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsWebRoutingSettings"
        },
        "Plugins": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsUmbracoPluginSettings"
        },
        "Unattended": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsUnattendedSettings"
        },
        "RichTextEditor": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRichTextEditorSettings"
        },
        "RuntimeMinification": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRuntimeMinificationSettings"
        },
        "BasicAuth": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsBasicAuthSettings"
        },
        "PackageMigration": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsPackageMigrationSettings"
        },
        "LegacyPasswordMigration": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsLegacyPasswordMigrationSettings"
        },
        "ContentDashboard": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationContentDashboardSettings"
        },
        "HelpPage": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsHelpPageSettings"
        },
        "DefaultDataCreation": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsInstallDefaultDataSettings"
        },
        "DataTypes": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsDataTypesSettings"
        },
        "Marketplace": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsMarketplaceSettings"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsContentSettings": {
      "type": "object",
      "description": "Typed configuration options for content settings.\n            ",
      "properties": {
        "Notifications": {
          "description": "Gets or sets a value for the content notification settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsContentNotificationSettings"
            }
          ]
        },
        "Imaging": {
          "description": "Gets or sets a value for the content imaging settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsContentImagingSettings"
            }
          ]
        },
        "ResolveUrlsFromTextString": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether URLs should be resolved from text strings.\n            ",
          "default": false
        },
        "Error404Collection": {
          "type": "array",
          "description": "Gets or sets a value for the collection of error pages.\n            ",
          "items": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsContentErrorPage"
          }
        },
        "PreviewBadge": {
          "type": "string",
          "description": "Gets or sets a value for the preview badge mark-up.\n            ",
          "default": "\n            <div id=\"umbracoPreviewBadge\" class=\"umbraco-preview-badge\">\n                <span class=\"umbraco-preview-badge__header\">Preview mode</span>\n                <a href=\"{0}/preview/?id={2}\" class=\"umbraco-preview-badge__a open\" title=\"Open preview in BackOffice\">\n                    …\n                </a>\n                <a href=\"{0}/preview/end?redir={1}\" class=\"umbraco-preview-badge__a end\" title=\"End preview mode\">\n                    <svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><title>Click to end preview mode</title><path fill=\"#fff\" d=\"M5273.1 2400.1v-2c0-2.8-5-4-9.7-4s-9.7 1.3-9.7 4v2a7 7 0 002 4.9l5 4.9c.3.3.4.6.4 1v6.4c0 .4.2.7.6.8l2.9.9c.5.1 1-.2 1-.8v-7.2c0-.4.2-.7.4-1l5.1-5a7 7 0 002-4.9zm-9.7-.1c-4.8 0-7.4-1.3-7.5-1.8.1-.5 2.7-1.8 7.5-1.8s7.3 1.3 7.5 1.8c-.2.5-2.7 1.8-7.5 1.8z\"/><path fill=\"#fff\" d=\"M5268.4 2410.3c-.6 0-1 .4-1 1s.4 1 1 1h4.3c.6 0 1-.4 1-1s-.4-1-1-1h-4.3zM5272.7 2413.7h-4.3c-.6 0-1 .4-1 1s.4 1 1 1h4.3c.6 0 1-.4 1-1s-.4-1-1-1zM5272.7 2417h-4.3c-.6 0-1 .4-1 1s.4 1 1 1h4.3c.6 0 1-.4 1-1 0-.5-.4-1-1-1z\"/><path fill=\"#fff\" d=\"M78.2 13l-8.7 11.7a32.5 32.5 0 11-51.9 25.8c0-10.3 4.7-19.7 12.9-25.8L21.8 13a47 47 0 1056.4 0z\"/><path fill=\"#fff\" d=\"M42.7 2.5h14.6v49.4H42.7z\"/></svg>\n                </a>\n            </div>\n            <style type=\"text/css\">\n                .umbraco-preview-badge {{\n                    position: fixed;\n                    bottom: 0;\n                    display: inline-flex;\n                    background: rgba(27, 38, 79, 0.9);\n                    color: #fff;\n                    font-size: 12px;\n                    z-index: 99999999;\n                    justify-content: center;\n                    align-items: center;\n                    box-shadow: 0 5px 10px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .2);\n                    line-height: 1;\n                    pointer-events:none;\n                    left: 50%;\n                    transform: translate(-50%, 40px);\n                    animation: umbraco-preview-badge--effect 10s 1.2s ease both;\n                    border-radius: 3px 3px 0 0;\n                }}\n                @keyframes umbraco-preview-badge--effect {{\n                    0% {{\n                        transform: translate(-50%, 40px);\n                        animation-timing-function: ease-out;\n                    }}\n                    1.5% {{\n                        transform: translate(-50%, -20px);\n                        animation-timing-function: ease-in;\n                    }}\n                    5.0% {{\n                        transform: translate(-50%, -8px);\n                        animation-timing-function: ease-in;\n                    }}\n                    7.5% {{\n                        transform: translate(-50%, -4px);\n                        animation-timing-function: ease-in;\n                    }}\n                    9.2% {{\n                        transform: translate(-50%, -2px);\n                        animation-timing-function: ease-in;\n                    }}\n                    3.5%,\n                    6.5%,\n                    8.5% {{\n                        transform: translate(-50%, 0);\n                        animation-timing-function: ease-out;\n                    }}\n                    9.7% {{\n                        transform: translate(-50%, 0);\n                        animation-timing-function: ease-out;\n                    }}\n                    10.0% {{\n                        transform: translate(-50%, 0);\n                    }}\n\n\n                    60% {{\n                        transform: translate(-50%, 0);\n                        animation-timing-function: ease-out;\n                    }}\n                    61.5% {{\n                        transform: translate(-50%, -20px);\n                        animation-timing-function: ease-in;\n                    }}\n                    65.0% {{\n                        transform: translate(-50%, -8px);\n                        animation-timing-function: ease-in;\n                    }}\n                    67.5% {{\n                        transform: translate(-50%, -4px);\n                        animation-timing-function: ease-in;\n                    }}\n                    69.2% {{\n                        transform: translate(-50%, -2px);\n                        animation-timing-function: ease-in;\n                    }}\n                    63.5%,\n                    66.5%,\n                    68.5% {{\n                        transform: translate(-50%, 0);\n                        animation-timing-function: ease-out;\n                    }}\n                    69.7% {{\n                        transform: translate(-50%, 0);\n                        animation-timing-function: ease-out;\n                    }}\n                    70.0% {{\n                        transform: translate(-50%, 0);\n                    }}\n                    100.0% {{\n                        transform: translate(-50%, 0);\n                    }}\n                }}\n                .umbraco-preview-badge__header {{\n                    padding: 1em;\n                    font-weight: bold;\n                    pointer-events:none;\n                }}\n                .umbraco-preview-badge__a {{\n                    width: 3em;\n                    padding: 1em;\n                    display: flex;\n                    flex-shrink: 0;\n                    align-items: center;\n                    align-self: stretch;\n                    color:white;\n                    text-decoration:none;\n                    font-weight: bold;\n                    border-left: 1px solid hsla(0,0%,100%,.25);\n                    pointer-events:all;\n                }}\n                .umbraco-preview-badge__a svg {{\n                    width: 1em;\n                    height:1em;\n                }}\n                .umbraco-preview-badge__a:hover {{\n                    background: #202d5e;\n                }}\n                .umbraco-preview-badge__end svg {{\n                    fill: #fff;\n                    width:1em;\n                }}\n            </style>\n            <script type=\"text/javascript\" data-umbraco-path=\"{0}\" src=\"{0}/js/umbraco.websitepreview.min.js\"></script>"
        },
        "MacroErrors": {
          "description": "Gets or sets a value for the macro error behaviour.\n            ",
          "default": "Inline",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreMacrosMacroErrorBehaviour"
            }
          ]
        },
        "ShowDeprecatedPropertyEditors": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether deprecated property editors should be shown.\n            ",
          "default": false
        },
        "LoginBackgroundImage": {
          "type": "string",
          "description": "Gets or sets a value for the path to the login screen background image.\n            ",
          "default": "assets/img/login.jpg"
        },
        "LoginLogoImage": {
          "type": "string",
          "description": "Gets or sets a value for the path to the login screen logo image.\n            ",
          "default": "assets/img/application/umbraco_logo_white.svg"
        },
        "HideBackOfficeLogo": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to hide the backoffice umbraco logo or not.\n            ",
          "default": false
        },
        "DisableDeleteWhenReferenced": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to disable the deletion of items referenced by other items.\n            ",
          "default": false
        },
        "DisableUnpublishWhenReferenced": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to disable the unpublishing of items referenced by other items.\n            ",
          "default": false
        },
        "ContentVersionCleanupPolicy": {
          "description": "Get or sets the model representing the global content version cleanup policy\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsContentVersionCleanupPolicySettings"
            }
          ]
        },
        "AllowEditInvariantFromNonDefault": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to allow editing invariant properties from a non-default language variation.",
          "default": false
        },
        "AllowedUploadedFileExtensions": {
          "type": "array",
          "description": "Gets or sets a value for the collection of file extensions that are allowed for upload.\n            ",
          "items": {
            "type": "string"
          }
        },
        "DisallowedUploadedFileExtensions": {
          "type": "array",
          "description": "Gets or sets a value for the collection of file extensions that are disallowed for upload.\n            ",
          "default": "ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,xamlx",
          "items": {
            "type": "string"
          }
        },
        "AllowedMediaHosts": {
          "type": "array",
          "description": "Gets or sets the allowed external host for media. If empty only relative paths are allowed.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsContentNotificationSettings": {
      "type": "object",
      "description": "Typed configuration options for content notification settings.\n            ",
      "properties": {
        "Email": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value for the email address for notifications.\n            "
        },
        "DisableHtmlEmail": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether HTML email notifications should be disabled.\n            ",
          "default": false
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsContentImagingSettings": {
      "type": "object",
      "description": "Typed configuration options for content imaging settings.\n            ",
      "properties": {
        "ImageFileTypes": {
          "type": "array",
          "description": "Gets or sets a value for the collection of accepted image file extensions.\n            ",
          "default": "jpeg,jpg,gif,bmp,png,tiff,tif,webp",
          "items": {
            "type": "string"
          }
        },
        "AutoFillImageProperties": {
          "type": "array",
          "description": "Gets or sets a value for the imaging autofill following media file upload fields.\n            ",
          "items": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsImagingAutoFillUploadField"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsImagingAutoFillUploadField": {
      "allOf": [
        {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsValidationValidatableEntryBase"
        },
        {
          "type": "object",
          "description": "Typed configuration options for image autofill upload settings.\n            ",
          "required": [
            "Alias",
            "WidthFieldAlias",
            "HeightFieldAlias",
            "LengthFieldAlias",
            "ExtensionFieldAlias"
          ],
          "properties": {
            "Alias": {
              "type": "string",
              "description": "Gets or sets a value for the alias of the image upload property.\n            ",
              "minLength": 1
            },
            "WidthFieldAlias": {
              "type": "string",
              "description": "Gets or sets a value for the width field alias of the image upload property.\n            ",
              "minLength": 1
            },
            "HeightFieldAlias": {
              "type": "string",
              "description": "Gets or sets a value for the height field alias of the image upload property.\n            ",
              "minLength": 1
            },
            "LengthFieldAlias": {
              "type": "string",
              "description": "Gets or sets a value for the length field alias of the image upload property.\n            ",
              "minLength": 1
            },
            "ExtensionFieldAlias": {
              "type": "string",
              "description": "Gets or sets a value for the extension field alias of the image upload property.\n            ",
              "minLength": 1
            }
          }
        }
      ]
    },
    "UmbracoCmsCoreConfigurationModelsValidationValidatableEntryBase": {
      "type": "object",
      "description": "Provides a base class for configuration models that can be validated based on data annotations.\n            ",
      "x-abstract": true
    },
    "UmbracoCmsCoreConfigurationModelsContentErrorPage": {
      "allOf": [
        {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsValidationValidatableEntryBase"
        },
        {
          "type": "object",
          "description": "Typed configuration for a content error page.\n            ",
          "required": [
            "Culture"
          ],
          "properties": {
            "ContentId": {
              "type": "integer",
              "description": "Gets or sets a value for the content Id.\n            ",
              "format": "int32"
            },
            "ContentKey": {
              "type": "string",
              "description": "Gets or sets a value for the content key.\n            ",
              "format": "guid"
            },
            "ContentXPath": {
              "type": [
                "null",
                "string"
              ],
              "description": "Gets or sets a value for the content XPath.\n            "
            },
            "Culture": {
              "type": "string",
              "description": "Gets or sets a value for the content culture.\n            ",
              "minLength": 1
            }
          }
        }
      ]
    },
    "UmbracoCmsCoreMacrosMacroErrorBehaviour": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Inline",
        "Silent",
        "Throw",
        "Content"
      ],
      "enum": [
        "Inline",
        "Silent",
        "Throw",
        "Content"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsContentVersionCleanupPolicySettings": {
      "type": "object",
      "description": "Model representing the global content version cleanup policy\n            ",
      "properties": {
        "EnableCleanup": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether or not the cleanup job should be executed.\n            ",
          "default": false
        },
        "KeepAllVersionsNewerThanDays": {
          "type": "integer",
          "description": "Gets or sets the number of days where all historical content versions are kept.\n            ",
          "format": "int32",
          "default": 7
        },
        "KeepLatestVersionPerDayForDays": {
          "type": "integer",
          "description": "Gets or sets the number of days where the latest historical content version for that day are kept.\n            ",
          "format": "int32",
          "default": 90
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsCoreDebugSettings": {
      "type": "object",
      "description": "Typed configuration options for core debug settings.\n            ",
      "properties": {
        "LogIncompletedScopes": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether incompleted scopes should be logged.\n            ",
          "default": false
        },
        "DumpOnTimeoutThreadAbort": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether memory dumps on thread abort should be taken.\n            ",
          "default": false
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsExceptionFilterSettings": {
      "type": "object",
      "description": "Typed configuration options for exception filter settings.\n            ",
      "properties": {
        "Disabled": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the exception filter is disabled.\n            ",
          "default": false
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsModelsBuilderSettings": {
      "type": "object",
      "description": "Typed configuration options for models builder settings.\n            ",
      "properties": {
        "ModelsMode": {
          "description": "Gets or sets a value for the models mode.\n            ",
          "default": "InMemoryAuto",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsMode"
            }
          ]
        },
        "ModelsNamespace": {
          "type": "string",
          "description": "Gets or sets a value for models namespace.\n            ",
          "default": "Umbraco.Cms.Web.Common.PublishedModels"
        },
        "FlagOutOfDateModels": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether we should flag out-of-date models.\n            "
        },
        "ModelsDirectory": {
          "type": "string",
          "description": "Gets or sets a value for the models directory.\n            ",
          "default": "~/umbraco/models"
        },
        "AcceptUnsafeModelsDirectory": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to accept an unsafe value for ModelsDirectory.\n            ",
          "default": false
        },
        "DebugLevel": {
          "type": "integer",
          "description": "Gets or sets a value indicating the debug log level.\n            ",
          "format": "int32",
          "default": 0
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsMode": {
      "type": "string",
      "description": "Defines the models generation modes.\n            ",
      "x-enumNames": [
        "Nothing",
        "InMemoryAuto",
        "SourceCodeManual",
        "SourceCodeAuto"
      ],
      "enum": [
        "Nothing",
        "InMemoryAuto",
        "SourceCodeManual",
        "SourceCodeAuto"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsGlobalSettings": {
      "type": "object",
      "description": "Typed configuration options for global settings.\n            ",
      "properties": {
        "ReservedUrls": {
          "type": "string",
          "description": "Gets or sets a value for the reserved URLs (must end with a comma).\n            ",
          "default": "~/.well-known,"
        },
        "ReservedPaths": {
          "type": "string",
          "description": "Gets or sets a value for the reserved paths (must end with a comma).\n            ",
          "default": "~/app_plugins/,~/install/,~/mini-profiler-resources/,~/umbraco/,"
        },
        "TimeOut": {
          "type": "string",
          "description": "Gets or sets a value for the back-office login timeout.\n            ",
          "format": "duration",
          "default": "00:20:00"
        },
        "DefaultUILanguage": {
          "type": "string",
          "description": "Gets or sets a value for the default UI language.\n            ",
          "default": "en-US"
        },
        "HideTopLevelNodeFromPath": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to hide the top level node from the path.\n            ",
          "default": true
        },
        "UseHttps": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether HTTPS should be used.\n            ",
          "default": false
        },
        "VersionCheckPeriod": {
          "type": "integer",
          "description": "Gets or sets a value for the version check period in days.\n            ",
          "format": "int32",
          "default": 7
        },
        "IconsPath": {
          "type": "string",
          "description": "Gets or sets a value for the Umbraco icons path.\n            ",
          "default": "umbraco/assets/icons"
        },
        "UmbracoCssPath": {
          "type": "string",
          "description": "Gets or sets a value for the Umbraco CSS path.\n            ",
          "default": "~/css"
        },
        "UmbracoScriptsPath": {
          "type": "string",
          "description": "Gets or sets a value for the Umbraco scripts path.\n            ",
          "default": "~/scripts"
        },
        "UmbracoMediaPath": {
          "type": "string",
          "description": "Gets or sets a value for the Umbraco media request path.\n            ",
          "default": "~/media"
        },
        "UmbracoMediaPhysicalRootPath": {
          "type": "string",
          "description": "Gets or sets a value for the physical Umbraco media root path (falls back to UmbracoMediaPath when\nempty).\n            "
        },
        "InstallMissingDatabase": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to install the database when it is missing.\n            ",
          "default": false
        },
        "DisableElectionForSingleServer": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to disable the election for a single server.\n            ",
          "default": false
        },
        "DatabaseFactoryServerVersion": {
          "type": "string",
          "description": "Gets or sets a value for the database factory server version.\n            "
        },
        "MainDomLock": {
          "type": "string",
          "description": "Gets or sets a value for the main dom lock.\n            "
        },
        "MainDomKeyDiscriminator": {
          "type": "string",
          "description": "Gets or sets a value to discriminate MainDom boundaries.\n\n    Generally the default should suffice but useful for advanced scenarios e.g. azure deployment slot based zero\n    downtime deployments.\n\n            "
        },
        "MainDomReleaseSignalPollingInterval": {
          "type": "integer",
          "description": "Gets or sets the duration (in milliseconds) for which the MainDomLock release signal polling task should sleep.\n            ",
          "format": "int32",
          "default": 2000
        },
        "Id": {
          "type": "string",
          "description": "Gets or sets the telemetry ID.\n            "
        },
        "NoNodesViewPath": {
          "type": "string",
          "description": "Gets or sets a value for the path to the no content view.\n            ",
          "default": "~/umbraco/UmbracoWebsite/NoNodes.cshtml"
        },
        "DatabaseServerRegistrar": {
          "description": "Gets or sets a value for the database server registrar settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsDatabaseServerRegistrarSettings"
            }
          ]
        },
        "DatabaseServerMessenger": {
          "description": "Gets or sets a value for the database server messenger settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsDatabaseServerMessengerSettings"
            }
          ]
        },
        "Smtp": {
          "description": "Gets or sets a value for the SMTP settings.\n            ",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsSmtpSettings"
            }
          ]
        },
        "SanitizeTinyMce": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether TinyMCE scripting sanitization should be applied.\n            ",
          "default": false
        },
        "DistributedLockingReadLockDefaultTimeout": {
          "type": "string",
          "description": "Gets or sets a value representing the maximum time to wait whilst attempting to obtain a distributed read lock.\n            ",
          "format": "duration",
          "default": "00:01:00"
        },
        "DistributedLockingWriteLockDefaultTimeout": {
          "type": "string",
          "description": "Gets or sets a value representing the maximum time to wait whilst attempting to obtain a distributed write lock.\n            ",
          "format": "duration",
          "default": "00:00:05"
        },
        "DistributedLockingMechanism": {
          "type": "string",
          "description": "Gets or sets a value representing the DistributedLockingMechanism to use."
        },
        "ForceCombineUrlPathLeftToRight": {
          "type": "boolean",
          "description": "Force url paths to be left to right, even when the culture has right to left text",
          "default": true,
          "x-example": "For the following hierarchy\n- Root (/ar)\n  - 1 (/ar/1)\n    - 2 (/ar/1/2)\n      - 3 (/ar/1/2/3)\n        - 3 (/ar/1/2/3/4)\nWhen forced\n- https://www.umbraco.com/ar/1/2/3/4\nwhen not\n- https://www.umbraco.com/ar/4/3/2/1"
        },
        "ShowMaintenancePageWhenInUpgradeState": {
          "type": "boolean",
          "default": true
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsDatabaseServerRegistrarSettings": {
      "type": "object",
      "description": "Typed configuration options for database server registrar settings.\n            ",
      "properties": {
        "WaitTimeBetweenCalls": {
          "type": "string",
          "description": "Gets or sets a value for the amount of time to wait between calls to the database on the background thread.\n            ",
          "format": "duration",
          "default": "00:01:00"
        },
        "StaleServerTimeout": {
          "type": "string",
          "description": "Gets or sets a value for the time span to wait before considering a server stale, after it has last been accessed.\n            ",
          "format": "duration",
          "default": "00:02:00"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsDatabaseServerMessengerSettings": {
      "type": "object",
      "description": "Typed configuration options for database server messaging settings.\n            ",
      "properties": {
        "MaxProcessingInstructionCount": {
          "type": "integer",
          "description": "Gets or sets a value for the maximum number of instructions that can be processed at startup; otherwise the server\ncold-boots (rebuilds its caches).\n            ",
          "format": "int32",
          "default": 1000
        },
        "TimeToRetainInstructions": {
          "type": "string",
          "description": "Gets or sets a value for the time to keep instructions in the database; records older than this number will be\npruned.\n            ",
          "format": "duration",
          "default": "2.00:00:00"
        },
        "TimeBetweenSyncOperations": {
          "type": "string",
          "description": "Gets or sets a value for the time to wait between each sync operations.\n            ",
          "format": "duration",
          "default": "00:00:05"
        },
        "TimeBetweenPruneOperations": {
          "type": "string",
          "description": "Gets or sets a value for the time to wait between each prune operations.\n            ",
          "format": "duration",
          "default": "00:01:00"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsSmtpSettings": {
      "allOf": [
        {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsValidationValidatableEntryBase"
        },
        {
          "type": "object",
          "description": "Typed configuration options for SMTP settings.\n            ",
          "required": [
            "From"
          ],
          "properties": {
            "From": {
              "type": "string",
              "description": "Gets or sets a value for the SMTP from address to use for messages.\n            ",
              "format": "email",
              "minLength": 1
            },
            "Host": {
              "type": [
                "null",
                "string"
              ],
              "description": "Gets or sets a value for the SMTP host.\n            "
            },
            "Port": {
              "type": "integer",
              "description": "Gets or sets a value for the SMTP port.\n            ",
              "format": "int32"
            },
            "SecureSocketOptions": {
              "description": "Gets or sets a value for the secure socket options.\n            ",
              "default": "Auto",
              "oneOf": [
                {
                  "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsSecureSocketOptions"
                }
              ]
            },
            "PickupDirectoryLocation": {
              "type": [
                "null",
                "string"
              ],
              "description": "Gets or sets a value for the SMTP pick-up directory.\n            "
            },
            "DeliveryMethod": {
              "description": "Gets or sets a value for the SMTP delivery method.\n            ",
              "default": "Network",
              "oneOf": [
                {
                  "$ref": "#/definitions/SystemNetMailSmtpDeliveryMethod"
                }
              ]
            },
            "Username": {
              "type": [
                "null",
                "string"
              ],
              "description": "Gets or sets a value for the SMTP user name.\n            "
            },
            "Password": {
              "type": [
                "null",
                "string"
              ],
              "description": "Gets or sets a value for the SMTP password.\n            "
            }
          }
        }
      ]
    },
    "UmbracoCmsCoreConfigurationModelsSecureSocketOptions": {
      "type": "string",
      "description": "Matches MailKit.Security.SecureSocketOptions and defined locally to avoid having to take\na dependency on this external library into Umbraco.Core.\n            ",
      "x-enumNames": [
        "None",
        "Auto",
        "SslOnConnect",
        "StartTls",
        "StartTlsWhenAvailable"
      ],
      "enum": [
        "None",
        "Auto",
        "SslOnConnect",
        "StartTls",
        "StartTlsWhenAvailable"
      ]
    },
    "SystemNetMailSmtpDeliveryMethod": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Network",
        "SpecifiedPickupDirectory",
        "PickupDirectoryFromIis"
      ],
      "enum": [
        "Network",
        "SpecifiedPickupDirectory",
        "PickupDirectoryFromIis"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsHealthChecksSettings": {
      "type": "object",
      "description": "Typed configuration options for healthchecks settings.\n            ",
      "properties": {
        "DisabledChecks": {
          "type": "array",
          "description": "Gets or sets a value for the collection of healthchecks that are disabled.\n            ",
          "items": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsDisabledHealthCheckSettings"
          }
        },
        "Notification": {
          "description": "Gets or sets a value for the healthcheck notification settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsHealthChecksNotificationSettings"
            }
          ]
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsDisabledHealthCheckSettings": {
      "type": "object",
      "description": "Typed configuration options for disabled healthcheck settings.\n            ",
      "properties": {
        "Id": {
          "type": "string",
          "description": "Gets or sets a value for the healthcheck Id to disable.\n            ",
          "format": "guid"
        },
        "DisabledOn": {
          "type": "string",
          "description": "Gets or sets a value for the date the healthcheck was disabled.\n            ",
          "format": "date-time"
        },
        "DisabledBy": {
          "type": "integer",
          "description": "Gets or sets a value for Id of the user that disabled the healthcheck.\n            ",
          "format": "int32"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsHealthChecksNotificationSettings": {
      "type": "object",
      "description": "Typed configuration options for healthcheck notification settings.\n            ",
      "properties": {
        "Enabled": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether health check notifications are enabled.\n            ",
          "default": false
        },
        "FirstRunTime": {
          "type": "string",
          "description": "Gets or sets a value for the first run time of a healthcheck notification in crontab format.\n            "
        },
        "Period": {
          "type": "string",
          "description": "Gets or sets a value for the period of the healthcheck notification.\n            ",
          "format": "duration",
          "default": "1.00:00:00"
        },
        "NotificationMethods": {
          "type": "object",
          "description": "Gets or sets a value for the collection of health check notification methods.\n            ",
          "additionalProperties": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsHealthChecksNotificationMethodSettings"
          }
        },
        "DisabledChecks": {
          "type": "array",
          "description": "Gets or sets a value for the collection of health checks that are disabled for notifications.\n            ",
          "items": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsDisabledHealthCheckSettings"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsHealthChecksNotificationMethodSettings": {
      "type": "object",
      "description": "Typed configuration options for healthcheck notification method settings.\n            ",
      "properties": {
        "Enabled": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the health check notification method is enabled.\n            ",
          "default": false
        },
        "Verbosity": {
          "description": "Gets or sets a value for the health check notifications reporting verbosity.\n            ",
          "default": "Summary",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreHealthChecksHealthCheckNotificationVerbosity"
            }
          ]
        },
        "FailureOnly": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the health check notifications should occur on failures only.\n            ",
          "default": false
        },
        "Settings": {
          "type": "object",
          "description": "Gets or sets a value providing provider specific settings for the health check notification method.\n            ",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreHealthChecksHealthCheckNotificationVerbosity": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Summary",
        "Detailed"
      ],
      "enum": [
        "Summary",
        "Detailed"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsHostingSettings": {
      "type": "object",
      "description": "Typed configuration options for hosting settings.\n            ",
      "properties": {
        "ApplicationVirtualPath": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value for the application virtual path.\n            "
        },
        "LocalTempStorageLocation": {
          "description": "Gets or sets a value for the location of temporary files.\n            ",
          "default": "Default",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationLocalTempStorage"
            }
          ]
        },
        "Debug": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether umbraco is running in [debug mode].\n            ",
          "default": false
        },
        "SiteName": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value specifying the name of the site.\n            "
        }
      }
    },
    "UmbracoCmsCoreConfigurationLocalTempStorage": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Unknown",
        "Default",
        "EnvironmentTemp"
      ],
      "enum": [
        "Unknown",
        "Default",
        "EnvironmentTemp"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsImagingSettings": {
      "type": "object",
      "description": "Typed configuration options for imaging settings.\n            ",
      "properties": {
        "Cache": {
          "description": "Gets or sets a value for imaging cache settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsImagingCacheSettings"
            }
          ]
        },
        "Resize": {
          "description": "Gets or sets a value for imaging resize settings.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsImagingResizeSettings"
            }
          ]
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsImagingCacheSettings": {
      "type": "object",
      "description": "Typed configuration options for image cache settings.\n            ",
      "properties": {
        "BrowserMaxAge": {
          "type": "string",
          "description": "Gets or sets a value for the browser image cache maximum age.\n            ",
          "format": "duration",
          "default": "7.00:00:00"
        },
        "CacheMaxAge": {
          "type": "string",
          "description": "Gets or sets a value for the image cache maximum age.\n            ",
          "format": "duration",
          "default": "365.00:00:00"
        },
        "CacheHashLength": {
          "type": "integer",
          "description": "Gets or sets a value for the image cache hash length.\n            ",
          "default": 12
        },
        "CacheFolderDepth": {
          "type": "integer",
          "description": "Gets or sets a value for the image cache folder depth.\n            ",
          "default": 8
        },
        "CacheFolder": {
          "type": "string",
          "description": "Gets or sets a value for the image cache folder.\n            ",
          "default": "~/umbraco/Data/TEMP/MediaCache"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsImagingResizeSettings": {
      "type": "object",
      "description": "Typed configuration options for image resize settings.\n            ",
      "properties": {
        "MaxWidth": {
          "type": "integer",
          "description": "Gets or sets a value for the maximim resize width.\n            ",
          "format": "int32",
          "default": 5000
        },
        "MaxHeight": {
          "type": "integer",
          "description": "Gets or sets a value for the maximim resize height.\n            ",
          "format": "int32",
          "default": 5000
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsIndexCreatorSettings": {
      "type": "object",
      "description": "Typed configuration options for index creator settings.\n            ",
      "properties": {
        "LuceneDirectoryFactory": {
          "description": "Gets or sets a value for lucene directory factory type.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsLuceneDirectoryFactory"
            }
          ]
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsLuceneDirectoryFactory": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Default",
        "SyncedTempFileSystemDirectoryFactory",
        "TempFileSystemDirectoryFactory"
      ],
      "enum": [
        "Default",
        "SyncedTempFileSystemDirectoryFactory",
        "TempFileSystemDirectoryFactory"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsKeepAliveSettings": {
      "type": "object",
      "description": "Typed configuration options for keep alive settings.\n            ",
      "properties": {
        "DisableKeepAliveTask": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the keep alive task is disabled.\n            ",
          "default": false
        },
        "KeepAlivePingUrl": {
          "type": "string",
          "description": "Gets or sets a value for the keep alive ping URL.\n            ",
          "default": "~/api/keepalive/ping"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsLoggingSettings": {
      "type": "object",
      "description": "Typed configuration options for logging settings.\n            ",
      "properties": {
        "MaxLogAge": {
          "type": "string",
          "description": "Gets or sets a value for the maximum age of a log file.\n            ",
          "format": "duration",
          "default": "1.00:00:00"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsNuCacheSettings": {
      "type": "object",
      "description": "Typed configuration options for NuCache settings.\n            ",
      "properties": {
        "BTreeBlockSize": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Gets or sets a value defining the BTree block size.\n            ",
          "format": "int32"
        },
        "NuCacheSerializerType": {
          "description": "The serializer type that nucache uses to persist documents in the database.\n            ",
          "default": "MessagePack",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsNuCacheSerializerType"
            }
          ]
        },
        "SqlPageSize": {
          "type": "integer",
          "description": "The paging size to use for nucache SQL queries.\n            ",
          "format": "int32",
          "default": 1000
        },
        "KitBatchSize": {
          "type": "integer",
          "description": "The size to use for nucache Kit batches.  Higher value means more content loaded into memory at a time.\n            ",
          "format": "int32",
          "default": 1
        },
        "UnPublishedContentCompression": {
          "type": "boolean"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsNuCacheSerializerType": {
      "type": "string",
      "description": "The serializer type that nucache uses to persist documents in the database.\n            ",
      "x-enumNames": [
        "MessagePack",
        "JSON"
      ],
      "enum": [
        "MessagePack",
        "JSON"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsRequestHandlerSettings": {
      "type": "object",
      "description": "Typed configuration options for request handler settings.\n            ",
      "properties": {
        "AddTrailingSlash": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to add a trailing slash to URLs.\n            ",
          "default": true
        },
        "ConvertUrlsToAscii": {
          "type": "string",
          "description": "Gets or sets a value indicating whether to convert URLs to ASCII (valid values: \"true\", \"try\" or \"false\").\n            ",
          "default": "try"
        },
        "EnableDefaultCharReplacements": {
          "type": "boolean",
          "description": "Disable all default character replacements\n            ",
          "default": true
        },
        "UserDefinedCharCollection": {
          "type": [
            "array",
            "null"
          ],
          "description": "Add additional character replacements, or override defaults\n            ",
          "items": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsCharItem"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsCharItem": {
      "type": "object",
      "properties": {
        "Char": {
          "type": "string",
          "description": "The character to replace\n            "
        },
        "Replacement": {
          "type": "string",
          "description": "The replacement character\n            "
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsRuntimeSettings": {
      "type": "object",
      "description": "Typed configuration options for runtime settings.",
      "properties": {
        "Mode": {
          "description": "Gets or sets the runtime mode.",
          "default": "BackofficeDevelopment",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRuntimeMode"
            }
          ]
        },
        "MaxQueryStringLength": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Gets or sets a value for the maximum query string length.",
          "format": "int32"
        },
        "MaxRequestLength": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Gets or sets a value for the maximum request length in kb.\n            ",
          "format": "int32"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsRuntimeMode": {
      "type": "string",
      "description": "Represents the configured Umbraco runtime mode.",
      "x-enumNames": [
        "BackofficeDevelopment",
        "Development",
        "Production"
      ],
      "enum": [
        "BackofficeDevelopment",
        "Development",
        "Production"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsSecuritySettings": {
      "type": "object",
      "description": "Typed configuration options for security settings.\n            ",
      "properties": {
        "KeepUserLoggedIn": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to keep the user logged in.\n            ",
          "default": false
        },
        "HideDisabledUsersInBackOffice": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to hide disabled users in the back-office.\n            ",
          "default": false
        },
        "AllowPasswordReset": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to allow user password reset.\n            ",
          "default": true
        },
        "AuthCookieName": {
          "type": "string",
          "description": "Gets or sets a value for the authorization cookie name.\n            ",
          "default": "UMB_UCONTEXT"
        },
        "AuthCookieDomain": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value for the authorization cookie domain.\n            "
        },
        "UsernameIsEmail": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the user's email address is to be considered as their username.\n            "
        },
        "AllowedUserNameCharacters": {
          "type": "string",
          "description": "Gets or sets the set of allowed characters for a username\n            ",
          "default": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+\\"
        },
        "MemberBypassTwoFactorForExternalLogins": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to bypass the two factor requirement in Umbraco when using external login\nfor members. Thereby rely on the External login and potential 2FA at that provider.\n            ",
          "default": true
        },
        "UserBypassTwoFactorForExternalLogins": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to bypass the two factor requirement in Umbraco when using external login\nfor users. Thereby rely on the External login and potential 2FA at that provider.\n            ",
          "default": true
        },
        "MemberDefaultLockoutTimeInMinutes": {
          "type": "integer",
          "description": "Gets or sets a value for how long (in minutes) a member is locked out when a lockout occurs.\n            ",
          "format": "int32",
          "default": 43200
        },
        "UserDefaultLockoutTimeInMinutes": {
          "type": "integer",
          "description": "Gets or sets a value for how long (in minutes) a user is locked out when a lockout occurs.\n            ",
          "format": "int32",
          "default": 43200
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsTourSettings": {
      "type": "object",
      "description": "Typed configuration options for tour settings.\n            ",
      "properties": {
        "EnableTours": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether back-office tours are enabled.\n            ",
          "default": true
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsTypeFinderSettings": {
      "type": "object",
      "description": "Typed configuration options for type finder settings.\n            ",
      "required": [
        "AssembliesAcceptingLoadExceptions"
      ],
      "properties": {
        "AssembliesAcceptingLoadExceptions": {
          "type": "string",
          "description": "Gets or sets a value for the assemblies that accept load exceptions during type finder operations.\n            ",
          "minLength": 1
        },
        "AdditionalEntryAssemblies": {
          "type": [
            "array",
            "null"
          ],
          "description": "By default the entry assemblies for scanning plugin types is the Umbraco DLLs. If you require\nscanning for plugins based on different root referenced assemblies you can add the assembly name to this list.\n            ",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsWebRoutingSettings": {
      "type": "object",
      "description": "Typed configuration options for web routing settings.\n            ",
      "properties": {
        "TryMatchingEndpointsForAllPages": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to check if any routed endpoints match a front-end request before\nthe Umbraco dynamic router tries to map the request to an Umbraco content item.\n            ",
          "default": false
        },
        "TrySkipIisCustomErrors": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether IIS custom errors should be skipped.\n            ",
          "default": false
        },
        "InternalRedirectPreservesTemplate": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether an internal redirect should preserve the template.\n            ",
          "default": false
        },
        "DisableAlternativeTemplates": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the use of alternative templates are disabled.\n            ",
          "default": false
        },
        "ValidateAlternativeTemplates": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether the use of alternative templates should be validated.\n            ",
          "default": false
        },
        "DisableFindContentByIdPath": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether find content ID by path is disabled.\n            ",
          "default": false
        },
        "DisableRedirectUrlTracking": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether redirect URL tracking is disabled.\n            ",
          "default": false
        },
        "UrlProviderMode": {
          "description": "Gets or sets a value for the URL provider mode (UrlMode).\n            ",
          "default": "Auto",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreModelsPublishedContentUrlMode"
            }
          ]
        },
        "UmbracoApplicationUrl": {
          "type": "string",
          "description": "Gets or sets a value for the Umbraco application URL.\n            "
        }
      }
    },
    "UmbracoCmsCoreModelsPublishedContentUrlMode": {
      "type": "string",
      "description": "Specifies the type of URLs that the URL provider should produce, Auto is the default.\n            ",
      "x-enumNames": [
        "Default",
        "Relative",
        "Absolute",
        "Auto"
      ],
      "enum": [
        "Default",
        "Relative",
        "Absolute",
        "Auto"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsUmbracoPluginSettings": {
      "type": "object",
      "description": "Typed configuration options for the plugins.\n            ",
      "properties": {
        "BrowsableFileExtensions": {
          "type": "array",
          "description": "Gets or sets the allowed file extensions (including the period \".\") that should be accessible from the browser.\n            ",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsUnattendedSettings": {
      "type": "object",
      "description": "Typed configuration options for unattended settings.\n            ",
      "properties": {
        "InstallUnattended": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether unattended installs are enabled.\n            ",
          "default": false
        },
        "UpgradeUnattended": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether unattended upgrades are enabled.\n            ",
          "default": false
        },
        "PackageMigrationsUnattended": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether unattended package migrations are enabled.\n            "
        },
        "UnattendedUserName": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value to use for creating a user with a name for Unattended Installs\n            "
        },
        "UnattendedUserEmail": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value to use for creating a user with an email for Unattended Installs\n            ",
          "format": "email"
        },
        "UnattendedUserPassword": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets a value to use for creating a user with a password for Unattended Installs\n            "
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsRichTextEditorSettings": {
      "type": "object",
      "properties": {
        "Commands": {
          "type": "array",
          "description": "HTML RichText Editor TinyMCE Commands\n            ",
          "items": {
            "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRichTextEditorCommand"
          }
        },
        "Plugins": {
          "type": "array",
          "description": "HTML RichText Editor TinyMCE Plugins\n            ",
          "items": {
            "type": "string"
          }
        },
        "CustomConfig": {
          "type": "object",
          "description": "HTML RichText Editor TinyMCE Custom Config\n            ",
          "additionalProperties": {
            "type": "string"
          }
        },
        "ValidElements": {
          "type": "string",
          "default": "+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption"
        },
        "InvalidElements": {
          "type": "string",
          "description": "Invalid HTML elements for RichText Editor\n            ",
          "default": "font"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsRichTextEditorCommand": {
      "type": "object",
      "required": [
        "Alias",
        "Name",
        "Mode"
      ],
      "properties": {
        "Alias": {
          "type": "string",
          "minLength": 1
        },
        "Name": {
          "type": "string",
          "minLength": 1
        },
        "Mode": {
          "$ref": "#/definitions/UmbracoCmsCoreModelsContentEditingRichTextEditorCommandMode"
        }
      }
    },
    "UmbracoCmsCoreModelsContentEditingRichTextEditorCommandMode": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Insert",
        "Selection",
        "All"
      ],
      "enum": [
        "Insert",
        "Selection",
        "All"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsRuntimeMinificationSettings": {
      "type": "object",
      "properties": {
        "UseInMemoryCache": {
          "type": "boolean",
          "description": "Use in memory cache\n            ",
          "default": false
        },
        "CacheBuster": {
          "description": "The cache buster type to use\n            ",
          "default": "Version",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsRuntimeMinificationCacheBuster"
            }
          ]
        },
        "Version": {
          "type": [
            "null",
            "string"
          ],
          "description": "The unique version string used if CacheBuster is 'Version'.\n            "
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsRuntimeMinificationCacheBuster": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Version",
        "AppDomain",
        "Timestamp"
      ],
      "enum": [
        "Version",
        "AppDomain",
        "Timestamp"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsBasicAuthSettings": {
      "type": "object",
      "description": "Typed configuration options for basic authentication settings.",
      "properties": {
        "Enabled": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to keep the user logged in.",
          "default": false
        },
        "AllowedIPs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "SharedSecret": {
          "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsSharedSecret"
        },
        "RedirectToLoginPage": {
          "type": "boolean"
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsSharedSecret": {
      "type": "object",
      "properties": {
        "HeaderName": {
          "type": [
            "null",
            "string"
          ],
          "default": "X-Authentication-Shared-Secret"
        },
        "Value": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsPackageMigrationSettings": {
      "type": "object",
      "description": "Typed configuration options for package migration settings.\n            ",
      "properties": {
        "RunSchemaAndContentMigrations": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether package migration steps that install schema and content should run.\n            ",
          "default": true
        },
        "AllowComponentOverrideOfRunSchemaAndContentMigrations": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether components can override the configured value for\nRunSchemaAndContentMigrations.\n            ",
          "default": true
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsLegacyPasswordMigrationSettings": {
      "type": "object",
      "description": "Typed configuration options for legacy machine key settings used for migration of members from a v8 solution.\n            ",
      "properties": {
        "MachineKeyDecryptionKey": {
          "type": "string",
          "description": "Gets or sets the decryption hex-formatted string key found in legacy web.config machineKey configuration-element.\n            ",
          "default": ""
        }
      }
    },
    "UmbracoCmsCoreConfigurationContentDashboardSettings": {
      "type": "object",
      "description": "Typed configuration options for content dashboard settings.\n            ",
      "properties": {
        "AllowContentDashboardAccessToAllUsers": {
          "type": "boolean",
          "description": "Gets a value indicating whether the content dashboard should be available to all users.\n            "
        },
        "ContentDashboardPath": {
          "type": "string",
          "description": "Gets the path to use when constructing the URL for retrieving data for the content dashboard.\n            ",
          "default": "cms"
        },
        "ContentDashboardUrlAllowlist": {
          "type": [
            "array",
            "null"
          ],
          "description": "Gets the allowed addresses to retrieve data for the content dashboard.\n            ",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsHelpPageSettings": {
      "type": "object",
      "properties": {
        "HelpPageUrlAllowList": {
          "type": [
            "array",
            "null"
          ],
          "description": "Gets or sets the allowed addresses to retrieve data for the content dashboard.\n            ",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsInstallDefaultDataSettings": {
      "type": "object",
      "description": "Typed configuration options for installation of default data.\n            ",
      "properties": {
        "InstallData": {
          "description": "Gets or sets a value indicating whether to create default data on installation.\n            ",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsInstallDefaultDataOption"
            }
          ]
        },
        "Values": {
          "type": "array",
          "description": "Gets or sets a value indicating which default data (languages, data types, etc.) should be created when\nInstallData is\nset to Values or ExceptValues.\n            ",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsInstallDefaultDataOption": {
      "type": "string",
      "description": "An enumeration of options available for control over installation of default Umbraco data.\n            ",
      "x-enumNames": [
        "None",
        "Values",
        "ExceptValues",
        "All"
      ],
      "enum": [
        "None",
        "Values",
        "ExceptValues",
        "All"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsDataTypesSettings": {
      "type": "object",
      "properties": {
        "CanBeChanged": {
          "description": "Gets or sets a value indicating if data types can be changed after they've been used.",
          "default": "True",
          "oneOf": [
            {
              "$ref": "#/definitions/UmbracoCmsCoreConfigurationModelsDataTypeChangeMode"
            }
          ]
        }
      }
    },
    "UmbracoCmsCoreConfigurationModelsDataTypeChangeMode": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "True",
        "False",
        "FalseWithHelpText"
      ],
      "enum": [
        "True",
        "False",
        "FalseWithHelpText"
      ]
    },
    "UmbracoCmsCoreConfigurationModelsMarketplaceSettings": {
      "type": "object",
      "description": "Configuration options for the Marketplace.",
      "properties": {
        "AdditionalParameters": {
          "type": "object",
          "description": "Gets or sets the additional parameters that are sent to the Marketplace.",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "JsonSchemaFormsDefinition": {
      "type": "object",
      "description": "Configurations for the Umbraco Forms package to Umbraco CMS\n            ",
      "properties": {
        "FormDesign": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationFormDesignSettings"
        },
        "Options": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationPackageOptionSettings"
        },
        "Security": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationSecuritySettings"
        },
        "FieldTypes": {
          "$ref": "#/definitions/JsonSchemaFieldTypesDefinition"
        }
      }
    },
    "UmbracoFormsCoreConfigurationFormDesignSettings": {
      "type": "object",
      "properties": {
        "Defaults": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationDefaultFormSettings"
        },
        "DisableAutomaticAdditionOfDataConsentField": {
          "type": "boolean"
        },
        "DisableDefaultWorkflow": {
          "type": "boolean"
        },
        "MaxNumberOfColumnsInFormGroup": {
          "type": "integer",
          "format": "int32"
        },
        "DefaultTheme": {
          "type": "string"
        },
        "DefaultEmailTemplate": {
          "type": "string"
        },
        "RemoveProvidedEmailTemplate": {
          "type": "boolean"
        },
        "RemoveProvidedFormTemplates": {
          "type": "boolean"
        },
        "FormElementHtmlIdPrefix": {
          "type": "string"
        },
        "SettingsCustomization": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationValidationSettingsCustomization"
        }
      }
    },
    "UmbracoFormsCoreConfigurationDefaultFormSettings": {
      "type": "object",
      "properties": {
        "ManualApproval": {
          "type": "boolean"
        },
        "DisableStylesheet": {
          "type": "boolean"
        },
        "MarkFieldsIndicator": {
          "$ref": "#/definitions/UmbracoFormsCoreEnumsFormFieldIndication"
        },
        "Indicator": {
          "type": "string"
        },
        "RequiredErrorMessage": {
          "type": "string"
        },
        "InvalidErrorMessage": {
          "type": "string"
        },
        "ShowValidationSummary": {
          "type": "boolean"
        },
        "HideFieldValidationLabels": {
          "type": "boolean"
        },
        "NextPageButtonLabel": {
          "type": "string"
        },
        "PreviousPageButtonLabel": {
          "type": "string"
        },
        "SubmitButtonLabel": {
          "type": "string"
        },
        "MessageOnSubmit": {
          "type": "string"
        },
        "MessageOnSubmitIsHtml": {
          "type": "boolean"
        },
        "StoreRecordsLocally": {
          "type": "boolean"
        },
        "AutocompleteAttribute": {
          "type": "string"
        },
        "DaysToRetainSubmittedRecordsFor": {
          "type": "integer",
          "format": "int32"
        },
        "DaysToRetainApprovedRecordsFor": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "UmbracoFormsCoreEnumsFormFieldIndication": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "NoIndicator",
        "MarkMandatoryFields",
        "MarkOptionalFields"
      ],
      "enum": [
        "NoIndicator",
        "MarkMandatoryFields",
        "MarkOptionalFields"
      ]
    },
    "UmbracoFormsCoreConfigurationValidationSettingsCustomization": {
      "type": "object",
      "properties": {
        "DataSourceTypes": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationProviderSettingsCustomization"
        },
        "FieldTypes": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationProviderSettingsCustomization"
        },
        "PrevalueSourceTypes": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationProviderSettingsCustomization"
        },
        "WorkflowTypes": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationProviderSettingsCustomization"
        }
      }
    },
    "UmbracoFormsCoreConfigurationProviderSettingsCustomization": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationProviderSettingsCustomizationDetail"
        }
      }
    },
    "UmbracoFormsCoreConfigurationProviderSettingsCustomizationDetail": {
      "type": "object",
      "properties": {
        "IsHidden": {
          "type": "boolean"
        },
        "DefaultValue": {
          "type": [
            "null",
            "string"
          ]
        },
        "IsReadOnly": {
          "type": "boolean"
        }
      }
    },
    "UmbracoFormsCoreConfigurationPackageOptionSettings": {
      "type": "object",
      "properties": {
        "IgnoreWorkFlowsOnEdit": {
          "type": "string"
        },
        "ExecuteWorkflowAsync": {
          "type": "string"
        },
        "AllowEditableFormSubmissions": {
          "type": "boolean"
        },
        "AppendQueryStringOnRedirectAfterFormSubmission": {
          "type": "boolean"
        },
        "CultureToUseWhenParsingDatesForBackOffice": {
          "type": "string"
        },
        "TriggerConditionsCheckOn": {
          "type": "string"
        },
        "ScheduledRecordDeletion": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationScheduledRecordDeletionSettings"
        },
        "DisableRecordIndexing": {
          "type": "boolean"
        },
        "EnableFormsApi": {
          "type": "boolean"
        },
        "EnableRecordingOfIpWithFormSubmission": {
          "type": "boolean"
        }
      }
    },
    "UmbracoFormsCoreConfigurationScheduledRecordDeletionSettings": {
      "type": "object",
      "properties": {
        "Enabled": {
          "type": "boolean",
          "default": false
        },
        "FirstRunTime": {
          "type": "string"
        },
        "Period": {
          "type": "string",
          "format": "duration",
          "default": "1.00:00:00"
        }
      }
    },
    "UmbracoFormsCoreConfigurationSecuritySettings": {
      "type": "object",
      "properties": {
        "DisallowedFileUploadExtensions": {
          "type": "string"
        },
        "EnableAntiForgeryToken": {
          "type": "boolean"
        },
        "SavePlainTextPasswords": {
          "type": "boolean"
        },
        "DisableFileUploadAccessProtection": {
          "type": "boolean"
        },
        "ManageSecurityWithUserGroups": {
          "type": "boolean"
        },
        "GrantAccessToNewFormsForUserGroups": {
          "type": "string"
        },
        "DefaultUserAccessToNewForms": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationFormAccess"
        },
        "FormsApiKey": {
          "type": [
            "null",
            "string"
          ]
        },
        "EnableAntiForgeryTokenForFormsApi": {
          "type": "boolean"
        }
      }
    },
    "UmbracoFormsCoreConfigurationFormAccess": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Grant",
        "Deny"
      ],
      "enum": [
        "Grant",
        "Deny"
      ]
    },
    "JsonSchemaFieldTypesDefinition": {
      "type": "object",
      "description": "Configurations for the Umbraco Forms Field Types\n            ",
      "properties": {
        "DatePicker": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationDatePickerSettings"
        },
        "Recaptcha2": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationRecaptcha2Settings"
        },
        "Recaptcha3": {
          "$ref": "#/definitions/UmbracoFormsCoreConfigurationRecaptcha3Settings"
        }
      }
    },
    "UmbracoFormsCoreConfigurationDatePickerSettings": {
      "type": "object",
      "properties": {
        "DatePickerYearRange": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "UmbracoFormsCoreConfigurationRecaptcha2Settings": {
      "type": "object",
      "properties": {
        "PublicKey": {
          "type": "string"
        },
        "PrivateKey": {
          "type": "string"
        }
      }
    },
    "UmbracoFormsCoreConfigurationRecaptcha3Settings": {
      "type": "object",
      "properties": {
        "SiteKey": {
          "type": "string"
        },
        "PrivateKey": {
          "type": "string"
        }
      }
    },
    "JsonSchemaDeployDefinition": {
      "type": "object",
      "description": "Configurations for the Umbraco Deploy package to Umbraco CMS\n            ",
      "properties": {
        "Settings": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationDeploySettings"
        },
        "Project": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployProjectConfigurationDeployProjectConfig"
        },
        "Debug": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDebugConfigurationDebugSettings"
        }
      }
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationDeploySettings": {
      "type": "object",
      "properties": {
        "ApiKey": {
          "type": "string"
        },
        "ExcludedEntityTypes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "RelationTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationRelationTypeSetting"
          }
        },
        "ValueConnectors": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationValueConnectorSetting"
          }
        },
        "Edition": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationEdition"
        },
        "Kabum": {
          "type": "string"
        },
        "SessionTimeout": {
          "type": "string",
          "format": "duration"
        },
        "SourceDeployTimeout": {
          "type": "string",
          "format": "duration"
        },
        "DatabaseCommandTimeout": {
          "type": "string",
          "format": "duration"
        },
        "EnableSignatureCacheReads": {
          "type": "boolean"
        },
        "HttpClientTimeout": {
          "type": "string",
          "format": "duration"
        },
        "DiskOperationsTimeout": {
          "type": "string",
          "format": "duration"
        },
        "IgnoreBrokenDependenciesBehavior": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationIgnoreBrokenDependenciesBehavior"
        },
        "TransferFormsAsContent": {
          "type": "boolean"
        },
        "TransferDictionaryAsContent": {
          "type": "boolean"
        },
        "AllowMembersDeploymentOperations": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationMembersDeploymentOperations"
        },
        "TransferMemberGroupsAsContent": {
          "type": "boolean"
        },
        "AcceptInvalidCertificates": {
          "type": "boolean"
        },
        "ExportMemberGroups": {
          "type": "boolean"
        },
        "AllowDomainsDeploymentOperations": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationDomainsDeploymentOperations"
        },
        "ReloadMemoryCacheFollowingDiskReadOperation": {
          "type": "boolean"
        },
        "PreferLocalDbConnectionString": {
          "type": "boolean"
        },
        "UseDatabaseTransferQueue": {
          "type": "boolean"
        },
        "SourceDeployBatchSize": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "PackageBatchSize": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "MediaFileChecksumCalculationMethod": {
          "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployConfigurationMediaFileChecksumCalculationMethod"
        },
        "NumberOfSignaturesToUseAllRelationCache": {
          "type": "integer",
          "format": "int32"
        },
        "ContinueOnMediaFilePathTooLongException": {
          "type": "boolean"
        },
        "SuppressCacheRefresherNotifications": {
          "type": "boolean"
        }
      }
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationRelationTypeSetting": {
      "type": "object",
      "properties": {
        "Alias": {
          "type": "string"
        },
        "Mode": {
          "$ref": "#/definitions/UmbracoDeployCoreCoreRelationMode"
        }
      }
    },
    "UmbracoDeployCoreCoreRelationMode": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Exclude",
        "Weak",
        "Strong"
      ],
      "enum": [
        "Exclude",
        "Weak",
        "Strong"
      ]
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationValueConnectorSetting": {
      "type": "object",
      "properties": {
        "Alias": {
          "type": "string"
        },
        "TypeName": {
          "type": "string"
        }
      }
    },
    "UmbracoDeployCoreConfigurationEdition": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Default",
        "BackOfficeOnly"
      ],
      "enum": [
        "Default",
        "BackOfficeOnly"
      ]
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationIgnoreBrokenDependenciesBehavior": {
      "type": "string",
      "description": "",
      "x-enumFlags": true,
      "x-enumNames": [
        "None",
        "Restore",
        "Transfer",
        "All"
      ],
      "enum": [
        "None",
        "Restore",
        "Transfer",
        "All"
      ]
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationMembersDeploymentOperations": {
      "type": "string",
      "description": "",
      "x-enumFlags": true,
      "x-enumNames": [
        "None",
        "Restore",
        "Transfer",
        "All"
      ],
      "enum": [
        "None",
        "Restore",
        "Transfer",
        "All"
      ]
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationDomainsDeploymentOperations": {
      "type": "string",
      "description": "",
      "x-enumFlags": true,
      "x-enumNames": [
        "None",
        "Culture",
        "AbsolutePath",
        "Hostname",
        "All"
      ],
      "enum": [
        "None",
        "Culture",
        "AbsolutePath",
        "Hostname",
        "All"
      ]
    },
    "UmbracoDeployCoreConfigurationDeployConfigurationMediaFileChecksumCalculationMethod": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "PartialFileContents",
        "Metadata"
      ],
      "enum": [
        "PartialFileContents",
        "Metadata"
      ]
    },
    "UmbracoDeployCoreConfigurationDeployProjectConfigurationDeployProjectConfig": {
      "type": "object",
      "properties": {
        "CurrentWorkspaceName": {
          "type": "string"
        },
        "Workspaces": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UmbracoDeployCoreConfigurationDeployProjectConfigurationWorkspace"
          }
        }
      }
    },
    "UmbracoDeployCoreConfigurationDeployProjectConfigurationWorkspace": {
      "type": "object",
      "properties": {
        "Id": {
          "type": "string",
          "format": "guid"
        },
        "Name": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      }
    },
    "UmbracoDeployCoreConfigurationDebugConfigurationDebugSettings": {
      "type": "object",
      "properties": {
        "IsDebug": {
          "type": "boolean"
        },
        "IsSqlAzure": {
          "type": "boolean"
        },
        "EnvironmentId": {
          "type": "string"
        },
        "EnvironmentName": {
          "type": "string"
        },
        "IsRunningCloud": {
          "type": "boolean"
        },
        "IsRunningHosted": {
          "type": "boolean"
        },
        "PortalUrl": {
          "type": "string"
        }
      }
    }
  },
  "patternProperties": {
    "^WebOptimizer$": {
      "$ref": "#/definitions/webOptimizer"
    },
    "^webOptimizer$": {
      "$ref": "#/definitions/webOptimizer"
    },
    "^weboptimizer$": {
      "$ref": "#/definitions/webOptimizer"
    },
    "^(cdn|Cdn)$": {
      "$ref": "#/definitions/cdn"
    },
    "^(pwa|PWA|Pwa)$": {
      "$ref": "#/definitions/pwa"
    },
    "^(ElmahIo|Elmahio|elmahIo|elmahio)$": {
      "$ref": "#/definitions/ElmahIo"
    },
    "^(nlog|Nlog|NLog)$": {
      "$ref": "#/definitions/NLog"
    },
    "^(Umbraco|umbraco)$": {
      "$ref": "#/definitions/umbraco"
    }
  },
  "properties": {
    "Kestrel": {
      "$ref": "#/definitions/kestrel"
    },
    "Logging": {
      "$ref": "#/definitions/logging"
    },
    "AllowedHosts": {
      "$ref": "#/definitions/allowedHosts"
    },
    "ConnectionStrings": {
      "$ref": "#/definitions/connectionStrings"
    },
    "Umbraco": {
      "description": "Gets or sets the Umbraco\n            ",
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/JsonSchemaUmbracoDefinition"
        }
      ]
    }
  },
  "title": "JsonSchemaAppSettings",
  "type": "object"
}