Microsoft.Web sites/config 2015-08-01

Bicep resource definition

The sites/config resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Web/sites/config resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.Web/sites/config@2015-08-01' = {
  name: 'string'
  // For remaining properties, see microsoft.web/sites/config objects
}

microsoft.web/sites/config objects

Set the name property to specify the type of object.

For slotConfigNames, use:

{
  kind: 'string'
  location: 'string'
  name: 'slotConfigNames'
  properties: {
    appSettingNames: [
      'string'
    ]
    connectionStringNames: [
      'string'
    ]
  }
  tags: {
    {customized property}: 'string'
  }
}

For web, use:

{
  kind: 'string'
  location: 'string'
  name: 'web'
  properties: {
    alwaysOn: bool
    apiDefinition: {
      url: 'string'
    }
    appCommandLine: 'string'
    appSettings: [
      {
        name: 'string'
        value: 'string'
      }
    ]
    autoHealEnabled: bool
    autoHealRules: {
      actions: {
        actionType: 'string'
        customAction: {
          exe: 'string'
          parameters: 'string'
        }
        minProcessExecutionTime: 'string'
      }
      triggers: {
        privateBytesInKB: int
        requests: {
          count: int
          timeInterval: 'string'
        }
        slowRequests: {
          count: int
          timeInterval: 'string'
          timeTaken: 'string'
        }
        statusCodes: [
          {
            count: int
            status: int
            subStatus: int
            timeInterval: 'string'
            win32Status: int
          }
        ]
      }
    }
    autoSwapSlotName: 'string'
    connectionStrings: [
      {
        connectionString: 'string'
        name: 'string'
        type: 'string'
      }
    ]
    cors: {
      allowedOrigins: [
        'string'
      ]
    }
    defaultDocuments: [
      'string'
    ]
    detailedErrorLoggingEnabled: bool
    documentRoot: 'string'
    experiments: {
      rampUpRules: [
        {
          actionHostName: 'string'
          changeDecisionCallbackUrl: 'string'
          changeIntervalInMinutes: int
          changeStep: int
          maxReroutePercentage: int
          minReroutePercentage: int
          name: 'string'
          reroutePercentage: int
        }
      ]
    }
    handlerMappings: [
      {
        arguments: 'string'
        extension: 'string'
        scriptProcessor: 'string'
      }
    ]
    httpLoggingEnabled: bool
    ipSecurityRestrictions: [
      {
        ipAddress: 'string'
        subnetMask: 'string'
      }
    ]
    javaContainer: 'string'
    javaContainerVersion: 'string'
    javaVersion: 'string'
    limits: {
      maxDiskSizeInMb: int
      maxMemoryInMb: int
      maxPercentageCpu: int
    }
    loadBalancing: 'string'
    localMySqlEnabled: bool
    logsDirectorySizeLimit: int
    managedPipelineMode: 'string'
    metadata: [
      {
        name: 'string'
        value: 'string'
      }
    ]
    netFrameworkVersion: 'string'
    nodeVersion: 'string'
    numberOfWorkers: int
    phpVersion: 'string'
    publishingPassword: 'string'
    publishingUsername: 'string'
    pythonVersion: 'string'
    remoteDebuggingEnabled: bool
    remoteDebuggingVersion: 'string'
    requestTracingEnabled: bool
    requestTracingExpirationTime: 'string'
    scmType: 'string'
    tracingOptions: 'string'
    use32BitWorkerProcess: bool
    virtualApplications: [
      {
        physicalPath: 'string'
        preloadEnabled: bool
        virtualDirectories: [
          {
            physicalPath: 'string'
            virtualPath: 'string'
          }
        ]
        virtualPath: 'string'
      }
    ]
    vnetName: 'string'
    webSocketsEnabled: bool
  }
  tags: {
    {customized property}: 'string'
  }
}

For appsettings, use:

