# Azure Web Apps

> Create and run Azure App Service web apps: create apps and App Service plans, start, stop and restart apps, change their app settings, connection strings and runtime configuration, check whether a name is free and list the runtime stacks Azure offers. Works with the free F1 plan.

App · Cloud Computing · 20 actions. Web page: https://docs.lodol.com/docs/integrations/azure-web-apps

## Actions

### Check name availability

Whether a web app name is free. Names are global across Azure, because each becomes <name>.azurewebsites.net.

**Inputs**

- App name (`app_name`, text, required): The name to check.

**Outputs**

- `available` (true/false)
- `message` (text)
- `name` (text)
- `reason` (text)

**Example output**

```json
{
  "available": true,
  "message": null,
  "name": "my-web-app",
  "reason": null
}
```

### Create App Service plan

Create an App Service plan, the compute web apps run on. F1 is free; other tiers are billed by the hour. The operating system cannot be changed later. The step stops rather than overwrite a plan that already has the name.

**Inputs**

- Plan name (`plan_name`, text, required): Up to 60 letters, digits, hyphens and underscores.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Pricing tier (`sku`, text): F1 is free: shared compute, 60 CPU minutes a day. One of: `F1` (F1 - Free), `B1` (B1 - Basic), `B2` (B2 - Basic), `S1` (S1 - Standard), `P0v3` (P0v3 - Premium v3), `P1v3` (P1v3 - Premium v3). Default: `F1`.
- Operating system (`plan_os`, text): Linux or Windows. It cannot be changed later. One of: `linux`, `windows`. Default: `linux`.
- Region (`location`, text): An Azure region such as westeurope or 'West Europe'. Leave empty for the resource group's region. A plan can be in a different region from its resource group, so set this to retry where the subscription has quota.
- Tags (`tags`, object): Azure tags as name: value pairs, such as {"team": "web"}.

**Outputs**

- `capacity` (number)
- `id` (text)
- `location` (text)
- `maximum_number_of_workers` (number)
- `name` (text)
- `number_of_sites` (number)
- `os` (text)
- `plan_kind` (text)
- `provisioning_state` (text)
- `resource_group` (text)
- `sku_name` (text)
- `sku_tier` (text)
- `status` (text)
- `tags` (object)

**Example output**

```json
{
  "capacity": 1,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
  "location": "West Europe",
  "maximum_number_of_workers": 1,
  "name": "my-plan",
  "number_of_sites": 0,
  "os": "linux",
  "plan_kind": "linux",
  "provisioning_state": "Succeeded",
  "resource_group": "my-rg",
  "sku_name": "F1",
  "sku_tier": "Free",
  "status": "Ready",
  "tags": {}
}
```

### Create web app

Create a web app on an existing App Service plan, in the plan's region. Web app names are global across Azure, so 'Check name availability' first. The step stops rather than overwrite an app that already has the name.

**Inputs**