{
  kind: 'string'
  location: 'string'
  name: 'appsettings'
  properties: {
    {customized property}: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

For connectionstrings, use:

{
  kind: 'string'
  location: 'string'
  name: 'connectionstrings'
  properties: {
    {customized property}: {
      type: 'string'
      value: 'string'
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

For authsettings, use:

{
  aadClientId: 'string'
  additionalLoginParams: [
    'string'
  ]
  allowedAudiences: [
    'string'
  ]
  allowedExternalRedirectUrls: [
    'string'
  ]
  clientId: 'string'
  clientSecret: 'string'
  defaultProvider: 'string'
  enabled: bool
  facebookAppId: 'string'
  facebookAppSecret: 'string'
  facebookOAuthScopes: [
    'string'
  ]
  googleClientId: 'string'
  googleClientSecret: 'string'
  googleOAuthScopes: [
    'string'
  ]
  httpApiPrefixPath: 'string'
  issuer: 'string'
  microsoftAccountClientId: 'string'
  microsoftAccountClientSecret: 'string'
  microsoftAccountOAuthScopes: [
    'string'
  ]
  name: 'authsettings'
  openIdIssuer: 'string'
  tokenRefreshExtensionHours: int
  tokenStoreEnabled: bool
  twitterConsumerKey: 'string'
  twitterConsumerSecret: 'string'
  unauthenticatedClientAction: 'string'
}

For metadata, use:

{
  kind: 'string'
  location: 'string'
  name: 'metadata'
  properties: {
    {customized property}: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

For logs, use:

{
  kind: 'string'
  location: 'string'
  name: 'logs'
  properties: {
    applicationLogs: {
      azureBlobStorage: {
        level: 'string'
        retentionInDays: int
        sasUrl: 'string'
      }
      azureTableStorage: {
        level: 'string'
        sasUrl: 'string'
      }
      fileSystem: {
        level: 'string'
      }
    }
    detailedErrorMessages: {
      enabled: bool
    }
    failedRequestsTracing: {
      enabled: bool
    }
    httpLogs: {
      azureBlobStorage: {
        enabled: bool
        retentionInDays: int
        sasUrl: 'string'
      }
      fileSystem: {
        enabled: bool
        retentionInDays: int
        retentionInMb: int
      }
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

For backup, use:

{
  kind: 'string'
  location: 'string'
  name: 'backup'
  properties: {
    backupSchedule: {
      frequencyInterval: int
      frequencyUnit: 'string'
      keepAtLeastOneBackup: bool
      lastExecutionTime: 'string'
      retentionPeriodInDays: int
      startTime: 'string'
    }
    databases: [
      {
        connectionString: 'string'
        connectionStringName: 'string'
        databaseType: 'string'
        name: 'string'
      }
    ]
    enabled: bool
    name: 'string'
    storageAccountUrl: 'string'
    type: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Property values

ApiDefinitionInfo

Name Description Value
url The URL of the API definition. string

ApplicationLogsConfig

Name Description Value
azureBlobStorage Application logs to blob storage configuration AzureBlobStorageApplicationLogsConfig
azureTableStorage Application logs to azure table storage configuration AzureTableStorageApplicationLogsConfig
fileSystem Application logs to file system configuration FileSystemApplicationLogsConfig

AutoHealActions

Name Description Value
actionType ActionType - predefined action to be taken 'CustomAction'
'LogEvent'
'Recycle' (required)
customAction CustomAction - custom action to be taken AutoHealCustomAction
minProcessExecutionTime MinProcessExecutionTime - minimum time the process must execute
before taking the action
string

AutoHealCustomAction

Name Description Value
exe Executable to be run string
parameters Parameters for the executable string

AutoHealRules

Name Description Value
actions Actions - Actions to be executed when a rule is triggered AutoHealActions
triggers Triggers - Conditions that describe when to execute the auto-heal actions AutoHealTriggers

AutoHealTriggers

Name Description Value
privateBytesInKB PrivateBytesInKB - Defines a rule based on private bytes int
requests Requests - Defines a rule based on total requests RequestsBasedTrigger
slowRequests SlowRequests - Defines a rule based on request execution time SlowRequestsBasedTrigger
statusCodes StatusCodes - Defines a rule based on status codes StatusCodesBasedTrigger[]

AzureBlobStorageApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'
retentionInDays Retention in days.
Remove blobs older than X days.
0 or lower means no retention.
int
sasUrl SAS url to a azure blob container with read/write/list/delete permissions string

AzureBlobStorageHttpLogsConfig

Name Description Value
enabled Enabled bool
retentionInDays Retention in days.
Remove blobs older than X days.
0 or lower means no retention.
int
sasUrl SAS url to a azure blob container with read/write/list/delete permissions string

AzureTableStorageApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'
sasUrl SAS url to an azure table with add/query/delete permissions string

BackupRequestProperties

Name Description Value
backupSchedule Schedule for the backup if it is executed periodically BackupSchedule
databases Databases included in the backup DatabaseBackupSetting[]
enabled True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled bool
name Name of the backup string
storageAccountUrl SAS URL to the container string
type Type of the backup 'Clone'
'Default'
'Relocation' (required)

BackupSchedule

Name Description Value
frequencyInterval How often should be the backup executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) int
frequencyUnit How often should be the backup executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) 'Day'
'Hour' (required)
keepAtLeastOneBackup True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. bool
lastExecutionTime The last time when this schedule was triggered string
retentionPeriodInDays After how many days backups should be deleted int
startTime When the schedule should start working string

ConnectionStringDictionaryProperties

Name Description Value

ConnStringInfo

Name Description Value
connectionString Connection string value string
name Name of connection string string
type Type of database 'Custom'
'MySql'
'SQLAzure'
'SQLServer' (required)

ConnStringValueTypePair

Name Description Value
type Type of database 'Custom'
'MySql'
'SQLAzure'
'SQLServer' (required)
value Value of pair string

CorsSettings

Name Description Value
allowedOrigins Gets or sets the list of origins that should be allowed to make cross-origin
calls (for example: http://example.com:12345). Use "*" to allow all.
string[]

DatabaseBackupSetting

Name Description Value
connectionString Contains a connection string to a database which is being backed up/restored. If the restore should happen to a new database, the database name inside is the new one. string
connectionStringName Contains a connection string name that is linked to the SiteConfig.ConnectionStrings.
This is used during restore with overwrite connection strings options.
string
databaseType SqlAzure / MySql string
name string

EnabledConfig

Name Description Value
enabled Enabled bool

Experiments

Name Description Value
rampUpRules List of {Microsoft.Web.Hosting.Administration.RampUpRule} objects. RampUpRule[]

FileSystemApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'

FileSystemHttpLogsConfig

Name Description Value
enabled Enabled bool
retentionInDays Retention in days.
Remove files older than X days.
0 or lower means no retention.
int
retentionInMb Maximum size in megabytes that http log files can use.
When reached old log files will be removed to make space for new ones.
Value can range between 25 and 100.
int

HandlerMapping

Name Description Value
arguments Command-line arguments to be passed to the script processor. string
extension Requests with this extension will be handled using the specified FastCGI application. string
scriptProcessor The absolute path to the FastCGI application. string

HttpLogsConfig

Name Description Value
azureBlobStorage Http logs to azure blob storage configuration AzureBlobStorageHttpLogsConfig
fileSystem Http logs to file system configuration FileSystemHttpLogsConfig

IpSecurityRestriction

Name Description Value
ipAddress IP address the security restriction is valid for string
subnetMask Subnet mask for the range of IP addresses the restriction is valid for string

microsoft.web/sites/config

Name Description Value
name Set to 'slotConfigNames' for type Microsoft.Web/sites/config. Set to 'web' for type Microsoft.Web/sites/config. Set to 'appsettings' for type Microsoft.Web/sites/config. Set to 'connectionstrings' for type Microsoft.Web/sites/config. Set to 'authsettings' for type Microsoft.Web/sites/config. Set to 'metadata' for type Microsoft.Web/sites/config. Set to 'logs' for type Microsoft.Web/sites/config. Set to 'backup' for type Microsoft.Web/sites/config. 'appsettings'
'authsettings'
'backup'
'connectionstrings'
'logs'
'metadata'
'slotConfigNames'
'web' (required)

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'slotConfigNames' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties SlotConfigNamesResourceProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'web' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties SiteConfigProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'appsettings' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties Settings StringDictionaryProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'connectionstrings' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties Connection strings ConnectionStringDictionaryProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

Microsoft.Web/sites/config

Name Description Value
aadClientId string
additionalLoginParams Gets or sets a list of login parameters to send to the OpenID Connect authorization endpoint when
a user logs in. Each parameter must be in the form "key=value".
string[]
allowedAudiences Gets or sets a list of allowed audience values to consider when validating JWTs issued by
Azure Active Directory. Note that the {Microsoft.Web.Hosting.Administration.SiteAuthSettings.ClientId} value is always considered an
allowed audience, regardless of this setting.
string[]
allowedExternalRedirectUrls Gets or sets a collection of external URLs that can be redirected to as part of logging in
or logging out of the web app. Note that the query string part of the URL is ignored.
This is an advanced setting typically only needed by Windows Store application backends.
Note that URLs within the current domain are always implicitly allowed.
string[]
clientId Gets or sets the Client ID of this relying party application, known as the client_id.
This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
other 3rd party OpenID Connect providers.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
string
clientSecret Gets or sets the Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
string
defaultProvider Gets or sets the default authentication provider to use when multiple providers are configured.
This setting is only needed if multiple providers are configured and the unauthenticated client
action is set to "RedirectToLoginPage".
'AzureActiveDirectory'
'Facebook'
'Google'
'MicrosoftAccount'
'Twitter'
enabled Gets or sets a value indicating whether the Authentication / Authorization feature is enabled for the current app. bool
facebookAppId Gets or sets the App ID of the Facebook app used for login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string
facebookAppSecret Gets or sets the App Secret of the Facebook app used for Facebook Login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string
facebookOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
This setting is optional.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string[]
googleClientId Gets or sets the OpenID Connect Client ID for the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string
googleClientSecret Gets or sets the client secret associated with the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string
googleOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string[]
httpApiPrefixPath Gets or sets the relative path prefix used by platform HTTP APIs.
Changing this value is not recommended except for compatibility reasons.
string
issuer Gets or sets the OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
This URI is a case-sensitive identifier for the token issuer.
More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
string
microsoftAccountClientId Gets or sets the OAuth 2.0 client ID that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
string
microsoftAccountClientSecret Gets or sets the OAuth 2.0 client secret that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
string
microsoftAccountOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
This setting is optional. If not specified, "wl.basic" is used as the default scope.
Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
string[]
name The resource name 'authsettings' (required)
openIdIssuer string
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
tokenRefreshExtensionHours Gets or sets the number of hours after session token expiration that a session token can be used to
call the token refresh API. The default is 72 hours.
int
tokenStoreEnabled Gets or sets a value indicating whether to durably store platform-specific security tokens
obtained during login flows. This capability is disabled by default.
bool
twitterConsumerKey Gets or sets the OAuth 1.0a consumer key of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
string
twitterConsumerSecret Gets or sets the OAuth 1.0a consumer secret of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
string
unauthenticatedClientAction Gets or sets the action to take when an unauthenticated client attempts to access the app. 'AllowAnonymous'
'RedirectToLoginPage'

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'metadata' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties Settings StringDictionaryProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'logs' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties SiteLogsConfigProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'backup' (required)
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: sites
properties BackupRequestProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates

NameValuePair

Name Description Value
name Pair name string
value Pair value string

RampUpRule

Name Description Value
actionHostName Hostname of a slot to which the traffic will be redirected if decided to. E.g. mysite-stage.azurewebsites.net string
changeDecisionCallbackUrl Custom decision algorithm can be provided in TiPCallback site extension which Url can be specified. See TiPCallback site extension for the scaffold and contracts.
https://www.siteextensions.net/packages/TiPCallback/
string
changeIntervalInMinutes [Optional] Specifies interval in minutes to reevaluate ReroutePercentage int
changeStep [Optional] In auto ramp up scenario this is the step to add/remove from {Microsoft.Web.Hosting.Administration.RampUpRule.ReroutePercentage} until it reaches
{Microsoft.Web.Hosting.Administration.RampUpRule.MinReroutePercentage} or {Microsoft.Web.Hosting.Administration.RampUpRule.MaxReroutePercentage}. Site metrics are checked every N minutes specified in {Microsoft.Web.Hosting.Administration.RampUpRule.ChangeIntervalInMinutes}.
Custom decision algorithm can be provided in TiPCallback site extension which Url can be specified in {Microsoft.Web.Hosting.Administration.RampUpRule.ChangeDecisionCallbackUrl}
int
maxReroutePercentage [Optional] Specifies upper boundary below which ReroutePercentage will stay. int
minReroutePercentage [Optional] Specifies lower boundary above which ReroutePercentage will stay. int
name Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. string
reroutePercentage Percentage of the traffic which will be redirected to {Microsoft.Web.Hosting.Administration.RampUpRule.ActionHostName} int

RequestsBasedTrigger

Name Description Value
count Count int
timeInterval TimeInterval string

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

SiteConfigProperties

Name Description Value
alwaysOn Always On bool
apiDefinition Information about the formal API definition for the web app. ApiDefinitionInfo
appCommandLine App Command Line to launch string
appSettings Application Settings NameValuePair[]
autoHealEnabled Auto heal enabled bool
autoHealRules Auto heal rules AutoHealRules
autoSwapSlotName Auto swap slot name string
connectionStrings Connection strings ConnStringInfo[]
cors Cross-Origin Resource Sharing (CORS) settings. CorsSettings
defaultDocuments Default documents string[]
detailedErrorLoggingEnabled Detailed error logging enabled bool
documentRoot Document root string
experiments This is work around for polymorphic types Experiments
handlerMappings Handler mappings HandlerMapping[]
httpLoggingEnabled HTTP logging Enabled bool
ipSecurityRestrictions Ip Security restrictions IpSecurityRestriction[]
javaContainer Java container string
javaContainerVersion Java container version string
javaVersion Java version string
limits Site limits SiteLimits
loadBalancing Site load balancing 'LeastRequests'
'LeastResponseTime'
'RequestHash'
'WeightedRoundRobin'
'WeightedTotalTraffic'
localMySqlEnabled Local mysql enabled bool
logsDirectorySizeLimit HTTP Logs Directory size limit int
managedPipelineMode Managed pipeline mode 'Classic'
'Integrated'
metadata Site Metadata NameValuePair[]
netFrameworkVersion Net Framework Version string
nodeVersion Version of Node string
numberOfWorkers Number of workers int
phpVersion Version of PHP string
publishingPassword Publishing password string
publishingUsername Publishing user name string
pythonVersion Version of Python string
remoteDebuggingEnabled Remote Debugging Enabled bool
remoteDebuggingVersion Remote Debugging Version string
requestTracingEnabled Enable request tracing bool
requestTracingExpirationTime Request tracing expiration time string
scmType SCM type string
tracingOptions Tracing options string
use32BitWorkerProcess Use 32 bit worker process bool
virtualApplications Virtual applications VirtualApplication[]
vnetName Vnet name string
webSocketsEnabled Web socket enabled. bool

SiteLimits

Name Description Value
maxDiskSizeInMb Maximum allowed disk size usage in MB int
maxMemoryInMb Maximum allowed memory usage in MB int
maxPercentageCpu Maximum allowed CPU usage percentage int

SiteLogsConfigProperties

Name Description Value
applicationLogs Application logs configuration ApplicationLogsConfig
detailedErrorMessages Detailed error messages configuration EnabledConfig
failedRequestsTracing Failed requests tracing configuration EnabledConfig
httpLogs Http logs configuration HttpLogsConfig

SlotConfigNamesResourceProperties

Name Description Value
appSettingNames List of application settings names string[]
connectionStringNames List of connection string names string[]

SlowRequestsBasedTrigger

Name Description Value
count Count int
timeInterval TimeInterval string
timeTaken TimeTaken string

StatusCodesBasedTrigger

Name Description Value
count Count int
status HTTP status code int
subStatus SubStatus int
timeInterval TimeInterval string
win32Status Win32 error code int

StringDictionaryProperties

Name Description Value

StringDictionaryProperties

Name Description Value

VirtualApplication

Name Description Value
physicalPath string
preloadEnabled bool
virtualDirectories VirtualDirectory[]
virtualPath string

VirtualDirectory

Name Description Value
physicalPath string
virtualPath string

Quickstart samples

The following quickstart samples deploy this resource type.

Bicep File Description
Application Gateway with internal API Management and Web App Application Gateway routing Internet traffic to a virtual network (internal mode) API Management instance which services a web API hosted in an Azure Web App.
Azure Function App with Event Hub and Managed Identity his template provisions an Azure Function app on a Linux Consumption plan, along with an Event Hub, Azure Storage, and Application Insights. The function app is able to use managed identity to connect to the Event Hub and Storage account
Create a web app on Azure with Java 13 and Tomcat 9 enabled This template creates a web app on azure with Java 13 and Tomcat 9 enabled allowing you to run Java applications in Azure. Template was authored by Donovan Brown of Microsoft.
Create a Web App plus Redis Cache using a template This template creates an Azure Web App with Redis cache.
Deploy an Azure Function Premium plan with vnet integration This template allows you to deploy an Azure Function Premium plan with regional virtual network integration enabled to a newly created virtual network.
Moesif API Analytics and Monetization The template will log API calls from Azure API Management to Moesif API analytics and monetization platform
Provision a function app running on an App Service Plan This template provisions a function app on a dedicated hosting plan, meaning it will be run and billed just like any App Service site.
Provision a Web App with a SQL Database This template provisions a Web App, a SQL Database, AutoScale settings, Alert rules, and App Insights. It configures a connection string in the web app for the database.
Sonarqube Docker Web App on Linux with Azure SQL This template deploys Sonarqube in an Azure App Service web app Linux container using the official Sonarqube image and backed by an Azure SQL Server.
Sonarqube Docker Web App on Linux with PostgreSQL This template provides a easy way to deploy a Sonarqube docker image (alpine tag) on a Linux Web App with Azure database for PostgreSQL(Preview)
Web App w/ Application Insights sending to Log Analytics This template will is to help support the new API versions of microsoft.insights/components. Starting with 2020-02-02-preview WorkspaceID will be required when creating Application Inisghts.This template will deploy the App Service Plan, App Service, Application Insights, Log Analytics Workspace and hook it all together.
Web App with Azure database for MySQL This template provides a easy way to deploy web app on Azure App Service Web Apps with Azure database for MySQL.
Web App with Managed Identity, SQL Server and ΑΙ Simple example to deploy Azure infrastructure for app + data + managed identity + monitoring
Web App with VNet Injection and Private Endpoint This template allows you to create a secure end to end solution with two web apps, front end and back end, front end will consume securely the back through VNet injection and Private Endpoint

ARM template resource definition

The sites/config resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Web/sites/config resource, add the following JSON to your template.

{
  "name": "string"
  // For remaining properties, see microsoft.web/sites/config objects
}

microsoft.web/sites/config objects

Set the name property to specify the type of object.

For slotConfigNames, use:

{
  "kind": "string",
  "location": "string",
  "name": "slotConfigNames",
  "properties": {
    "appSettingNames": [ "string" ],
    "connectionStringNames": [ "string" ]
  },
  "tags": {
    "{customized property}": "string"
  }
}

For web, use:

{
  "kind": "string",
  "location": "string",
  "name": "web",
  "properties": {
    "alwaysOn": "bool",
    "apiDefinition": {
      "url": "string"
    },
    "appCommandLine": "string",
    "appSettings": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "autoHealEnabled": "bool",
    "autoHealRules": {
      "actions": {
        "actionType": "string",
        "customAction": {
          "exe": "string",
          "parameters": "string"
        },
        "minProcessExecutionTime": "string"
      },
      "triggers": {
        "privateBytesInKB": "int",
        "requests": {
          "count": "int",
          "timeInterval": "string"
        },
        "slowRequests": {
          "count": "int",
          "timeInterval": "string",
          "timeTaken": "string"
        },
        "statusCodes": [
          {
            "count": "int",
            "status": "int",
            "subStatus": "int",
            "timeInterval": "string",
            "win32Status": "int"
          }
        ]
      }
    },
    "autoSwapSlotName": "string",
    "connectionStrings": [
      {
        "connectionString": "string",
        "name": "string",
        "type": "string"
      }
    ],
    "cors": {
      "allowedOrigins": [ "string" ]
    },
    "defaultDocuments": [ "string" ],
    "detailedErrorLoggingEnabled": "bool",
    "documentRoot": "string",
    "experiments": {
      "rampUpRules": [
        {
          "actionHostName": "string",
          "changeDecisionCallbackUrl": "string",
          "changeIntervalInMinutes": "int",
          "changeStep": "int",
          "maxReroutePercentage": "int",
          "minReroutePercentage": "int",
          "name": "string",
          "reroutePercentage": "int"
        }
      ]
    },
    "handlerMappings": [
      {
        "arguments": "string",
        "extension": "string",
        "scriptProcessor": "string"
      }
    ],
    "httpLoggingEnabled": "bool",
    "ipSecurityRestrictions": [
      {
        "ipAddress": "string",
        "subnetMask": "string"
      }
    ],
    "javaContainer": "string",
    "javaContainerVersion": "string",
    "javaVersion": "string",
    "limits": {
      "maxDiskSizeInMb": "int",
      "maxMemoryInMb": "int",
      "maxPercentageCpu": "int"
    },
    "loadBalancing": "string",
    "localMySqlEnabled": "bool",
    "logsDirectorySizeLimit": "int",
    "managedPipelineMode": "string",
    "metadata": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "netFrameworkVersion": "string",
    "nodeVersion": "string",
    "numberOfWorkers": "int",
    "phpVersion": "string",
    "publishingPassword": "string",
    "publishingUsername": "string",
    "pythonVersion": "string",
    "remoteDebuggingEnabled": "bool",
    "remoteDebuggingVersion": "string",
    "requestTracingEnabled": "bool",
    "requestTracingExpirationTime": "string",
    "scmType": "string",
    "tracingOptions": "string",
    "use32BitWorkerProcess": "bool",
    "virtualApplications": [
      {
        "physicalPath": "string",
        "preloadEnabled": "bool",
        "virtualDirectories": [
          {
            "physicalPath": "string",
            "virtualPath": "string"
          }
        ],
        "virtualPath": "string"
      }
    ],
    "vnetName": "string",
    "webSocketsEnabled": "bool"
  },
  "tags": {
    "{customized property}": "string"
  }
}

For appsettings, use:

{
  "kind": "string",
  "location": "string",
  "name": "appsettings",
  "properties": {
    "{customized property}": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

For connectionstrings, use:

{
  "kind": "string",
  "location": "string",
  "name": "connectionstrings",
  "properties": {
    "{customized property}": {
      "type": "string",
      "value": "string"
    }
  },
  "tags": {
    "{customized property}": "string"
  }
}

For authsettings, use:

{
  "aadClientId": "string",
  "additionalLoginParams": [ "string" ],
  "allowedAudiences": [ "string" ],
  "allowedExternalRedirectUrls": [ "string" ],
  "clientId": "string",
  "clientSecret": "string",
  "defaultProvider": "string",
  "enabled": "bool",
  "facebookAppId": "string",
  "facebookAppSecret": "string",
  "facebookOAuthScopes": [ "string" ],
  "googleClientId": "string",
  "googleClientSecret": "string",
  "googleOAuthScopes": [ "string" ],
  "httpApiPrefixPath": "string",
  "issuer": "string",
  "microsoftAccountClientId": "string",
  "microsoftAccountClientSecret": "string",
  "microsoftAccountOAuthScopes": [ "string" ],
  "name": "authsettings",
  "openIdIssuer": "string",
  "tokenRefreshExtensionHours": "int",
  "tokenStoreEnabled": "bool",
  "twitterConsumerKey": "string",
  "twitterConsumerSecret": "string",
  "unauthenticatedClientAction": "string"
}

For metadata, use:

{
  "kind": "string",
  "location": "string",
  "name": "metadata",
  "properties": {
    "{customized property}": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

For logs, use:

{
  "kind": "string",
  "location": "string",
  "name": "logs",
  "properties": {
    "applicationLogs": {
      "azureBlobStorage": {
        "level": "string",
        "retentionInDays": "int",
        "sasUrl": "string"
      },
      "azureTableStorage": {
        "level": "string",
        "sasUrl": "string"
      },
      "fileSystem": {
        "level": "string"
      }
    },
    "detailedErrorMessages": {
      "enabled": "bool"
    },
    "failedRequestsTracing": {
      "enabled": "bool"
    },
    "httpLogs": {
      "azureBlobStorage": {
        "enabled": "bool",
        "retentionInDays": "int",
        "sasUrl": "string"
      },
      "fileSystem": {
        "enabled": "bool",
        "retentionInDays": "int",
        "retentionInMb": "int"
      }
    }
  },
  "tags": {
    "{customized property}": "string"
  }
}

For backup, use:

{
  "kind": "string",
  "location": "string",
  "name": "backup",
  "properties": {
    "backupSchedule": {
      "frequencyInterval": "int",
      "frequencyUnit": "string",
      "keepAtLeastOneBackup": "bool",
      "lastExecutionTime": "string",
      "retentionPeriodInDays": "int",
      "startTime": "string"
    },
    "databases": [
      {
        "connectionString": "string",
        "connectionStringName": "string",
        "databaseType": "string",
        "name": "string"
      }
    ],
    "enabled": "bool",
    "name": "string",
    "storageAccountUrl": "string",
    "type": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Property values

ApiDefinitionInfo

Name Description Value
url The URL of the API definition. string

ApplicationLogsConfig

Name Description Value
azureBlobStorage Application logs to blob storage configuration AzureBlobStorageApplicationLogsConfig
azureTableStorage Application logs to azure table storage configuration AzureTableStorageApplicationLogsConfig
fileSystem Application logs to file system configuration FileSystemApplicationLogsConfig

AutoHealActions

Name Description Value
actionType ActionType - predefined action to be taken 'CustomAction'
'LogEvent'
'Recycle' (required)
customAction CustomAction - custom action to be taken AutoHealCustomAction
minProcessExecutionTime MinProcessExecutionTime - minimum time the process must execute
before taking the action
string

AutoHealCustomAction

Name Description Value
exe Executable to be run string
parameters Parameters for the executable string

AutoHealRules

Name Description Value
actions Actions - Actions to be executed when a rule is triggered AutoHealActions
triggers Triggers - Conditions that describe when to execute the auto-heal actions AutoHealTriggers

AutoHealTriggers

Name Description Value
privateBytesInKB PrivateBytesInKB - Defines a rule based on private bytes int
requests Requests - Defines a rule based on total requests RequestsBasedTrigger
slowRequests SlowRequests - Defines a rule based on request execution time SlowRequestsBasedTrigger
statusCodes StatusCodes - Defines a rule based on status codes StatusCodesBasedTrigger[]

AzureBlobStorageApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'
retentionInDays Retention in days.
Remove blobs older than X days.
0 or lower means no retention.
int
sasUrl SAS url to a azure blob container with read/write/list/delete permissions string

AzureBlobStorageHttpLogsConfig

Name Description Value
enabled Enabled bool
retentionInDays Retention in days.
Remove blobs older than X days.
0 or lower means no retention.
int
sasUrl SAS url to a azure blob container with read/write/list/delete permissions string

AzureTableStorageApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'
sasUrl SAS url to an azure table with add/query/delete permissions string

BackupRequestProperties

Name Description Value
backupSchedule Schedule for the backup if it is executed periodically BackupSchedule
databases Databases included in the backup DatabaseBackupSetting[]
enabled True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled bool
name Name of the backup string
storageAccountUrl SAS URL to the container string
type Type of the backup 'Clone'
'Default'
'Relocation' (required)

BackupSchedule

Name Description Value
frequencyInterval How often should be the backup executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) int
frequencyUnit How often should be the backup executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) 'Day'
'Hour' (required)
keepAtLeastOneBackup True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. bool
lastExecutionTime The last time when this schedule was triggered string
retentionPeriodInDays After how many days backups should be deleted int
startTime When the schedule should start working string

ConnectionStringDictionaryProperties

Name Description Value

ConnStringInfo

Name Description Value
connectionString Connection string value string
name Name of connection string string
type Type of database 'Custom'
'MySql'
'SQLAzure'
'SQLServer' (required)

ConnStringValueTypePair

Name Description Value
type Type of database 'Custom'
'MySql'
'SQLAzure'
'SQLServer' (required)
value Value of pair string

CorsSettings

Name Description Value
allowedOrigins Gets or sets the list of origins that should be allowed to make cross-origin
calls (for example: http://example.com:12345). Use "*" to allow all.
string[]

DatabaseBackupSetting

Name Description Value
connectionString Contains a connection string to a database which is being backed up/restored. If the restore should happen to a new database, the database name inside is the new one. string
connectionStringName Contains a connection string name that is linked to the SiteConfig.ConnectionStrings.
This is used during restore with overwrite connection strings options.
string
databaseType SqlAzure / MySql string
name string

EnabledConfig

Name Description Value
enabled Enabled bool

Experiments

Name Description Value
rampUpRules List of {Microsoft.Web.Hosting.Administration.RampUpRule} objects. RampUpRule[]

FileSystemApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'

FileSystemHttpLogsConfig

Name Description Value
enabled Enabled bool
retentionInDays Retention in days.
Remove files older than X days.
0 or lower means no retention.
int
retentionInMb Maximum size in megabytes that http log files can use.
When reached old log files will be removed to make space for new ones.
Value can range between 25 and 100.
int

HandlerMapping

Name Description Value
arguments Command-line arguments to be passed to the script processor. string
extension Requests with this extension will be handled using the specified FastCGI application. string
scriptProcessor The absolute path to the FastCGI application. string

HttpLogsConfig

Name Description Value
azureBlobStorage Http logs to azure blob storage configuration AzureBlobStorageHttpLogsConfig
fileSystem Http logs to file system configuration FileSystemHttpLogsConfig

IpSecurityRestriction

Name Description Value
ipAddress IP address the security restriction is valid for string
subnetMask Subnet mask for the range of IP addresses the restriction is valid for string

microsoft.web/sites/config

Name Description Value
name Set to 'slotConfigNames' for type Microsoft.Web/sites/config. Set to 'web' for type Microsoft.Web/sites/config. Set to 'appsettings' for type Microsoft.Web/sites/config. Set to 'connectionstrings' for type Microsoft.Web/sites/config. Set to 'authsettings' for type Microsoft.Web/sites/config. Set to 'metadata' for type Microsoft.Web/sites/config. Set to 'logs' for type Microsoft.Web/sites/config. Set to 'backup' for type Microsoft.Web/sites/config. 'appsettings'
'authsettings'
'backup'
'connectionstrings'
'logs'
'metadata'
'slotConfigNames'
'web' (required)

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'slotConfigNames' (required)
properties SlotConfigNamesResourceProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'web' (required)
properties SiteConfigProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'appsettings' (required)
properties Settings StringDictionaryProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'connectionstrings' (required)
properties Connection strings ConnectionStringDictionaryProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

Microsoft.Web/sites/config

Name Description Value
aadClientId string
additionalLoginParams Gets or sets a list of login parameters to send to the OpenID Connect authorization endpoint when
a user logs in. Each parameter must be in the form "key=value".
string[]
allowedAudiences Gets or sets a list of allowed audience values to consider when validating JWTs issued by
Azure Active Directory. Note that the {Microsoft.Web.Hosting.Administration.SiteAuthSettings.ClientId} value is always considered an
allowed audience, regardless of this setting.
string[]
allowedExternalRedirectUrls Gets or sets a collection of external URLs that can be redirected to as part of logging in
or logging out of the web app. Note that the query string part of the URL is ignored.
This is an advanced setting typically only needed by Windows Store application backends.
Note that URLs within the current domain are always implicitly allowed.
string[]
apiVersion The api version '2015-08-01'
clientId Gets or sets the Client ID of this relying party application, known as the client_id.
This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
other 3rd party OpenID Connect providers.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
string
clientSecret Gets or sets the Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
string
defaultProvider Gets or sets the default authentication provider to use when multiple providers are configured.
This setting is only needed if multiple providers are configured and the unauthenticated client
action is set to "RedirectToLoginPage".
'AzureActiveDirectory'
'Facebook'
'Google'
'MicrosoftAccount'
'Twitter'
enabled Gets or sets a value indicating whether the Authentication / Authorization feature is enabled for the current app. bool
facebookAppId Gets or sets the App ID of the Facebook app used for login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string
facebookAppSecret Gets or sets the App Secret of the Facebook app used for Facebook Login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string
facebookOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
This setting is optional.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string[]
googleClientId Gets or sets the OpenID Connect Client ID for the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string
googleClientSecret Gets or sets the client secret associated with the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string
googleOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string[]
httpApiPrefixPath Gets or sets the relative path prefix used by platform HTTP APIs.
Changing this value is not recommended except for compatibility reasons.
string
issuer Gets or sets the OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
This URI is a case-sensitive identifier for the token issuer.
More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
string
microsoftAccountClientId Gets or sets the OAuth 2.0 client ID that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
string
microsoftAccountClientSecret Gets or sets the OAuth 2.0 client secret that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
string
microsoftAccountOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
This setting is optional. If not specified, "wl.basic" is used as the default scope.
Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
string[]
name The resource name 'authsettings' (required)
openIdIssuer string
tokenRefreshExtensionHours Gets or sets the number of hours after session token expiration that a session token can be used to
call the token refresh API. The default is 72 hours.
int
tokenStoreEnabled Gets or sets a value indicating whether to durably store platform-specific security tokens
obtained during login flows. This capability is disabled by default.
bool
twitterConsumerKey Gets or sets the OAuth 1.0a consumer key of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
string
twitterConsumerSecret Gets or sets the OAuth 1.0a consumer secret of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
string
type The resource type 'Microsoft.Web/sites/config'
unauthenticatedClientAction Gets or sets the action to take when an unauthenticated client attempts to access the app. 'AllowAnonymous'
'RedirectToLoginPage'

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'metadata' (required)
properties Settings StringDictionaryProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'logs' (required)
properties SiteLogsConfigProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

Microsoft.Web/sites/config

Name Description Value
apiVersion The api version '2015-08-01'
kind Kind of resource string
location Resource Location string (required)
name The resource name 'backup' (required)
properties BackupRequestProperties
tags Resource tags Dictionary of tag names and values. See Tags in templates
type The resource type 'Microsoft.Web/sites/config'

NameValuePair

Name Description Value
name Pair name string
value Pair value string

RampUpRule

Name Description Value
actionHostName Hostname of a slot to which the traffic will be redirected if decided to. E.g. mysite-stage.azurewebsites.net string
changeDecisionCallbackUrl Custom decision algorithm can be provided in TiPCallback site extension which Url can be specified. See TiPCallback site extension for the scaffold and contracts.
https://www.siteextensions.net/packages/TiPCallback/
string
changeIntervalInMinutes [Optional] Specifies interval in minutes to reevaluate ReroutePercentage int
changeStep [Optional] In auto ramp up scenario this is the step to add/remove from {Microsoft.Web.Hosting.Administration.RampUpRule.ReroutePercentage} until it reaches
{Microsoft.Web.Hosting.Administration.RampUpRule.MinReroutePercentage} or {Microsoft.Web.Hosting.Administration.RampUpRule.MaxReroutePercentage}. Site metrics are checked every N minutes specified in {Microsoft.Web.Hosting.Administration.RampUpRule.ChangeIntervalInMinutes}.
Custom decision algorithm can be provided in TiPCallback site extension which Url can be specified in {Microsoft.Web.Hosting.Administration.RampUpRule.ChangeDecisionCallbackUrl}
int
maxReroutePercentage [Optional] Specifies upper boundary below which ReroutePercentage will stay. int
minReroutePercentage [Optional] Specifies lower boundary above which ReroutePercentage will stay. int
name Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. string
reroutePercentage Percentage of the traffic which will be redirected to {Microsoft.Web.Hosting.Administration.RampUpRule.ActionHostName} int

RequestsBasedTrigger

Name Description Value
count Count int
timeInterval TimeInterval string

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

SiteConfigProperties

Name Description Value
alwaysOn Always On bool
apiDefinition Information about the formal API definition for the web app. ApiDefinitionInfo
appCommandLine App Command Line to launch string
appSettings Application Settings NameValuePair[]
autoHealEnabled Auto heal enabled bool
autoHealRules Auto heal rules AutoHealRules
autoSwapSlotName Auto swap slot name string
connectionStrings Connection strings ConnStringInfo[]
cors Cross-Origin Resource Sharing (CORS) settings. CorsSettings
defaultDocuments Default documents string[]
detailedErrorLoggingEnabled Detailed error logging enabled bool
documentRoot Document root string
experiments This is work around for polymorphic types Experiments
handlerMappings Handler mappings HandlerMapping[]
httpLoggingEnabled HTTP logging Enabled bool
ipSecurityRestrictions Ip Security restrictions IpSecurityRestriction[]
javaContainer Java container string
javaContainerVersion Java container version string
javaVersion Java version string
limits Site limits SiteLimits
loadBalancing Site load balancing 'LeastRequests'
'LeastResponseTime'
'RequestHash'
'WeightedRoundRobin'
'WeightedTotalTraffic'
localMySqlEnabled Local mysql enabled bool
logsDirectorySizeLimit HTTP Logs Directory size limit int
managedPipelineMode Managed pipeline mode 'Classic'
'Integrated'
metadata Site Metadata NameValuePair[]
netFrameworkVersion Net Framework Version string
nodeVersion Version of Node string
numberOfWorkers Number of workers int
phpVersion Version of PHP string
publishingPassword Publishing password string
publishingUsername Publishing user name string
pythonVersion Version of Python string
remoteDebuggingEnabled Remote Debugging Enabled bool
remoteDebuggingVersion Remote Debugging Version string
requestTracingEnabled Enable request tracing bool
requestTracingExpirationTime Request tracing expiration time string
scmType SCM type string
tracingOptions Tracing options string
use32BitWorkerProcess Use 32 bit worker process bool
virtualApplications Virtual applications VirtualApplication[]
vnetName Vnet name string
webSocketsEnabled Web socket enabled. bool

SiteLimits

Name Description Value
maxDiskSizeInMb Maximum allowed disk size usage in MB int
maxMemoryInMb Maximum allowed memory usage in MB int
maxPercentageCpu Maximum allowed CPU usage percentage int

SiteLogsConfigProperties

Name Description Value
applicationLogs Application logs configuration ApplicationLogsConfig
detailedErrorMessages Detailed error messages configuration EnabledConfig
failedRequestsTracing Failed requests tracing configuration EnabledConfig
httpLogs Http logs configuration HttpLogsConfig

SlotConfigNamesResourceProperties

Name Description Value
appSettingNames List of application settings names string[]
connectionStringNames List of connection string names string[]

SlowRequestsBasedTrigger

Name Description Value
count Count int
timeInterval TimeInterval string
timeTaken TimeTaken string

StatusCodesBasedTrigger

Name Description Value
count Count int
status HTTP status code int
subStatus SubStatus int
timeInterval TimeInterval string
win32Status Win32 error code int

StringDictionaryProperties

Name Description Value

StringDictionaryProperties

Name Description Value

VirtualApplication

Name Description Value
physicalPath string
preloadEnabled bool
virtualDirectories VirtualDirectory[]
virtualPath string

VirtualDirectory

Name Description Value
physicalPath string
virtualPath string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
App Service Environment with Azure SQL backend

Deploy to Azure
This template creates an App Service Environment with an Azure SQL backend along with private endpoints along with associated resources typically used in an private/isolated environment.
Application Gateway with internal API Management and Web App

Deploy to Azure
Application Gateway routing Internet traffic to a virtual network (internal mode) API Management instance which services a web API hosted in an Azure Web App.
Azure Function App with Event Hub and Managed Identity

Deploy to Azure
his template provisions an Azure Function app on a Linux Consumption plan, along with an Event Hub, Azure Storage, and Application Insights. The function app is able to use managed identity to connect to the Event Hub and Storage account
Create a web app on Azure with Java 13 and Tomcat 9 enabled

Deploy to Azure
This template creates a web app on azure with Java 13 and Tomcat 9 enabled allowing you to run Java applications in Azure. Template was authored by Donovan Brown of Microsoft.
Create a Web App plus Redis Cache using a template

Deploy to Azure
This template creates an Azure Web App with Redis cache.
Deploy an Azure Function Premium plan with vnet integration

Deploy to Azure
This template allows you to deploy an Azure Function Premium plan with regional virtual network integration enabled to a newly created virtual network.
Moesif API Analytics and Monetization

Deploy to Azure
The template will log API calls from Azure API Management to Moesif API analytics and monetization platform
Provision a function app running on an App Service Plan

Deploy to Azure
This template provisions a function app on a dedicated hosting plan, meaning it will be run and billed just like any App Service site.
Provision a Web App with a SQL Database

Deploy to Azure
This template provisions a Web App, a SQL Database, AutoScale settings, Alert rules, and App Insights. It configures a connection string in the web app for the database.
Sonarqube Docker Web App on Linux with Azure SQL

Deploy to Azure
This template deploys Sonarqube in an Azure App Service web app Linux container using the official Sonarqube image and backed by an Azure SQL Server.
Sonarqube Docker Web App on Linux with PostgreSQL

Deploy to Azure
This template provides a easy way to deploy a Sonarqube docker image (alpine tag) on a Linux Web App with Azure database for PostgreSQL(Preview)
Web App w/ Application Insights sending to Log Analytics

Deploy to Azure
This template will is to help support the new API versions of microsoft.insights/components. Starting with 2020-02-02-preview WorkspaceID will be required when creating Application Inisghts.This template will deploy the App Service Plan, App Service, Application Insights, Log Analytics Workspace and hook it all together.
Web App with Azure database for MySQL

Deploy to Azure
This template provides a easy way to deploy web app on Azure App Service Web Apps with Azure database for MySQL.
Web App with custom Deployment slots

Deploy to Azure
This template provides an easy way to deploy a web app with custom deployment slots on Azure Web Apps.
Web App with Managed Identity, SQL Server and ΑΙ

Deploy to Azure
Simple example to deploy Azure infrastructure for app + data + managed identity + monitoring
Web App with Private Endpoint

Deploy to Azure
This template allows you to create a Web App and expose it through Private Endpoint
Web App with VNet Injection and Private Endpoint

Deploy to Azure
This template allows you to create a secure end to end solution with two web apps, front end and back end, front end will consume securely the back through VNet injection and Private Endpoint

Terraform (AzAPI provider) resource definition

The sites/config resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Web/sites/config resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  name = "string"
  // For remaining properties, see microsoft.web/sites/config objects
}

microsoft.web/sites/config objects

Set the name property to specify the type of object.

For slotConfigNames, use:

{
  kind = "string"
  location = "string"
  name = "slotConfigNames"
  properties = {
    appSettingNames = [
      "string"
    ]
    connectionStringNames = [
      "string"
    ]
  }
  tags = {
    {customized property} = "string"
  }
}

For web, use:

{
  kind = "string"
  location = "string"
  name = "web"
  properties = {
    alwaysOn = bool
    apiDefinition = {
      url = "string"
    }
    appCommandLine = "string"
    appSettings = [
      {
        name = "string"
        value = "string"
      }
    ]
    autoHealEnabled = bool
    autoHealRules = {
      actions = {
        actionType = "string"
        customAction = {
          exe = "string"
          parameters = "string"
        }
        minProcessExecutionTime = "string"
      }
      triggers = {
        privateBytesInKB = int
        requests = {
          count = int
          timeInterval = "string"
        }
        slowRequests = {
          count = int
          timeInterval = "string"
          timeTaken = "string"
        }
        statusCodes = [
          {
            count = int
            status = int
            subStatus = int
            timeInterval = "string"
            win32Status = int
          }
        ]
      }
    }
    autoSwapSlotName = "string"
    connectionStrings = [
      {
        connectionString = "string"
        name = "string"
        type = "string"
      }
    ]
    cors = {
      allowedOrigins = [
        "string"
      ]
    }
    defaultDocuments = [
      "string"
    ]
    detailedErrorLoggingEnabled = bool
    documentRoot = "string"
    experiments = {
      rampUpRules = [
        {
          actionHostName = "string"
          changeDecisionCallbackUrl = "string"
          changeIntervalInMinutes = int
          changeStep = int
          maxReroutePercentage = int
          minReroutePercentage = int
          name = "string"
          reroutePercentage = int
        }
      ]
    }
    handlerMappings = [
      {
        arguments = "string"
        extension = "string"
        scriptProcessor = "string"
      }
    ]
    httpLoggingEnabled = bool
    ipSecurityRestrictions = [
      {
        ipAddress = "string"
        subnetMask = "string"
      }
    ]
    javaContainer = "string"
    javaContainerVersion = "string"
    javaVersion = "string"
    limits = {
      maxDiskSizeInMb = int
      maxMemoryInMb = int
      maxPercentageCpu = int
    }
    loadBalancing = "string"
    localMySqlEnabled = bool
    logsDirectorySizeLimit = int
    managedPipelineMode = "string"
    metadata = [
      {
        name = "string"
        value = "string"
      }
    ]
    netFrameworkVersion = "string"
    nodeVersion = "string"
    numberOfWorkers = int
    phpVersion = "string"
    publishingPassword = "string"
    publishingUsername = "string"
    pythonVersion = "string"
    remoteDebuggingEnabled = bool
    remoteDebuggingVersion = "string"
    requestTracingEnabled = bool
    requestTracingExpirationTime = "string"
    scmType = "string"
    tracingOptions = "string"
    use32BitWorkerProcess = bool
    virtualApplications = [
      {
        physicalPath = "string"
        preloadEnabled = bool
        virtualDirectories = [
          {
            physicalPath = "string"
            virtualPath = "string"
          }
        ]
        virtualPath = "string"
      }
    ]
    vnetName = "string"
    webSocketsEnabled = bool
  }
  tags = {
    {customized property} = "string"
  }
}

For appsettings, use:

{
  kind = "string"
  location = "string"
  name = "appsettings"
  properties = {
    {customized property} = "string"
  }
  tags = {
    {customized property} = "string"
  }
}

For connectionstrings, use:

{
  kind = "string"
  location = "string"
  name = "connectionstrings"
  properties = {
    {customized property} = {
      type = "string"
      value = "string"
    }
  }
  tags = {
    {customized property} = "string"
  }
}

For authsettings, use:

{
  aadClientId = "string"
  additionalLoginParams = [
    "string"
  ]
  allowedAudiences = [
    "string"
  ]
  allowedExternalRedirectUrls = [
    "string"
  ]
  clientId = "string"
  clientSecret = "string"
  defaultProvider = "string"
  enabled = bool
  facebookAppId = "string"
  facebookAppSecret = "string"
  facebookOAuthScopes = [
    "string"
  ]
  googleClientId = "string"
  googleClientSecret = "string"
  googleOAuthScopes = [
    "string"
  ]
  httpApiPrefixPath = "string"
  issuer = "string"
  microsoftAccountClientId = "string"
  microsoftAccountClientSecret = "string"
  microsoftAccountOAuthScopes = [
    "string"
  ]
  name = "authsettings"
  openIdIssuer = "string"
  tokenRefreshExtensionHours = int
  tokenStoreEnabled = bool
  twitterConsumerKey = "string"
  twitterConsumerSecret = "string"
  unauthenticatedClientAction = "string"
}

For metadata, use:

{
  kind = "string"
  location = "string"
  name = "metadata"
  properties = {
    {customized property} = "string"
  }
  tags = {
    {customized property} = "string"
  }
}

For logs, use:

{
  kind = "string"
  location = "string"
  name = "logs"
  properties = {
    applicationLogs = {
      azureBlobStorage = {
        level = "string"
        retentionInDays = int
        sasUrl = "string"
      }
      azureTableStorage = {
        level = "string"
        sasUrl = "string"
      }
      fileSystem = {
        level = "string"
      }
    }
    detailedErrorMessages = {
      enabled = bool
    }
    failedRequestsTracing = {
      enabled = bool
    }
    httpLogs = {
      azureBlobStorage = {
        enabled = bool
        retentionInDays = int
        sasUrl = "string"
      }
      fileSystem = {
        enabled = bool
        retentionInDays = int
        retentionInMb = int
      }
    }
  }
  tags = {
    {customized property} = "string"
  }
}

For backup, use:

{
  kind = "string"
  location = "string"
  name = "backup"
  properties = {
    backupSchedule = {
      frequencyInterval = int
      frequencyUnit = "string"
      keepAtLeastOneBackup = bool
      lastExecutionTime = "string"
      retentionPeriodInDays = int
      startTime = "string"
    }
    databases = [
      {
        connectionString = "string"
        connectionStringName = "string"
        databaseType = "string"
        name = "string"
      }
    ]
    enabled = bool
    name = "string"
    storageAccountUrl = "string"
    type = "string"
  }
  tags = {
    {customized property} = "string"
  }
}

Property values

ApiDefinitionInfo

Name Description Value
url The URL of the API definition. string

ApplicationLogsConfig

Name Description Value
azureBlobStorage Application logs to blob storage configuration AzureBlobStorageApplicationLogsConfig
azureTableStorage Application logs to azure table storage configuration AzureTableStorageApplicationLogsConfig
fileSystem Application logs to file system configuration FileSystemApplicationLogsConfig

AutoHealActions

Name Description Value
actionType ActionType - predefined action to be taken 'CustomAction'
'LogEvent'
'Recycle' (required)
customAction CustomAction - custom action to be taken AutoHealCustomAction
minProcessExecutionTime MinProcessExecutionTime - minimum time the process must execute
before taking the action
string

AutoHealCustomAction

Name Description Value
exe Executable to be run string
parameters Parameters for the executable string

AutoHealRules

Name Description Value
actions Actions - Actions to be executed when a rule is triggered AutoHealActions
triggers Triggers - Conditions that describe when to execute the auto-heal actions AutoHealTriggers

AutoHealTriggers

Name Description Value
privateBytesInKB PrivateBytesInKB - Defines a rule based on private bytes int
requests Requests - Defines a rule based on total requests RequestsBasedTrigger
slowRequests SlowRequests - Defines a rule based on request execution time SlowRequestsBasedTrigger
statusCodes StatusCodes - Defines a rule based on status codes StatusCodesBasedTrigger[]

AzureBlobStorageApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'
retentionInDays Retention in days.
Remove blobs older than X days.
0 or lower means no retention.
int
sasUrl SAS url to a azure blob container with read/write/list/delete permissions string

AzureBlobStorageHttpLogsConfig

Name Description Value
enabled Enabled bool
retentionInDays Retention in days.
Remove blobs older than X days.
0 or lower means no retention.
int
sasUrl SAS url to a azure blob container with read/write/list/delete permissions string

AzureTableStorageApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'
sasUrl SAS url to an azure table with add/query/delete permissions string

BackupRequestProperties

Name Description Value
backupSchedule Schedule for the backup if it is executed periodically BackupSchedule
databases Databases included in the backup DatabaseBackupSetting[]
enabled True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled bool
name Name of the backup string
storageAccountUrl SAS URL to the container string
type Type of the backup 'Clone'
'Default'
'Relocation' (required)

BackupSchedule

Name Description Value
frequencyInterval How often should be the backup executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) int
frequencyUnit How often should be the backup executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) 'Day'
'Hour' (required)
keepAtLeastOneBackup True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. bool
lastExecutionTime The last time when this schedule was triggered string
retentionPeriodInDays After how many days backups should be deleted int
startTime When the schedule should start working string

ConnectionStringDictionaryProperties

Name Description Value

ConnStringInfo

Name Description Value
connectionString Connection string value string
name Name of connection string string
type Type of database 'Custom'
'MySql'
'SQLAzure'
'SQLServer' (required)

ConnStringValueTypePair

Name Description Value
type Type of database 'Custom'
'MySql'
'SQLAzure'
'SQLServer' (required)
value Value of pair string

CorsSettings

Name Description Value
allowedOrigins Gets or sets the list of origins that should be allowed to make cross-origin
calls (for example: http://example.com:12345). Use "*" to allow all.
string[]

DatabaseBackupSetting

Name Description Value
connectionString Contains a connection string to a database which is being backed up/restored. If the restore should happen to a new database, the database name inside is the new one. string
connectionStringName Contains a connection string name that is linked to the SiteConfig.ConnectionStrings.
This is used during restore with overwrite connection strings options.
string
databaseType SqlAzure / MySql string
name string

EnabledConfig

Name Description Value
enabled Enabled bool

Experiments

Name Description Value
rampUpRules List of {Microsoft.Web.Hosting.Administration.RampUpRule} objects. RampUpRule[]

FileSystemApplicationLogsConfig

Name Description Value
level Log level 'Error'
'Information'
'Off'
'Verbose'
'Warning'

FileSystemHttpLogsConfig

Name Description Value
enabled Enabled bool
retentionInDays Retention in days.
Remove files older than X days.
0 or lower means no retention.
int
retentionInMb Maximum size in megabytes that http log files can use.
When reached old log files will be removed to make space for new ones.
Value can range between 25 and 100.
int

HandlerMapping

Name Description Value
arguments Command-line arguments to be passed to the script processor. string
extension Requests with this extension will be handled using the specified FastCGI application. string
scriptProcessor The absolute path to the FastCGI application. string

HttpLogsConfig

Name Description Value
azureBlobStorage Http logs to azure blob storage configuration AzureBlobStorageHttpLogsConfig
fileSystem Http logs to file system configuration FileSystemHttpLogsConfig

IpSecurityRestriction

Name Description Value
ipAddress IP address the security restriction is valid for string
subnetMask Subnet mask for the range of IP addresses the restriction is valid for string

microsoft.web/sites/config

Name Description Value
name Set to 'slotConfigNames' for type Microsoft.Web/sites/config. Set to 'web' for type Microsoft.Web/sites/config. Set to 'appsettings' for type Microsoft.Web/sites/config. Set to 'connectionstrings' for type Microsoft.Web/sites/config. Set to 'authsettings' for type Microsoft.Web/sites/config. Set to 'metadata' for type Microsoft.Web/sites/config. Set to 'logs' for type Microsoft.Web/sites/config. Set to 'backup' for type Microsoft.Web/sites/config. 'appsettings'
'authsettings'
'backup'
'connectionstrings'
'logs'
'metadata'
'slotConfigNames'
'web' (required)

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'slotConfigNames' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties SlotConfigNamesResourceProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'web' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties SiteConfigProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'appsettings' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties Settings StringDictionaryProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'connectionstrings' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties Connection strings ConnectionStringDictionaryProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

Microsoft.Web/sites/config

Name Description Value
aadClientId string
additionalLoginParams Gets or sets a list of login parameters to send to the OpenID Connect authorization endpoint when
a user logs in. Each parameter must be in the form "key=value".
string[]
allowedAudiences Gets or sets a list of allowed audience values to consider when validating JWTs issued by
Azure Active Directory. Note that the {Microsoft.Web.Hosting.Administration.SiteAuthSettings.ClientId} value is always considered an
allowed audience, regardless of this setting.
string[]
allowedExternalRedirectUrls Gets or sets a collection of external URLs that can be redirected to as part of logging in
or logging out of the web app. Note that the query string part of the URL is ignored.
This is an advanced setting typically only needed by Windows Store application backends.
Note that URLs within the current domain are always implicitly allowed.
string[]
clientId Gets or sets the Client ID of this relying party application, known as the client_id.
This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
other 3rd party OpenID Connect providers.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
string
clientSecret Gets or sets the Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
string
defaultProvider Gets or sets the default authentication provider to use when multiple providers are configured.
This setting is only needed if multiple providers are configured and the unauthenticated client
action is set to "RedirectToLoginPage".
'AzureActiveDirectory'
'Facebook'
'Google'
'MicrosoftAccount'
'Twitter'
enabled Gets or sets a value indicating whether the Authentication / Authorization feature is enabled for the current app. bool
facebookAppId Gets or sets the App ID of the Facebook app used for login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string
facebookAppSecret Gets or sets the App Secret of the Facebook app used for Facebook Login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string
facebookOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
This setting is optional.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
string[]
googleClientId Gets or sets the OpenID Connect Client ID for the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string
googleClientSecret Gets or sets the client secret associated with the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string
googleOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
string[]
httpApiPrefixPath Gets or sets the relative path prefix used by platform HTTP APIs.
Changing this value is not recommended except for compatibility reasons.
string
issuer Gets or sets the OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
This URI is a case-sensitive identifier for the token issuer.
More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
string
microsoftAccountClientId Gets or sets the OAuth 2.0 client ID that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
string
microsoftAccountClientSecret Gets or sets the OAuth 2.0 client secret that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
string
microsoftAccountOAuthScopes Gets or sets the OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
This setting is optional. If not specified, "wl.basic" is used as the default scope.
Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
string[]
name The resource name 'authsettings' (required)
openIdIssuer string
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
tokenRefreshExtensionHours Gets or sets the number of hours after session token expiration that a session token can be used to
call the token refresh API. The default is 72 hours.
int
tokenStoreEnabled Gets or sets a value indicating whether to durably store platform-specific security tokens
obtained during login flows. This capability is disabled by default.
bool
twitterConsumerKey Gets or sets the OAuth 1.0a consumer key of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
string
twitterConsumerSecret Gets or sets the OAuth 1.0a consumer secret of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
string
type The resource type "Microsoft.Web/sites/config@2015-08-01"
unauthenticatedClientAction Gets or sets the action to take when an unauthenticated client attempts to access the app. 'AllowAnonymous'
'RedirectToLoginPage'

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'metadata' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties Settings StringDictionaryProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'logs' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties SiteLogsConfigProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

Microsoft.Web/sites/config

Name Description Value
kind Kind of resource string
location Resource Location string (required)
name The resource name 'backup' (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: sites
properties BackupRequestProperties
tags Resource tags Dictionary of tag names and values.
type The resource type "Microsoft.Web/sites/config@2015-08-01"

NameValuePair

Name Description Value
name Pair name string
value Pair value string

RampUpRule

Name Description Value
actionHostName Hostname of a slot to which the traffic will be redirected if decided to. E.g. mysite-stage.azurewebsites.net string
changeDecisionCallbackUrl Custom decision algorithm can be provided in TiPCallback site extension which Url can be specified. See TiPCallback site extension for the scaffold and contracts.
https://www.siteextensions.net/packages/TiPCallback/
string
changeIntervalInMinutes [Optional] Specifies interval in minutes to reevaluate ReroutePercentage int
changeStep [Optional] In auto ramp up scenario this is the step to add/remove from {Microsoft.Web.Hosting.Administration.RampUpRule.ReroutePercentage} until it reaches
{Microsoft.Web.Hosting.Administration.RampUpRule.MinReroutePercentage} or {Microsoft.Web.Hosting.Administration.RampUpRule.MaxReroutePercentage}. Site metrics are checked every N minutes specified in {Microsoft.Web.Hosting.Administration.RampUpRule.ChangeIntervalInMinutes}.
Custom decision algorithm can be provided in TiPCallback site extension which Url can be specified in {Microsoft.Web.Hosting.Administration.RampUpRule.ChangeDecisionCallbackUrl}
int
maxReroutePercentage [Optional] Specifies upper boundary below which ReroutePercentage will stay. int
minReroutePercentage [Optional] Specifies lower boundary above which ReroutePercentage will stay. int
name Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. string
reroutePercentage Percentage of the traffic which will be redirected to {Microsoft.Web.Hosting.Administration.RampUpRule.ActionHostName} int

RequestsBasedTrigger

Name Description Value
count Count int
timeInterval TimeInterval string

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

ResourceTags

Name Description Value

SiteConfigProperties

Name Description Value
alwaysOn Always On bool
apiDefinition Information about the formal API definition for the web app. ApiDefinitionInfo
appCommandLine App Command Line to launch string
appSettings Application Settings NameValuePair[]
autoHealEnabled Auto heal enabled bool
autoHealRules Auto heal rules AutoHealRules
autoSwapSlotName Auto swap slot name string
connectionStrings Connection strings ConnStringInfo[]
cors Cross-Origin Resource Sharing (CORS) settings. CorsSettings
defaultDocuments Default documents string[]
detailedErrorLoggingEnabled Detailed error logging enabled bool
documentRoot Document root string
experiments This is work around for polymorphic types Experiments
handlerMappings Handler mappings HandlerMapping[]
httpLoggingEnabled HTTP logging Enabled bool
ipSecurityRestrictions Ip Security restrictions IpSecurityRestriction[]
javaContainer Java container string
javaContainerVersion Java container version string
javaVersion Java version string
limits Site limits SiteLimits
loadBalancing Site load balancing 'LeastRequests'
'LeastResponseTime'
'RequestHash'
'WeightedRoundRobin'
'WeightedTotalTraffic'
localMySqlEnabled Local mysql enabled bool
logsDirectorySizeLimit HTTP Logs Directory size limit int
managedPipelineMode Managed pipeline mode 'Classic'
'Integrated'
metadata Site Metadata NameValuePair[]
netFrameworkVersion Net Framework Version string
nodeVersion Version of Node string
numberOfWorkers Number of workers int
phpVersion Version of PHP string
publishingPassword Publishing password string
publishingUsername Publishing user name string
pythonVersion Version of Python string
remoteDebuggingEnabled Remote Debugging Enabled bool
remoteDebuggingVersion Remote Debugging Version string
requestTracingEnabled Enable request tracing bool
requestTracingExpirationTime Request tracing expiration time string
scmType SCM type string
tracingOptions Tracing options string
use32BitWorkerProcess Use 32 bit worker process bool
virtualApplications Virtual applications VirtualApplication[]
vnetName Vnet name string
webSocketsEnabled Web socket enabled. bool

SiteLimits

Name Description Value
maxDiskSizeInMb Maximum allowed disk size usage in MB int
maxMemoryInMb Maximum allowed memory usage in MB int
maxPercentageCpu Maximum allowed CPU usage percentage int

SiteLogsConfigProperties

Name Description Value
applicationLogs Application logs configuration ApplicationLogsConfig
detailedErrorMessages Detailed error messages configuration EnabledConfig
failedRequestsTracing Failed requests tracing configuration EnabledConfig
httpLogs Http logs configuration HttpLogsConfig

SlotConfigNamesResourceProperties

Name Description Value
appSettingNames List of application settings names string[]
connectionStringNames List of connection string names string[]

SlowRequestsBasedTrigger

Name Description Value
count Count int
timeInterval TimeInterval string
timeTaken TimeTaken string

StatusCodesBasedTrigger

Name Description Value
count Count int
status HTTP status code int
subStatus SubStatus int
timeInterval TimeInterval string
win32Status Win32 error code int

StringDictionaryProperties

Name Description Value

StringDictionaryProperties

Name Description Value

VirtualApplication

Name Description Value
physicalPath string
preloadEnabled bool
virtualDirectories VirtualDirectory[]
virtualPath string

VirtualDirectory

Name Description Value
physicalPath string
virtualPath string