- App name (`app_name`, text, required): 2-60 letters, digits and hyphens. It becomes <name>.azurewebsites.net.
- App Service plan (`plan`, text, required): The plan to run it on. Pick one, or type its name (in the app's resource group) or resource id.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Runtime stack (`runtime`, text): The language and version for a Linux app, such as NODE|22-lts or PYTHON|3.12. Pick one, or use a value from 'List runtime stacks'.
- HTTPS only (`https_only`, true/false): Redirect plain HTTP requests to HTTPS. Default: `true`.
- App settings (`app_settings`, object): Environment variables for the app as name: value pairs, such as {"NODE_ENV": "production"}.
- Startup command (`startup_command`, text): The command that starts the app, such as: npm start
- Health check path (`health_check_path`, text): A path Azure pings to check the app is healthy, such as /health.
- Minimum TLS version (`min_tls_version`, text): The oldest TLS version the app accepts. One of: `1.2` (TLS 1.2), `1.3` (TLS 1.3).
- FTP state (`ftps_state`, text): Whether the app accepts FTP or FTPS uploads. One of: `Disabled`, `FtpsOnly` (FTPS only), `AllAllowed` (FTP and FTPS).
- Tags (`tags`, object): Azure tags as name: value pairs, such as {"team": "web"}.

**Outputs**

- `app_kind` (text)
- `availability_state` (text)
- `client_affinity_enabled` (true/false)
- `default_host_name` (text)
- `enabled` (true/false)
- `host_names` (list)
- `https_only` (true/false)
- `id` (text)
- `last_modified` (text)
- `location` (text)
- `name` (text)
- `os` (text)
- `plan_id` (text)
- `plan_name` (text)
- `public_network_access` (text)
- `resource_group` (text)
- `state` (text)
- `tags` (object)
- `url` (text)
- `usage_state` (text)

**Example output**

```json
{
  "app_kind": "app,linux",
  "availability_state": "Normal",
  "client_affinity_enabled": false,
  "default_host_name": "my-web-app.azurewebsites.net",
  "enabled": true,
  "host_names": [
    "my-web-app.azurewebsites.net"
  ],
  "https_only": true,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/sites/my-web-app",
  "last_modified": "2026-10-01T09:00:00Z",
  "location": "West Europe",
  "name": "my-web-app",
  "os": "linux",
  "plan_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
  "plan_name": "my-plan",
  "public_network_access": "Enabled",
  "resource_group": "my-rg",
  "state": "Running",
  "tags": {},
  "url": "https://my-web-app.azurewebsites.net",
  "usage_state": "Normal"
}
```

### Delete App Service plan

Delete an App Service plan. A plan that still hosts apps is not deleted; delete or move its apps first.

**Inputs**

- App Service plan (`plan_name`, text, required): The plan. Pick one, or type its name or resource id.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Succeed if it is already gone (`if_missing_ok`, true/false): When on, the step succeeds even if there is nothing to delete. Default: `false`.

**Outputs**

- `already_gone` (true/false)
- `deleted` (true/false)
- `name` (text)
- `resource_group` (text)

**Example output**

```json
{
  "already_gone": false,
  "deleted": true,
  "name": "my-plan",
  "resource_group": "my-rg"
}
```

### Delete web app

Delete a web app and its content. Its App Service plan is kept, even when it is left with no apps, unless you choose otherwise.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Also delete the plan if empty (`delete_empty_plan`, true/false): When on, the app's App Service plan is deleted too if this was its last app. Default: `false`.
- Succeed if it is already gone (`if_missing_ok`, true/false): When on, the step succeeds even if there is nothing to delete. Default: `false`.

**Outputs**

- `already_gone` (true/false)
- `deleted` (true/false)
- `deleted_empty_plan` (true/false)
- `name` (text)
- `resource_group` (text)

**Example output**

```json
{
  "already_gone": false,
  "deleted": true,
  "deleted_empty_plan": false,
  "name": "my-web-app",
  "resource_group": "my-rg"
}
```

### Get App Service plan

One App Service plan's tier, region, status and app count.

**Inputs**

- App Service plan (`plan_name`, text, required): The plan. Pick one, or type its name or resource id.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `capacity` (number)
- `id` (text)
- `location` (text)
- `maximum_number_of_workers` (number)
- `name` (text)
- `number_of_sites` (number)
- `os` (text)
- `plan_kind` (text)
- `provisioning_state` (text)
- `resource_group` (text)
- `sku_name` (text)
- `sku_tier` (text)
- `status` (text)
- `tags` (object)

**Example output**

```json
{
  "capacity": 1,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
  "location": "West Europe",
  "maximum_number_of_workers": 1,
  "name": "my-plan",
  "number_of_sites": 1,
  "os": "linux",
  "plan_kind": "linux",
  "provisioning_state": "Succeeded",
  "resource_group": "my-rg",
  "sku_name": "F1",
  "sku_tier": "Free",
  "status": "Ready",
  "tags": {}
}
```

### Get app settings

An app's application settings (its environment variables), with their values.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `app_name` (text)
- `count` (number)
- `names` (list)
- `resource_group` (text)
- `settings` (object): Setting name: value

**Example output**

```json
{
  "app_name": "my-web-app",
  "count": 1,
  "names": [
    "FEATURE_FLAG"
  ],
  "resource_group": "my-rg",
  "settings": {
    "FEATURE_FLAG": "on"
  }
}
```

### Get connection strings

An app's connection strings, each with its value and type.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `app_name` (text)
- `connection_strings` (object): Name: {value, type}
- `count` (number)
- `names` (list)
- `resource_group` (text)

**Example output**

```json
{
  "app_name": "my-web-app",
  "connection_strings": {
    "Database": {
      "type": "SQLAzure",
      "value": "Server=example;Database=app"
    }
  },
  "count": 1,
  "names": [
    "Database"
  ],
  "resource_group": "my-rg"
}
```

### Get site configuration

An app's runtime and platform configuration: runtime stack, startup command, always on, HTTP/2, TLS, FTP, logging and more.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `always_on` (true/false)
- `app_name` (text)
- `config` (object): Every configuration value Azure set
- `default_documents` (list)
- `detailed_error_logging_enabled` (true/false)
- `ftps_state` (text)
- `health_check_path` (text)
- `http20_enabled` (true/false)
- `http_logging_enabled` (true/false)
- `java_version` (text)
- `linux_fx_version` (text)
- `min_tls_version` (text)
- `net_framework_version` (text)
- `node_version` (text)
- `number_of_workers` (number)
- `php_version` (text)
- `python_version` (text)
- `request_tracing_enabled` (true/false)
- `resource_group` (text)
- `startup_command` (text)
- `use_32_bit_worker_process` (true/false)
- `web_sockets_enabled` (true/false)
- `website_time_zone` (text)
- `windows_fx_version` (text)

**Example output**

```json
{
  "always_on": false,
  "app_name": "my-web-app",
  "config": {
    "http20Enabled": true,
    "linuxFxVersion": "NODE|22-lts"
  },
  "default_documents": [
    "index.html"
  ],
  "detailed_error_logging_enabled": false,
  "ftps_state": "FtpsOnly",
  "health_check_path": null,
  "http20_enabled": true,
  "http_logging_enabled": false,
  "java_version": null,
  "linux_fx_version": "NODE|22-lts",
  "min_tls_version": "1.2",
  "net_framework_version": "v4.0",
  "node_version": "",
  "number_of_workers": 1,
  "php_version": "",
  "python_version": "",
  "request_tracing_enabled": false,
  "resource_group": "my-rg",
  "startup_command": "",
  "use_32_bit_worker_process": true,
  "web_sockets_enabled": false,
  "website_time_zone": null,
  "windows_fx_version": null
}
```

### Get web app

One web app's state, address, plan and settings.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `app_kind` (text)
- `availability_state` (text)
- `client_affinity_enabled` (true/false)
- `default_host_name` (text)
- `enabled` (true/false)
- `host_names` (list)
- `https_only` (true/false)
- `id` (text)
- `last_modified` (text)
- `location` (text)
- `name` (text)
- `os` (text)
- `plan_id` (text)
- `plan_name` (text)
- `public_network_access` (text)
- `resource_group` (text)
- `state` (text)
- `tags` (object)
- `url` (text)
- `usage_state` (text)

**Example output**

```json
{
  "app_kind": "app,linux",
  "availability_state": "Normal",
  "client_affinity_enabled": false,
  "default_host_name": "my-web-app.azurewebsites.net",
  "enabled": true,
  "host_names": [
    "my-web-app.azurewebsites.net"
  ],
  "https_only": true,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/sites/my-web-app",
  "last_modified": "2026-10-01T09:00:00Z",
  "location": "West Europe",
  "name": "my-web-app",
  "os": "linux",
  "plan_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
  "plan_name": "my-plan",
  "public_network_access": "Enabled",
  "resource_group": "my-rg",
  "state": "Running",
  "tags": {},
  "url": "https://my-web-app.azurewebsites.net",
  "usage_state": "Normal"
}
```

### List App Service plans

The App Service plans in a resource group or the whole subscription, with each one's tier, region and app count.

**Inputs**

- Resource group (`resource_group`, text): Only this resource group. Leave empty for the connection's default resource group, or the whole subscription when there is none.
- Maximum results (`limit`, number): Return at most this many. From 1 to 1000. Default: `100`.

**Outputs**

- `count` (number)
- `names` (list)
- `plans` (list)
- `resource_group` (text)
- `truncated` (true/false)

**Example output**

```json
{
  "count": 1,
  "names": [
    "my-plan"
  ],
  "plans": [
    {
      "capacity": 1,
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
      "location": "West Europe",
      "maximum_number_of_workers": 1,
      "name": "my-plan",
      "number_of_sites": 1,
      "os": "linux",
      "plan_kind": "linux",
      "provisioning_state": "Succeeded",
      "resource_group": "my-rg",
      "sku_name": "F1",
      "sku_tier": "Free",
      "status": "Ready",
      "tags": {}
    }
  ],
  "resource_group": "my-rg",
  "truncated": false
}
```

### List runtime stacks

The languages and versions App Service can run, with the value 'Create web app' and 'Update site configuration' take. 'latest' is the newest supported version.

**Inputs**

- Operating system (`stack_os`, text): Runtimes for Linux apps, Windows apps or both. One of: `Linux`, `Windows`, `All` (Both). Default: `Linux`.
- Language (`stack`, text): Only this language, such as node, python, dotnet, java or php. Leave empty for all.
- Include deprecated (`include_deprecated`, true/false): When on, versions past end of support are listed too. Default: `false`.

**Outputs**

- `count` (number)
- `latest` (text)
- `os` (text)
- `runtime_versions` (list)
- `runtimes` (list)
- `stack` (text)

**Example output**

```json
{
  "count": 1,
  "latest": "NODE|22-lts",
  "os": "Linux",
  "runtime_versions": [
    "NODE|22-lts"
  ],
  "runtimes": [
    {
      "end_of_life_date": "2027-04-30T00:00:00Z",
      "is_deprecated": false,
      "is_preview": false,
      "os": "linux",
      "runtime_version": "NODE|22-lts",
      "stack": "node",
      "stack_label": "Node",
      "version_label": "Node 22 LTS"
    }
  ],
  "stack": "node"
}
```

### List web apps

The web apps in a resource group or the whole subscription, with each one's state and address.

**Inputs**

- Resource group (`resource_group`, text): Only this resource group. Leave empty for the connection's default resource group, or the whole subscription when there is none.
- Include function apps (`include_function_apps`, true/false): When on, Azure Functions apps are listed too. Default: `false`.
- Maximum results (`limit`, number): Return at most this many. From 1 to 1000. Default: `100`.

**Outputs**

- `apps` (list)
- `count` (number)
- `names` (list)
- `resource_group` (text)
- `truncated` (true/false)

**Example output**

```json
{
  "apps": [
    {
      "app_kind": "app,linux",
      "availability_state": "Normal",
      "client_affinity_enabled": false,
      "default_host_name": "my-web-app.azurewebsites.net",
      "enabled": true,
      "host_names": [
        "my-web-app.azurewebsites.net"
      ],
      "https_only": true,
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/sites/my-web-app",
      "last_modified": "2026-10-01T09:00:00Z",
      "location": "West Europe",
      "name": "my-web-app",
      "os": "linux",
      "plan_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
      "plan_name": "my-plan",
      "public_network_access": "Enabled",
      "resource_group": "my-rg",
      "state": "Running",
      "tags": {},
      "url": "https://my-web-app.azurewebsites.net",
      "usage_state": "Normal"
    }
  ],
  "count": 1,
  "names": [
    "my-web-app"
  ],
  "resource_group": "my-rg",
  "truncated": false
}
```

### Restart web app

Restart a web app, for example after changing its settings.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Only if needed (`soft_restart`, true/false): When on, Azure applies the configuration and restarts the app only if that needs a restart. Default: `false`.
- Wait until restarted (`wait_until_restarted`, true/false): When on, the step waits for the app to come back up (up to five minutes) instead of returning straight away. Default: `false`.

**Outputs**

- `action` (text)
- `name` (text)
- `resource_group` (text)
- `soft_restart` (true/false)
- `state` (text)
- `url` (text)
- `waited` (true/false)

**Example output**

```json
{
  "action": "restarted",
  "name": "my-web-app",
  "resource_group": "my-rg",
  "soft_restart": false,
  "state": "Running",
  "url": "https://my-web-app.azurewebsites.net",
  "waited": false
}
```

### Start web app

Start a stopped web app.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `action` (text)
- `name` (text)
- `resource_group` (text)
- `state` (text)
- `url` (text)

**Example output**

```json
{
  "action": "started",
  "name": "my-web-app",
  "resource_group": "my-rg",
  "state": "Running",
  "url": "https://my-web-app.azurewebsites.net"
}
```

### Stop web app

Stop a web app. It stops serving requests until it is started again; on a paid plan, the plan is still billed.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.

**Outputs**

- `action` (text)
- `name` (text)
- `resource_group` (text)
- `state` (text)
- `url` (text)

**Example output**

```json
{
  "action": "stopped",
  "name": "my-web-app",
  "resource_group": "my-rg",
  "state": "Stopped",
  "url": "https://my-web-app.azurewebsites.net"
}
```

### Update app settings

Add, change or remove application settings. Every other setting is kept as it is. Saving restarts the app.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Settings to add or change (`settings`, object): Name: value pairs, such as {"FEATURE_FLAG": "on"}. A null value removes that setting.
- Settings to remove (`remove_names`, list): Names to delete. Names that are not there are ignored.

**Outputs**

- `app_name` (text)
- `changed` (list)
- `count` (number)
- `names` (list)
- `not_found` (list)
- `removed` (list)
- `resource_group` (text)
- `settings` (object): Setting name: value

**Example output**

```json
{
  "app_name": "my-web-app",
  "changed": [
    "FEATURE_FLAG"
  ],
  "count": 1,
  "names": [
    "FEATURE_FLAG"
  ],
  "not_found": [],
  "removed": [],
  "resource_group": "my-rg",
  "settings": {
    "FEATURE_FLAG": "on"
  }
}
```

### Update connection strings

Add or change a connection string, or remove some. Every other connection string is kept as it is. Saving restarts the app.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Name (`name`, text): The connection string to add or change.
- Value (`value`, text): The connection string itself.
- Type (`connection_type`, text): What it connects to. One of: `Custom`, `SQLAzure` (Azure SQL Database), `SQLServer` (SQL Server), `MySql`, `PostgreSQL`, `DocDb` (Cosmos DB (DocDb)), `RedisCache` (Azure Cache for Redis), `ServiceBus` (Service Bus), `EventHub` (Event Hubs), `NotificationHub` (Notification Hubs), `ApiHub` (API Hub). Default: `Custom`.
- Connection strings to remove (`remove_names`, list): Names to delete. Names that are not there are ignored.

**Outputs**

- `app_name` (text)
- `changed` (list)
- `connection_strings` (object): Name: {value, type}
- `count` (number)
- `names` (list)
- `not_found` (list)
- `removed` (list)
- `resource_group` (text)

**Example output**

```json
{
  "app_name": "my-web-app",
  "changed": [
    "Database"
  ],
  "connection_strings": {
    "Database": {
      "type": "SQLAzure",
      "value": "Server=example;Database=app"
    }
  },
  "count": 1,
  "names": [
    "Database"
  ],
  "not_found": [],
  "removed": [],
  "resource_group": "my-rg"
}
```

### Update site configuration

Change an app's runtime stack, startup command and platform settings. Only the settings you set are changed.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Runtime stack (`runtime`, text): The language and version for a Linux app, such as NODE|22-lts or PYTHON|3.12. Pick one, or use a value from 'List runtime stacks'.
- Startup command (`startup_command`, text): The command that starts the app, such as: npm start
- Always on (`always_on`, text): Keeps the app loaded. Not available on the Free (F1) plan. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Web sockets (`web_sockets_enabled`, text): Allow WebSocket connections. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- HTTP/2 (`http20_enabled`, text): Serve the app over HTTP/2. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Minimum TLS version (`min_tls_version`, text): The oldest TLS version the app accepts. One of: `1.2` (TLS 1.2), `1.3` (TLS 1.3).
- FTP state (`ftps_state`, text): Whether the app accepts FTP or FTPS uploads. One of: `Disabled`, `FtpsOnly` (FTPS only), `AllAllowed` (FTP and FTPS).
- Health check path (`health_check_path`, text): A path Azure pings to check the app is healthy, such as /health.
- 32-bit worker process (`use_32_bit_worker_process`, text): Run a Windows app in a 32-bit process. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Default documents (`default_documents`, list): Files served for a folder address, in order, such as index.html. Replaces the current list.
- Time zone (`website_time_zone`, text): The app's time zone: a tz name such as Europe/London on Linux, or a Windows name such as 'GMT Standard Time'.
- Web server logging (`http_logging_enabled`, text): Record the web server's request log. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Detailed error messages (`detailed_error_logging_enabled`, text): Save detailed error pages. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Failed request tracing (`request_tracing_enabled`, text): Trace failed requests. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.

**Outputs**

- `always_on` (true/false)
- `app_name` (text)
- `config` (object): Every configuration value Azure set
- `default_documents` (list)
- `detailed_error_logging_enabled` (true/false)
- `ftps_state` (text)
- `health_check_path` (text)
- `http20_enabled` (true/false)
- `http_logging_enabled` (true/false)
- `java_version` (text)
- `linux_fx_version` (text)
- `min_tls_version` (text)
- `net_framework_version` (text)
- `node_version` (text)
- `number_of_workers` (number)
- `php_version` (text)
- `python_version` (text)
- `request_tracing_enabled` (true/false)
- `resource_group` (text)
- `startup_command` (text)
- `use_32_bit_worker_process` (true/false)
- `web_sockets_enabled` (true/false)
- `website_time_zone` (text)
- `windows_fx_version` (text)

**Example output**

```json
{
  "always_on": false,
  "app_name": "my-web-app",
  "config": {
    "http20Enabled": true,
    "linuxFxVersion": "NODE|22-lts"
  },
  "default_documents": [
    "index.html"
  ],
  "detailed_error_logging_enabled": false,
  "ftps_state": "FtpsOnly",
  "health_check_path": null,
  "http20_enabled": true,
  "http_logging_enabled": false,
  "java_version": null,
  "linux_fx_version": "NODE|22-lts",
  "min_tls_version": "1.2",
  "net_framework_version": "v4.0",
  "node_version": "",
  "number_of_workers": 1,
  "php_version": "",
  "python_version": "",
  "request_tracing_enabled": false,
  "resource_group": "my-rg",
  "startup_command": "",
  "use_32_bit_worker_process": true,
  "web_sockets_enabled": false,
  "website_time_zone": null,
  "windows_fx_version": null
}
```

### Update web app

Turn an app on or off, require HTTPS, change session affinity or public access, or move it to another plan. Only the settings you set are changed.

**Inputs**

- Web app (`app_name`, text, required): The web app. Pick one, or type its name, its resource id or its <name>.azurewebsites.net address.
- Resource group (`resource_group`, text): Leave empty for the connection's default resource group. Not needed when the app or plan is picked from the list or given by resource id.
- Enabled (`enabled`, text): Off makes the app stop serving; its address returns 403. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- HTTPS only (`https_only`, text): On redirects plain HTTP requests to HTTPS. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Session affinity (`client_affinity_enabled`, text): On sends each visitor back to the same instance. One of: `unchanged` (Leave as it is), `on`, `off`. Default: `unchanged`.
- Public network access (`public_network_access`, text): Whether the app can be reached from the internet. One of: `Enabled`, `Disabled`.
- Move to plan (`plan`, text): Move the app to this plan. It must be in the same region and on the same operating system.

**Outputs**

- `app_kind` (text)
- `availability_state` (text)
- `client_affinity_enabled` (true/false)
- `default_host_name` (text)
- `enabled` (true/false)
- `host_names` (list)
- `https_only` (true/false)
- `id` (text)
- `last_modified` (text)
- `location` (text)
- `name` (text)
- `os` (text)
- `plan_id` (text)
- `plan_name` (text)
- `public_network_access` (text)
- `resource_group` (text)
- `state` (text)
- `tags` (object)
- `url` (text)
- `usage_state` (text)

**Example output**

```json
{
  "app_kind": "app,linux",
  "availability_state": "Normal",
  "client_affinity_enabled": false,
  "default_host_name": "my-web-app.azurewebsites.net",
  "enabled": true,
  "host_names": [
    "my-web-app.azurewebsites.net"
  ],
  "https_only": true,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/sites/my-web-app",
  "last_modified": "2026-10-01T09:00:00Z",
  "location": "West Europe",
  "name": "my-web-app",
  "os": "linux",
  "plan_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Web/serverfarms/my-plan",
  "plan_name": "my-plan",
  "public_network_access": "Enabled",
  "resource_group": "my-rg",
  "state": "Running",
  "tags": {},
  "url": "https://my-web-app.azurewebsites.net",
  "usage_state": "Normal"
}
```
