{
  "description": "Generator information:\n- Generated from: /web/resource-manager/Microsoft.Web/stable/2022-03-01/WebApps.json\n- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "azureName": {
          "description": "AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it\ndoesn't have to be.",
          "type": "string"
        },
        "clientAffinityEnabled": {
          "description": "ClientAffinityEnabled: <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity\ncookies, which route client requests in the same session to the same instance. Default is <code>true</code>.",
          "type": "boolean"
        },
        "clientCertEnabled": {
          "description": "ClientCertEnabled: <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise,\n<code>false</code>. Default is <code>false</code>.",
          "type": "boolean"
        },
        "clientCertExclusionPaths": {
          "description": "ClientCertExclusionPaths: client certificate authentication comma-separated exclusion paths",
          "type": "string"
        },
        "clientCertMode": {
          "description": "ClientCertMode: This composes with ClientCertEnabled setting.\n- ClientCertEnabled: false means ClientCert is ignored.\n- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.\n- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.",
          "enum": [
            "Optional",
            "OptionalInteractiveUser",
            "Required"
          ],
          "type": "string"
        },
        "cloningInfo": {
          "description": "CloningInfo: If specified during app creation, the app is cloned from a source app.",
          "properties": {
            "appSettingsOverrides": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "AppSettingsOverrides: Application setting overrides for cloned app. If specified, these settings override the settings\ncloned\nfrom source app. Otherwise, application settings from source app are retained.",
              "type": "object"
            },
            "cloneCustomHostNames": {
              "description": "CloneCustomHostNames: <code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "cloneSourceControl": {
              "description": "CloneSourceControl: <code>true</code> to clone source control from source app; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "configureLoadBalancing": {
              "description": "ConfigureLoadBalancing: <code>true</code> to configure load balancing for source and destination app.",
              "type": "boolean"
            },
            "correlationId": {
              "description": "CorrelationId: Correlation ID of cloning operation. This ID ties multiple cloning operations\ntogether to use the same snapshot.",
              "pattern": "^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$",
              "type": "string"
            },
            "hostingEnvironment": {
              "description": "HostingEnvironment: App Service Environment.",
              "type": "string"
            },
            "overwrite": {
              "description": "Overwrite: <code>true</code> to overwrite destination app; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "sourceWebAppLocation": {
              "description": "SourceWebAppLocation: Location of source app ex: West US or North Europe",
              "type": "string"
            },
            "sourceWebAppReference": {
              "description": "SourceWebAppReference: ARM resource ID of the source app. App resource ID is of the form\n/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots\nand\n/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for\nother slots.",
              "properties": {
                "armId": {
                  "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                  "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                  "type": "string"
                },
                "group": {
                  "description": "Group is the Kubernetes group of the resource.",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind is the Kubernetes kind of the resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the Kubernetes name of the resource.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "trafficManagerProfileName": {
              "description": "TrafficManagerProfileName: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile\ndoes not already exist.",
              "type": "string"
            },
            "trafficManagerProfileReference": {
              "description": "TrafficManagerProfileReference: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager\nresource ID is of the form\n/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.",
              "properties": {
                "armId": {
                  "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                  "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                  "type": "string"
                },
                "group": {
                  "description": "Group is the Kubernetes group of the resource.",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind is the Kubernetes kind of the resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the Kubernetes name of the resource.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "sourceWebAppReference"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "containerSize": {
          "description": "ContainerSize: Size of the function container.",
          "type": "integer"
        },
        "customDomainVerificationId": {
          "description": "CustomDomainVerificationId: Unique identifier that verifies the custom domains assigned to the app. Customer will add\nthis id to a txt record for verification.",
          "type": "string"
        },
        "dailyMemoryTimeQuota": {
          "description": "DailyMemoryTimeQuota: Maximum allowed daily memory-time quota (applicable on dynamic apps only).",
          "type": "integer"
        },
        "enabled": {
          "description": "Enabled: <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables\nthe app (takes the app offline).",
          "type": "boolean"
        },
        "extendedLocation": {
          "description": "ExtendedLocation: Extended Location.",
          "properties": {
            "name": {
              "description": "Name: Name of extended location.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "hostNameSslStates": {
          "description": "HostNameSslStates: Hostname SSL states are used to manage the SSL bindings for app's hostnames.",
          "items": {
            "description": "SSL-enabled hostname.",
            "properties": {
              "hostType": {
                "description": "HostType: Indicates whether the hostname is a standard or repository hostname.",
                "enum": [
                  "Repository",
                  "Standard"
                ],
                "type": "string"
              },
              "name": {
                "description": "Name: Hostname.",
                "type": "string"
              },
              "sslState": {
                "description": "SslState: SSL type.",
                "enum": [
                  "Disabled",
                  "IpBasedEnabled",
                  "SniEnabled"
                ],
                "type": "string"
              },
              "thumbprint": {
                "description": "Thumbprint: SSL certificate thumbprint.",
                "type": "string"
              },
              "toUpdate": {
                "description": "ToUpdate: Set to <code>true</code> to update existing hostname.",
                "type": "boolean"
              },
              "virtualIP": {
                "description": "VirtualIP: Virtual IP address assigned to the hostname if IP based SSL is enabled.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "hostNamesDisabled": {
          "description": "HostNamesDisabled: <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>.\nIf <code>true</code>, the app is only accessible via API management process.",
          "type": "boolean"
        },
        "hostingEnvironmentProfile": {
          "description": "HostingEnvironmentProfile: App Service Environment to use for the app.",
          "properties": {
            "reference": {
              "description": "Reference: Resource ID of the App Service Environment.",
              "properties": {
                "armId": {
                  "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                  "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                  "type": "string"
                },
                "group": {
                  "description": "Group is the Kubernetes group of the resource.",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind is the Kubernetes kind of the resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the Kubernetes name of the resource.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "httpsOnly": {
          "description": "HttpsOnly: HttpsOnly: configures a web site to accept only https requests. Issues redirect for\nhttp requests",
          "type": "boolean"
        },
        "hyperV": {
          "description": "HyperV: Hyper-V sandbox.",
          "type": "boolean"
        },
        "identity": {
          "description": "Identity: Managed service identity.",
          "properties": {
            "type": {
              "description": "Type: Type of managed service identity.",
              "enum": [
                "None",
                "SystemAssigned",
                "SystemAssigned, UserAssigned",
                "UserAssigned"
              ],
              "type": "string"
            },
            "userAssignedIdentities": {
              "description": "UserAssignedIdentities: The list of user assigned identities associated with the resource. The user identity dictionary\nkey references will be ARM resource ids in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}",
              "items": {
                "description": "Information about the user assigned identity for the resource",
                "properties": {
                  "reference": {
                    "description": "ResourceReference represents a resource reference, either to a Kubernetes resource or directly to an Azure resource via ARMID",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "isXenon": {
          "description": "IsXenon: Obsolete: Hyper-V sandbox.",
          "type": "boolean"
        },
        "keyVaultReferenceIdentity": {
          "description": "KeyVaultReferenceIdentity: Identity to use for Key Vault Reference authentication.",
          "type": "string"
        },
        "kind": {
          "description": "Kind: Kind of resource.",
          "type": "string"
        },
        "location": {
          "description": "Location: Resource Location.",
          "type": "string"
        },
        "operatorSpec": {
          "description": "OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not\npassed directly to Azure",
          "properties": {
            "configMapExpressions": {
              "description": "ConfigMapExpressions: configures where to place operator written dynamic ConfigMaps (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "secretExpressions": {
              "description": "SecretExpressions: configures where to place operator written dynamic secrets (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "owner": {
          "description": "Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also\ncontrols the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a\nreference to a resources.azure.com/ResourceGroup resource",
          "properties": {
            "armId": {
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "name": {
              "description": "This is the name of the Kubernetes resource to reference.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty\nstring.",
          "type": "string"
        },
        "redundancyMode": {
          "description": "RedundancyMode: Site redundancy mode",
          "enum": [
            "ActiveActive",
            "Failover",
            "GeoRedundant",
            "Manual",
            "None"
          ],
          "type": "string"
        },
        "reserved": {
          "description": "Reserved: <code>true</code> if reserved; otherwise, <code>false</code>.",
          "type": "boolean"
        },
        "scmSiteAlsoStopped": {
          "description": "ScmSiteAlsoStopped: <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>.\nThe default is <code>false</code>.",
          "type": "boolean"
        },
        "serverFarmReference": {
          "description": "ServerFarmReference: Resource ID of the associated App Service plan, formatted as:\n\"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}\".",
          "properties": {
            "armId": {
              "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "group": {
              "description": "Group is the Kubernetes group of the resource.",
              "type": "string"
            },
            "kind": {
              "description": "Kind is the Kubernetes kind of the resource.",
              "type": "string"
            },
            "name": {
              "description": "Name is the Kubernetes name of the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "siteConfig": {
          "description": "SiteConfig: Configuration of the app.",
          "properties": {
            "acrUseManagedIdentityCreds": {
              "description": "AcrUseManagedIdentityCreds: Flag to use Managed Identity Creds for ACR pull",
              "type": "boolean"
            },
            "acrUserManagedIdentityID": {
              "description": "AcrUserManagedIdentityID: If using user managed identity, the user managed identity ClientId",
              "type": "string"
            },
            "alwaysOn": {
              "description": "AlwaysOn: <code>true</code> if Always On is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "apiDefinition": {
              "description": "ApiDefinition: Information about the formal API definition for the app.",
              "properties": {
                "url": {
                  "description": "Url: The URL of the API definition.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "apiManagementConfig": {
              "description": "ApiManagementConfig: Azure API management settings linked to the app.",
              "properties": {
                "reference": {
                  "description": "Reference: APIM-Api Identifier.",
                  "properties": {
                    "armId": {
                      "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                      "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                      "type": "string"
                    },
                    "group": {
                      "description": "Group is the Kubernetes group of the resource.",
                      "type": "string"
                    },
                    "kind": {
                      "description": "Kind is the Kubernetes kind of the resource.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the Kubernetes name of the resource.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "appCommandLine": {
              "description": "AppCommandLine: App command line to launch.",
              "type": "string"
            },
            "appSettings": {
              "description": "AppSettings: Application settings.",
              "items": {
                "description": "Name value pair.",
                "properties": {
                  "name": {
                    "description": "Name: Pair name.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value: Pair value.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "autoHealEnabled": {
              "description": "AutoHealEnabled: <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "autoHealRules": {
              "description": "AutoHealRules: Auto Heal rules.",
              "properties": {
                "actions": {
                  "description": "Actions: Actions to be executed when a rule is triggered.",
                  "properties": {
                    "actionType": {
                      "description": "ActionType: Predefined action to be taken.",
                      "enum": [
                        "CustomAction",
                        "LogEvent",
                        "Recycle"
                      ],
                      "type": "string"
                    },
                    "customAction": {
                      "description": "CustomAction: Custom action to be taken.",
                      "properties": {
                        "exe": {
                          "description": "Exe: Executable to be run.",
                          "type": "string"
                        },
                        "parameters": {
                          "description": "Parameters: Parameters for the executable.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "minProcessExecutionTime": {
                      "description": "MinProcessExecutionTime: Minimum time the process must execute\nbefore taking the action",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "triggers": {
                  "description": "Triggers: Conditions that describe when to execute the auto-heal actions.",
                  "properties": {
                    "privateBytesInKB": {
                      "description": "PrivateBytesInKB: A rule based on private bytes.",
                      "type": "integer"
                    },
                    "requests": {
                      "description": "Requests: A rule based on total requests.",
                      "properties": {
                        "count": {
                          "description": "Count: Request Count.",
                          "type": "integer"
                        },
                        "timeInterval": {
                          "description": "TimeInterval: Time interval.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "slowRequests": {
                      "description": "SlowRequests: A rule based on request execution time.",
                      "properties": {
                        "count": {
                          "description": "Count: Request Count.",
                          "type": "integer"
                        },
                        "path": {
                          "description": "Path: Request Path.",
                          "type": "string"
                        },
                        "timeInterval": {
                          "description": "TimeInterval: Time interval.",
                          "type": "string"
                        },
                        "timeTaken": {
                          "description": "TimeTaken: Time taken.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "slowRequestsWithPath": {
                      "description": "SlowRequestsWithPath: A rule based on multiple Slow Requests Rule with path",
                      "items": {
                        "description": "Trigger based on request execution time.",
                        "properties": {
                          "count": {
                            "description": "Count: Request Count.",
                            "type": "integer"
                          },
                          "path": {
                            "description": "Path: Request Path.",
                            "type": "string"
                          },
                          "timeInterval": {
                            "description": "TimeInterval: Time interval.",
                            "type": "string"
                          },
                          "timeTaken": {
                            "description": "TimeTaken: Time taken.",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "statusCodes": {
                      "description": "StatusCodes: A rule based on status codes.",
                      "items": {
                        "description": "Trigger based on status code.",
                        "properties": {
                          "count": {
                            "description": "Count: Request Count.",
                            "type": "integer"
                          },
                          "path": {
                            "description": "Path: Request Path",
                            "type": "string"
                          },
                          "status": {
                            "description": "Status: HTTP status code.",
                            "type": "integer"
                          },
                          "subStatus": {
                            "description": "SubStatus: Request Sub Status.",
                            "type": "integer"
                          },
                          "timeInterval": {
                            "description": "TimeInterval: Time interval.",
                            "type": "string"
                          },
                          "win32Status": {
                            "description": "Win32Status: Win32 error code.",
                            "type": "integer"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "statusCodesRange": {
                      "description": "StatusCodesRange: A rule based on status codes ranges.",
                      "items": {
                        "description": "Trigger based on range of status codes.",
                        "properties": {
                          "count": {
                            "description": "Count: Request Count.",
                            "type": "integer"
                          },
                          "path": {
                            "type": "string"
                          },
                          "statusCodes": {
                            "description": "StatusCodes: HTTP status code.",
                            "type": "string"
                          },
                          "timeInterval": {
                            "description": "TimeInterval: Time interval.",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "autoSwapSlotName": {
              "description": "AutoSwapSlotName: Auto-swap slot name.",
              "type": "string"
            },
            "azureStorageAccounts": {
              "additionalProperties": {
                "description": "Azure Files or Blob Storage access information value for dictionary storage.",
                "properties": {
                  "accessKey": {
                    "description": "AccessKey: Access key for the storage account.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes secret being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes secret being referenced.\nThe secret must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "accountName": {
                    "description": "AccountName: Name of the storage account.",
                    "type": "string"
                  },
                  "mountPath": {
                    "description": "MountPath: Path to mount the storage within the site's runtime environment.",
                    "type": "string"
                  },
                  "shareName": {
                    "description": "ShareName: Name of the file share (container name, for Blob storage).",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type: Type of storage.",
                    "enum": [
                      "AzureBlob",
                      "AzureFiles"
                    ],
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "description": "AzureStorageAccounts: List of Azure Storage Accounts.",
              "type": "object"
            },
            "connectionStrings": {
              "description": "ConnectionStrings: Connection strings.",
              "items": {
                "description": "Database connection string information.",
                "properties": {
                  "connectionString": {
                    "description": "ConnectionString: Connection string value.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name: Name of connection string.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type: Type of database.",
                    "enum": [
                      "ApiHub",
                      "Custom",
                      "DocDb",
                      "EventHub",
                      "MySql",
                      "NotificationHub",
                      "PostgreSQL",
                      "RedisCache",
                      "SQLAzure",
                      "SQLServer",
                      "ServiceBus"
                    ],
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "cors": {
              "description": "Cors: Cross-Origin Resource Sharing (CORS) settings.",
              "properties": {
                "allowedOrigins": {
                  "description": "AllowedOrigins: Gets or sets the list of origins that should be allowed to make cross-origin\ncalls (for example: http://example.com:12345). Use \"*\" to allow all.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "supportCredentials": {
                  "description": "SupportCredentials: Gets or sets whether CORS requests with credentials are allowed. See\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials\nfor more details.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "defaultDocuments": {
              "description": "DefaultDocuments: Default documents.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "detailedErrorLoggingEnabled": {
              "description": "DetailedErrorLoggingEnabled: <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "documentRoot": {
              "description": "DocumentRoot: Document root.",
              "type": "string"
            },
            "experiments": {
              "description": "Experiments: This is work around for polymorphic types.",
              "properties": {
                "rampUpRules": {
                  "description": "RampUpRules: List of ramp-up rules.",
                  "items": {
                    "description": "Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change\nrouting % based on performance.",
                    "properties": {
                      "actionHostName": {
                        "description": "ActionHostName: Hostname of a slot to which the traffic will be redirected if decided to. E.g.\nmyapp-stage.azurewebsites.net.",
                        "type": "string"
                      },
                      "changeDecisionCallbackUrl": {
                        "description": "ChangeDecisionCallbackUrl: Custom decision algorithm can be provided in TiPCallback site extension which URL can be\nspecified.",
                        "type": "string"
                      },
                      "changeIntervalInMinutes": {
                        "description": "ChangeIntervalInMinutes: Specifies interval in minutes to reevaluate ReroutePercentage.",
                        "type": "integer"
                      },
                      "changeStep": {
                        "description": "ChangeStep: In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches\n\\n<code>MinReroutePercentage</code> or\n<code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in\n<code>ChangeIntervalInMinutes</code>.\\nCustom decision algorithm\ncan be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>.",
                        "type": "number"
                      },
                      "maxReroutePercentage": {
                        "description": "MaxReroutePercentage: Specifies upper boundary below which ReroutePercentage will stay.",
                        "type": "number"
                      },
                      "minReroutePercentage": {
                        "description": "MinReroutePercentage: Specifies lower boundary above which ReroutePercentage will stay.",
                        "type": "number"
                      },
                      "name": {
                        "description": "Name: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the\nexperiment.",
                        "type": "string"
                      },
                      "reroutePercentage": {
                        "description": "ReroutePercentage: Percentage of the traffic which will be redirected to <code>ActionHostName</code>.",
                        "type": "number"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "ftpsState": {
              "description": "FtpsState: State of FTP / FTPS service",
              "enum": [
                "AllAllowed",
                "Disabled",
                "FtpsOnly"
              ],
              "type": "string"
            },
            "functionAppScaleLimit": {
              "description": "FunctionAppScaleLimit: Maximum number of workers that a site can scale out to.\nThis setting only applies to the Consumption and Elastic Premium Plans",
              "minimum": 0,
              "type": "integer"
            },
            "functionsRuntimeScaleMonitoringEnabled": {
              "description": "FunctionsRuntimeScaleMonitoringEnabled: Gets or sets a value indicating whether functions runtime scale monitoring is\nenabled. When enabled,\nthe ScaleController will not monitor event sources directly, but will instead call to the\nruntime to get scale status.",
              "type": "boolean"
            },
            "handlerMappings": {
              "description": "HandlerMappings: Handler mappings.",
              "items": {
                "description": "The IIS handler mappings used to define which handler processes HTTP requests with certain extension.\nFor example, it\nis used to configure php-cgi.exe process to handle all HTTP requests with *.php extension.",
                "properties": {
                  "arguments": {
                    "description": "Arguments: Command-line arguments to be passed to the script processor.",
                    "type": "string"
                  },
                  "extension": {
                    "description": "Extension: Requests with this extension will be handled using the specified FastCGI application.",
                    "type": "string"
                  },
                  "scriptProcessor": {
                    "description": "ScriptProcessor: The absolute path to the FastCGI application.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "healthCheckPath": {
              "description": "HealthCheckPath: Health check path",
              "type": "string"
            },
            "http20Enabled": {
              "description": "Http20Enabled: Http20Enabled: configures a web site to allow clients to connect over http2.0",
              "type": "boolean"
            },
            "httpLoggingEnabled": {
              "description": "HttpLoggingEnabled: <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "ipSecurityRestrictions": {
              "description": "IpSecurityRestrictions: IP security restrictions for main.",
              "items": {
                "description": "IP security restriction on an app.",
                "properties": {
                  "action": {
                    "description": "Action: Allow or Deny access for this IP range.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: IP restriction rule description.",
                    "type": "string"
                  },
                  "headers": {
                    "additionalProperties": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "description": "Headers: IP restriction rule headers.\nX-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), all hosts(or lack of) are allowed.\n- A value is compared using ordinal-ignore-case (excluding port number).\n- Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain\nfoo.contoso.com\nbut not the root domain contoso.com or multi-level foo.bar.contoso.com\n- Unicode host names are allowed but are converted to Punycode for matching.\nX-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed.\n- If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property.\nX-Azure-FDID and X-FD-HealthProbe.\nThe matching logic is exact match.",
                    "type": "object"
                  },
                  "ipAddress": {
                    "description": "IpAddress: IP address the security restriction is valid for.\nIt can be in form of pure ipv4 address (required SubnetMask property) or\nCIDR notation such as ipv4/mask (leading bit match). For CIDR,\nSubnetMask property must not be specified.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name: IP restriction rule name.",
                    "type": "string"
                  },
                  "priority": {
                    "description": "Priority: Priority of IP restriction rule.",
                    "type": "integer"
                  },
                  "subnetMask": {
                    "description": "SubnetMask: Subnet mask for the range of IP addresses the restriction is valid for.",
                    "type": "string"
                  },
                  "subnetTrafficTag": {
                    "description": "SubnetTrafficTag: (internal) Subnet traffic tag",
                    "type": "integer"
                  },
                  "tag": {
                    "description": "Tag: Defines what this IP filter will be used for. This is to support IP filtering on proxies.",
                    "enum": [
                      "Default",
                      "ServiceTag",
                      "XffProxy"
                    ],
                    "type": "string"
                  },
                  "vnetSubnetResourceReference": {
                    "description": "VnetSubnetResourceReference: Virtual network resource id",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "vnetTrafficTag": {
                    "description": "VnetTrafficTag: (internal) Vnet traffic tag",
                    "type": "integer"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "javaContainer": {
              "description": "JavaContainer: Java container.",
              "type": "string"
            },
            "javaContainerVersion": {
              "description": "JavaContainerVersion: Java container version.",
              "type": "string"
            },
            "javaVersion": {
              "description": "JavaVersion: Java version.",
              "type": "string"
            },
            "keyVaultReferenceIdentity": {
              "description": "KeyVaultReferenceIdentity: Identity to use for Key Vault Reference authentication.",
              "type": "string"
            },
            "limits": {
              "description": "Limits: Site limits.",
              "properties": {
                "maxDiskSizeInMb": {
                  "description": "MaxDiskSizeInMb: Maximum allowed disk size usage in MB.",
                  "type": "integer"
                },
                "maxMemoryInMb": {
                  "description": "MaxMemoryInMb: Maximum allowed memory usage in MB.",
                  "type": "integer"
                },
                "maxPercentageCpu": {
                  "description": "MaxPercentageCpu: Maximum allowed CPU usage percentage.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "linuxFxVersion": {
              "description": "LinuxFxVersion: Linux App Framework and version",
              "type": "string"
            },
            "loadBalancing": {
              "description": "LoadBalancing: Site load balancing.",
              "enum": [
                "LeastRequests",
                "LeastResponseTime",
                "PerSiteRoundRobin",
                "RequestHash",
                "WeightedRoundRobin",
                "WeightedTotalTraffic"
              ],
              "type": "string"
            },
            "localMySqlEnabled": {
              "description": "LocalMySqlEnabled: <code>true</code> to enable local MySQL; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "logsDirectorySizeLimit": {
              "description": "LogsDirectorySizeLimit: HTTP logs directory size limit.",
              "type": "integer"
            },
            "managedPipelineMode": {
              "description": "ManagedPipelineMode: Managed pipeline mode.",
              "enum": [
                "Classic",
                "Integrated"
              ],
              "type": "string"
            },
            "managedServiceIdentityId": {
              "description": "ManagedServiceIdentityId: Managed Service Identity Id",
              "type": "integer"
            },
            "minTlsVersion": {
              "description": "MinTlsVersion: MinTlsVersion: configures the minimum version of TLS required for SSL requests",
              "enum": [
                "1.0",
                "1.1",
                "1.2"
              ],
              "type": "string"
            },
            "minimumElasticInstanceCount": {
              "description": "MinimumElasticInstanceCount: Number of minimum instance count for a site\nThis setting only applies to the Elastic Plans",
              "maximum": 20,
              "minimum": 0,
              "type": "integer"
            },
            "netFrameworkVersion": {
              "description": "NetFrameworkVersion: .NET Framework version.",
              "type": "string"
            },
            "nodeVersion": {
              "description": "NodeVersion: Version of Node.js.",
              "type": "string"
            },
            "numberOfWorkers": {
              "description": "NumberOfWorkers: Number of workers.",
              "type": "integer"
            },
            "phpVersion": {
              "description": "PhpVersion: Version of PHP.",
              "type": "string"
            },
            "powerShellVersion": {
              "description": "PowerShellVersion: Version of PowerShell.",
              "type": "string"
            },
            "preWarmedInstanceCount": {
              "description": "PreWarmedInstanceCount: Number of preWarmed instances.\nThis setting only applies to the Consumption and Elastic Plans",
              "maximum": 10,
              "minimum": 0,
              "type": "integer"
            },
            "publicNetworkAccess": {
              "description": "PublicNetworkAccess: Property to allow or block all public traffic.",
              "type": "string"
            },
            "publishingUsername": {
              "description": "PublishingUsername: Publishing user name.",
              "type": "string"
            },
            "push": {
              "description": "Push: Push endpoint settings.",
              "properties": {
                "dynamicTagsJson": {
                  "description": "DynamicTagsJson: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in\nthe push registration endpoint.",
                  "type": "string"
                },
                "isPushEnabled": {
                  "description": "IsPushEnabled: Gets or sets a flag indicating whether the Push endpoint is enabled.",
                  "type": "boolean"
                },
                "kind": {
                  "description": "Kind: Kind of resource.",
                  "type": "string"
                },
                "tagWhitelistJson": {
                  "description": "TagWhitelistJson: Gets or sets a JSON string containing a list of tags that are in the allowed list for use by the push\nregistration endpoint.",
                  "type": "string"
                },
                "tagsRequiringAuth": {
                  "description": "TagsRequiringAuth: Gets or sets a JSON string containing a list of tags that require user authentication to be used in\nthe push registration endpoint.\nTags can consist of alphanumeric characters and the following:\n'_', '@', '#', '.', ':', '-'.\nValidation should be performed at the PushRequestHandler.",
                  "type": "string"
                }
              },
              "required": [
                "isPushEnabled"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "pythonVersion": {
              "description": "PythonVersion: Version of Python.",
              "type": "string"
            },
            "remoteDebuggingEnabled": {
              "description": "RemoteDebuggingEnabled: <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "remoteDebuggingVersion": {
              "description": "RemoteDebuggingVersion: Remote debugging version.",
              "type": "string"
            },
            "requestTracingEnabled": {
              "description": "RequestTracingEnabled: <code>true</code> if request tracing is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "requestTracingExpirationTime": {
              "description": "RequestTracingExpirationTime: Request tracing expiration time.",
              "type": "string"
            },
            "scmIpSecurityRestrictions": {
              "description": "ScmIpSecurityRestrictions: IP security restrictions for scm.",
              "items": {
                "description": "IP security restriction on an app.",
                "properties": {
                  "action": {
                    "description": "Action: Allow or Deny access for this IP range.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: IP restriction rule description.",
                    "type": "string"
                  },
                  "headers": {
                    "additionalProperties": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "description": "Headers: IP restriction rule headers.\nX-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), all hosts(or lack of) are allowed.\n- A value is compared using ordinal-ignore-case (excluding port number).\n- Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain\nfoo.contoso.com\nbut not the root domain contoso.com or multi-level foo.bar.contoso.com\n- Unicode host names are allowed but are converted to Punycode for matching.\nX-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed.\n- If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property.\nX-Azure-FDID and X-FD-HealthProbe.\nThe matching logic is exact match.",
                    "type": "object"
                  },
                  "ipAddress": {
                    "description": "IpAddress: IP address the security restriction is valid for.\nIt can be in form of pure ipv4 address (required SubnetMask property) or\nCIDR notation such as ipv4/mask (leading bit match). For CIDR,\nSubnetMask property must not be specified.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name: IP restriction rule name.",
                    "type": "string"
                  },
                  "priority": {
                    "description": "Priority: Priority of IP restriction rule.",
                    "type": "integer"
                  },
                  "subnetMask": {
                    "description": "SubnetMask: Subnet mask for the range of IP addresses the restriction is valid for.",
                    "type": "string"
                  },
                  "subnetTrafficTag": {
                    "description": "SubnetTrafficTag: (internal) Subnet traffic tag",
                    "type": "integer"
                  },
                  "tag": {
                    "description": "Tag: Defines what this IP filter will be used for. This is to support IP filtering on proxies.",
                    "enum": [
                      "Default",
                      "ServiceTag",
                      "XffProxy"
                    ],
                    "type": "string"
                  },
                  "vnetSubnetResourceReference": {
                    "description": "VnetSubnetResourceReference: Virtual network resource id",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "vnetTrafficTag": {
                    "description": "VnetTrafficTag: (internal) Vnet traffic tag",
                    "type": "integer"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "scmIpSecurityRestrictionsUseMain": {
              "description": "ScmIpSecurityRestrictionsUseMain: IP security restrictions for scm to use main.",
              "type": "boolean"
            },
            "scmMinTlsVersion": {
              "description": "ScmMinTlsVersion: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site",
              "enum": [
                "1.0",
                "1.1",
                "1.2"
              ],
              "type": "string"
            },
            "scmType": {
              "description": "ScmType: SCM type.",
              "enum": [
                "BitbucketGit",
                "BitbucketHg",
                "CodePlexGit",
                "CodePlexHg",
                "Dropbox",
                "ExternalGit",
                "ExternalHg",
                "GitHub",
                "LocalGit",
                "None",
                "OneDrive",
                "Tfs",
                "VSO",
                "VSTSRM"
              ],
              "type": "string"
            },
            "tracingOptions": {
              "description": "TracingOptions: Tracing options.",
              "type": "string"
            },
            "use32BitWorkerProcess": {
              "description": "Use32BitWorkerProcess: <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "virtualApplications": {
              "description": "VirtualApplications: Virtual applications.",
              "items": {
                "description": "Virtual application in an app.",
                "properties": {
                  "physicalPath": {
                    "description": "PhysicalPath: Physical path.",
                    "type": "string"
                  },
                  "preloadEnabled": {
                    "description": "PreloadEnabled: <code>true</code> if preloading is enabled; otherwise, <code>false</code>.",
                    "type": "boolean"
                  },
                  "virtualDirectories": {
                    "description": "VirtualDirectories: Virtual directories for virtual application.",
                    "items": {
                      "description": "Directory for virtual application.",
                      "properties": {
                        "physicalPath": {
                          "description": "PhysicalPath: Physical path.",
                          "type": "string"
                        },
                        "virtualPath": {
                          "description": "VirtualPath: Path to virtual application.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "virtualPath": {
                    "description": "VirtualPath: Virtual path.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "vnetName": {
              "description": "VnetName: Virtual Network name.",
              "type": "string"
            },
            "vnetPrivatePortsCount": {
              "description": "VnetPrivatePortsCount: The number of private ports assigned to this app. These will be assigned dynamically on runtime.",
              "type": "integer"
            },
            "vnetRouteAllEnabled": {
              "description": "VnetRouteAllEnabled: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network\nSecurity Groups and User Defined Routes applied.",
              "type": "boolean"
            },
            "webSocketsEnabled": {
              "description": "WebSocketsEnabled: <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "websiteTimeZone": {
              "description": "WebsiteTimeZone: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App\nService. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database\nvalues https://www.iana.org/time-zones (for a quick reference see\nhttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under\nHKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones",
              "type": "string"
            },
            "windowsFxVersion": {
              "description": "WindowsFxVersion: Xenon App Framework and version",
              "type": "string"
            },
            "xManagedServiceIdentityId": {
              "description": "XManagedServiceIdentityId: Explicit Managed Service Identity Id",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "storageAccountRequired": {
          "description": "StorageAccountRequired: Checks if Customer provided storage account is required",
          "type": "boolean"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "virtualNetworkSubnetReference": {
          "description": "VirtualNetworkSubnetReference: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET\nIntegration.\nThis must be of the form\n/subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}",
          "properties": {
            "armId": {
              "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "group": {
              "description": "Group is the Kubernetes group of the resource.",
              "type": "string"
            },
            "kind": {
              "description": "Kind is the Kubernetes kind of the resource.",
              "type": "string"
            },
            "name": {
              "description": "Name is the Kubernetes name of the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "vnetContentShareEnabled": {
          "description": "VnetContentShareEnabled: To enable accessing content over virtual network",
          "type": "boolean"
        },
        "vnetImagePullEnabled": {
          "description": "VnetImagePullEnabled: To enable pulling image over Virtual Network",
          "type": "boolean"
        },
        "vnetRouteAllEnabled": {
          "description": "VnetRouteAllEnabled: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network\nSecurity Groups and User Defined Routes applied.",
          "type": "boolean"
        }
      },
      "required": [
        "location",
        "owner"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "A web app, a mobile app backend, or an API app.",
      "properties": {
        "availabilityState": {
          "description": "AvailabilityState: Management information availability state for the app.",
          "type": "string"
        },
        "clientAffinityEnabled": {
          "description": "ClientAffinityEnabled: <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity\ncookies, which route client requests in the same session to the same instance. Default is <code>true</code>.",
          "type": "boolean"
        },
        "clientCertEnabled": {
          "description": "ClientCertEnabled: <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise,\n<code>false</code>. Default is <code>false</code>.",
          "type": "boolean"
        },
        "clientCertExclusionPaths": {
          "description": "ClientCertExclusionPaths: client certificate authentication comma-separated exclusion paths",
          "type": "string"
        },
        "clientCertMode": {
          "description": "ClientCertMode: This composes with ClientCertEnabled setting.\n- ClientCertEnabled: false means ClientCert is ignored.\n- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.\n- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.",
          "type": "string"
        },
        "cloningInfo": {
          "description": "CloningInfo: If specified during app creation, the app is cloned from a source app.",
          "properties": {
            "appSettingsOverrides": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "AppSettingsOverrides: Application setting overrides for cloned app. If specified, these settings override the settings\ncloned\nfrom source app. Otherwise, application settings from source app are retained.",
              "type": "object"
            },
            "cloneCustomHostNames": {
              "description": "CloneCustomHostNames: <code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "cloneSourceControl": {
              "description": "CloneSourceControl: <code>true</code> to clone source control from source app; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "configureLoadBalancing": {
              "description": "ConfigureLoadBalancing: <code>true</code> to configure load balancing for source and destination app.",
              "type": "boolean"
            },
            "correlationId": {
              "description": "CorrelationId: Correlation ID of cloning operation. This ID ties multiple cloning operations\ntogether to use the same snapshot.",
              "type": "string"
            },
            "hostingEnvironment": {
              "description": "HostingEnvironment: App Service Environment.",
              "type": "string"
            },
            "overwrite": {
              "description": "Overwrite: <code>true</code> to overwrite destination app; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "sourceWebAppId": {
              "description": "SourceWebAppId: ARM resource ID of the source app. App resource ID is of the form\n/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots\nand\n/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for\nother slots.",
              "type": "string"
            },
            "sourceWebAppLocation": {
              "description": "SourceWebAppLocation: Location of source app ex: West US or North Europe",
              "type": "string"
            },
            "trafficManagerProfileId": {
              "description": "TrafficManagerProfileId: ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource\nID is of the form\n/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.",
              "type": "string"
            },
            "trafficManagerProfileName": {
              "description": "TrafficManagerProfileName: Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile\ndoes not already exist.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "Conditions: The observed state of the resource",
          "items": {
            "description": "Condition defines an extension to status (an observation) of a resource",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "Message is a human readable message indicating details about the transition. This field may be empty.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration is the .metadata.generation that the condition was set based upon. For instance, if\n.metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "Reason for the condition's last transition.\nReasons are upper CamelCase (PascalCase) with no spaces. A reason is always provided, this field will not be empty.",
                "type": "string"
              },
              "severity": {
                "description": "Severity with which to treat failures of this type of condition.\nFor conditions which have positive polarity (Status == True is their normal/healthy state), this will be omitted when Status == True\nFor conditions which have negative polarity (Status == False is their normal/healthy state), this will be omitted when Status == False.\nThis is omitted in all cases when Status == Unknown",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, or Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of condition.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "containerSize": {
          "description": "ContainerSize: Size of the function container.",
          "type": "integer"
        },
        "customDomainVerificationId": {
          "description": "CustomDomainVerificationId: Unique identifier that verifies the custom domains assigned to the app. Customer will add\nthis id to a txt record for verification.",
          "type": "string"
        },
        "dailyMemoryTimeQuota": {
          "description": "DailyMemoryTimeQuota: Maximum allowed daily memory-time quota (applicable on dynamic apps only).",
          "type": "integer"
        },
        "defaultHostName": {
          "description": "DefaultHostName: Default hostname of the app. Read-only.",
          "type": "string"
        },
        "enabled": {
          "description": "Enabled: <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables\nthe app (takes the app offline).",
          "type": "boolean"
        },
        "enabledHostNames": {
          "description": "EnabledHostNames: Enabled hostnames for the app.Hostnames need to be assigned (see HostNames) AND enabled. Otherwise,\nthe app is not served on those hostnames.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extendedLocation": {
          "description": "ExtendedLocation: Extended Location.",
          "properties": {
            "name": {
              "description": "Name: Name of extended location.",
              "type": "string"
            },
            "type": {
              "description": "Type: Type of extended location.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "hostNameSslStates": {
          "description": "HostNameSslStates: Hostname SSL states are used to manage the SSL bindings for app's hostnames.",
          "items": {
            "description": "SSL-enabled hostname.",
            "properties": {
              "hostType": {
                "description": "HostType: Indicates whether the hostname is a standard or repository hostname.",
                "type": "string"
              },
              "name": {
                "description": "Name: Hostname.",
                "type": "string"
              },
              "sslState": {
                "description": "SslState: SSL type.",
                "type": "string"
              },
              "thumbprint": {
                "description": "Thumbprint: SSL certificate thumbprint.",
                "type": "string"
              },
              "toUpdate": {
                "description": "ToUpdate: Set to <code>true</code> to update existing hostname.",
                "type": "boolean"
              },
              "virtualIP": {
                "description": "VirtualIP: Virtual IP address assigned to the hostname if IP based SSL is enabled.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "hostNames": {
          "description": "HostNames: Hostnames associated with the app.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "hostNamesDisabled": {
          "description": "HostNamesDisabled: <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>.\nIf <code>true</code>, the app is only accessible via API management process.",
          "type": "boolean"
        },
        "hostingEnvironmentProfile": {
          "description": "HostingEnvironmentProfile: App Service Environment to use for the app.",
          "properties": {
            "id": {
              "description": "Id: Resource ID of the App Service Environment.",
              "type": "string"
            },
            "name": {
              "description": "Name: Name of the App Service Environment.",
              "type": "string"
            },
            "type": {
              "description": "Type: Resource type of the App Service Environment.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "httpsOnly": {
          "description": "HttpsOnly: HttpsOnly: configures a web site to accept only https requests. Issues redirect for\nhttp requests",
          "type": "boolean"
        },
        "hyperV": {
          "description": "HyperV: Hyper-V sandbox.",
          "type": "boolean"
        },
        "id": {
          "description": "Id: Resource Id.",
          "type": "string"
        },
        "identity": {
          "description": "Identity: Managed service identity.",
          "properties": {
            "principalId": {
              "description": "PrincipalId: Principal Id of managed service identity.",
              "type": "string"
            },
            "tenantId": {
              "description": "TenantId: Tenant of managed service identity.",
              "type": "string"
            },
            "type": {
              "description": "Type: Type of managed service identity.",
              "type": "string"
            },
            "userAssignedIdentities": {
              "additionalProperties": {
                "description": "User Assigned identity.",
                "properties": {
                  "clientId": {
                    "description": "ClientId: Client Id of user assigned identity",
                    "type": "string"
                  },
                  "principalId": {
                    "description": "PrincipalId: Principal Id of user assigned identity",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "description": "UserAssignedIdentities: The list of user assigned identities associated with the resource. The user identity dictionary\nkey references will be ARM resource ids in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}",
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "inProgressOperationId": {
          "description": "InProgressOperationId: Specifies an operation id if this site has a pending operation.",
          "type": "string"
        },
        "isDefaultContainer": {
          "description": "IsDefaultContainer: <code>true</code> if the app is a default container; otherwise, <code>false</code>.",
          "type": "boolean"
        },
        "isXenon": {
          "description": "IsXenon: Obsolete: Hyper-V sandbox.",
          "type": "boolean"
        },
        "keyVaultReferenceIdentity": {
          "description": "KeyVaultReferenceIdentity: Identity to use for Key Vault Reference authentication.",
          "type": "string"
        },
        "kind": {
          "description": "Kind: Kind of resource.",
          "type": "string"
        },
        "lastModifiedTimeUtc": {
          "description": "LastModifiedTimeUtc: Last time the app was modified, in UTC. Read-only.",
          "type": "string"
        },
        "location": {
          "description": "Location: Resource Location.",
          "type": "string"
        },
        "maxNumberOfWorkers": {
          "description": "MaxNumberOfWorkers: Maximum number of workers.\nThis only applies to Functions container.",
          "type": "integer"
        },
        "name": {
          "description": "Name: Resource Name.",
          "type": "string"
        },
        "outboundIpAddresses": {
          "description": "OutboundIpAddresses: List of IP addresses that the app uses for outbound connections (e.g. database access). Includes\nVIPs from tenants that site can be hosted with current settings. Read-only.",
          "type": "string"
        },
        "possibleOutboundIpAddresses": {
          "description": "PossibleOutboundIpAddresses: List of IP addresses that the app uses for outbound connections (e.g. database access).\nIncludes VIPs from all tenants except dataComponent. Read-only.",
          "type": "string"
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty\nstring.",
          "type": "string"
        },
        "redundancyMode": {
          "description": "RedundancyMode: Site redundancy mode",
          "type": "string"
        },
        "repositorySiteName": {
          "description": "RepositorySiteName: Name of the repository site.",
          "type": "string"
        },
        "reserved": {
          "description": "Reserved: <code>true</code> if reserved; otherwise, <code>false</code>.",
          "type": "boolean"
        },
        "resourceGroup": {
          "description": "ResourceGroup: Name of the resource group the app belongs to. Read-only.",
          "type": "string"
        },
        "scmSiteAlsoStopped": {
          "description": "ScmSiteAlsoStopped: <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>.\nThe default is <code>false</code>.",
          "type": "boolean"
        },
        "serverFarmId": {
          "description": "ServerFarmId: Resource ID of the associated App Service plan, formatted as:\n\"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}\".",
          "type": "string"
        },
        "siteConfig": {
          "description": "SiteConfig: Configuration of the app.",
          "properties": {
            "acrUseManagedIdentityCreds": {
              "description": "AcrUseManagedIdentityCreds: Flag to use Managed Identity Creds for ACR pull",
              "type": "boolean"
            },
            "acrUserManagedIdentityID": {
              "description": "AcrUserManagedIdentityID: If using user managed identity, the user managed identity ClientId",
              "type": "string"
            },
            "alwaysOn": {
              "description": "AlwaysOn: <code>true</code> if Always On is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "apiDefinition": {
              "description": "ApiDefinition: Information about the formal API definition for the app.",
              "properties": {
                "url": {
                  "description": "Url: The URL of the API definition.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "apiManagementConfig": {
              "description": "ApiManagementConfig: Azure API management settings linked to the app.",
              "properties": {
                "id": {
                  "description": "Id: APIM-Api Identifier.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "appCommandLine": {
              "description": "AppCommandLine: App command line to launch.",
              "type": "string"
            },
            "appSettings": {
              "description": "AppSettings: Application settings.",
              "items": {
                "description": "Name value pair.",
                "properties": {
                  "name": {
                    "description": "Name: Pair name.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value: Pair value.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "autoHealEnabled": {
              "description": "AutoHealEnabled: <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "autoHealRules": {
              "description": "AutoHealRules: Auto Heal rules.",
              "properties": {
                "actions": {
                  "description": "Actions: Actions to be executed when a rule is triggered.",
                  "properties": {
                    "actionType": {
                      "description": "ActionType: Predefined action to be taken.",
                      "type": "string"
                    },
                    "customAction": {
                      "description": "CustomAction: Custom action to be taken.",
                      "properties": {
                        "exe": {
                          "description": "Exe: Executable to be run.",
                          "type": "string"
                        },
                        "parameters": {
                          "description": "Parameters: Parameters for the executable.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "minProcessExecutionTime": {
                      "description": "MinProcessExecutionTime: Minimum time the process must execute\nbefore taking the action",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "triggers": {
                  "description": "Triggers: Conditions that describe when to execute the auto-heal actions.",
                  "properties": {
                    "privateBytesInKB": {
                      "description": "PrivateBytesInKB: A rule based on private bytes.",
                      "type": "integer"
                    },
                    "requests": {
                      "description": "Requests: A rule based on total requests.",
                      "properties": {
                        "count": {
                          "description": "Count: Request Count.",
                          "type": "integer"
                        },
                        "timeInterval": {
                          "description": "TimeInterval: Time interval.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "slowRequests": {
                      "description": "SlowRequests: A rule based on request execution time.",
                      "properties": {
                        "count": {
                          "description": "Count: Request Count.",
                          "type": "integer"
                        },
                        "path": {
                          "description": "Path: Request Path.",
                          "type": "string"
                        },
                        "timeInterval": {
                          "description": "TimeInterval: Time interval.",
                          "type": "string"
                        },
                        "timeTaken": {
                          "description": "TimeTaken: Time taken.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "slowRequestsWithPath": {
                      "description": "SlowRequestsWithPath: A rule based on multiple Slow Requests Rule with path",
                      "items": {
                        "description": "Trigger based on request execution time.",
                        "properties": {
                          "count": {
                            "description": "Count: Request Count.",
                            "type": "integer"
                          },
                          "path": {
                            "description": "Path: Request Path.",
                            "type": "string"
                          },
                          "timeInterval": {
                            "description": "TimeInterval: Time interval.",
                            "type": "string"
                          },
                          "timeTaken": {
                            "description": "TimeTaken: Time taken.",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "statusCodes": {
                      "description": "StatusCodes: A rule based on status codes.",
                      "items": {
                        "description": "Trigger based on status code.",
                        "properties": {
                          "count": {
                            "description": "Count: Request Count.",
                            "type": "integer"
                          },
                          "path": {
                            "description": "Path: Request Path",
                            "type": "string"
                          },
                          "status": {
                            "description": "Status: HTTP status code.",
                            "type": "integer"
                          },
                          "subStatus": {
                            "description": "SubStatus: Request Sub Status.",
                            "type": "integer"
                          },
                          "timeInterval": {
                            "description": "TimeInterval: Time interval.",
                            "type": "string"
                          },
                          "win32Status": {
                            "description": "Win32Status: Win32 error code.",
                            "type": "integer"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "statusCodesRange": {
                      "description": "StatusCodesRange: A rule based on status codes ranges.",
                      "items": {
                        "description": "Trigger based on range of status codes.",
                        "properties": {
                          "count": {
                            "description": "Count: Request Count.",
                            "type": "integer"
                          },
                          "path": {
                            "type": "string"
                          },
                          "statusCodes": {
                            "description": "StatusCodes: HTTP status code.",
                            "type": "string"
                          },
                          "timeInterval": {
                            "description": "TimeInterval: Time interval.",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "autoSwapSlotName": {
              "description": "AutoSwapSlotName: Auto-swap slot name.",
              "type": "string"
            },
            "azureStorageAccounts": {
              "additionalProperties": {
                "description": "Azure Files or Blob Storage access information value for dictionary storage.",
                "properties": {
                  "accountName": {
                    "description": "AccountName: Name of the storage account.",
                    "type": "string"
                  },
                  "mountPath": {
                    "description": "MountPath: Path to mount the storage within the site's runtime environment.",
                    "type": "string"
                  },
                  "shareName": {
                    "description": "ShareName: Name of the file share (container name, for Blob storage).",
                    "type": "string"
                  },
                  "state": {
                    "description": "State: State of the storage account.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type: Type of storage.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "description": "AzureStorageAccounts: List of Azure Storage Accounts.",
              "type": "object"
            },
            "connectionStrings": {
              "description": "ConnectionStrings: Connection strings.",
              "items": {
                "description": "Database connection string information.",
                "properties": {
                  "connectionString": {
                    "description": "ConnectionString: Connection string value.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name: Name of connection string.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type: Type of database.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "cors": {
              "description": "Cors: Cross-Origin Resource Sharing (CORS) settings.",
              "properties": {
                "allowedOrigins": {
                  "description": "AllowedOrigins: Gets or sets the list of origins that should be allowed to make cross-origin\ncalls (for example: http://example.com:12345). Use \"*\" to allow all.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "supportCredentials": {
                  "description": "SupportCredentials: Gets or sets whether CORS requests with credentials are allowed. See\nhttps://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials\nfor more details.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "defaultDocuments": {
              "description": "DefaultDocuments: Default documents.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "detailedErrorLoggingEnabled": {
              "description": "DetailedErrorLoggingEnabled: <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "documentRoot": {
              "description": "DocumentRoot: Document root.",
              "type": "string"
            },
            "experiments": {
              "description": "Experiments: This is work around for polymorphic types.",
              "properties": {
                "rampUpRules": {
                  "description": "RampUpRules: List of ramp-up rules.",
                  "items": {
                    "description": "Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change\nrouting % based on performance.",
                    "properties": {
                      "actionHostName": {
                        "description": "ActionHostName: Hostname of a slot to which the traffic will be redirected if decided to. E.g.\nmyapp-stage.azurewebsites.net.",
                        "type": "string"
                      },
                      "changeDecisionCallbackUrl": {
                        "description": "ChangeDecisionCallbackUrl: Custom decision algorithm can be provided in TiPCallback site extension which URL can be\nspecified.",
                        "type": "string"
                      },
                      "changeIntervalInMinutes": {
                        "description": "ChangeIntervalInMinutes: Specifies interval in minutes to reevaluate ReroutePercentage.",
                        "type": "integer"
                      },
                      "changeStep": {
                        "description": "ChangeStep: In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches\n\\n<code>MinReroutePercentage</code> or\n<code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in\n<code>ChangeIntervalInMinutes</code>.\\nCustom decision algorithm\ncan be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>.",
                        "type": "number"
                      },
                      "maxReroutePercentage": {
                        "description": "MaxReroutePercentage: Specifies upper boundary below which ReroutePercentage will stay.",
                        "type": "number"
                      },
                      "minReroutePercentage": {
                        "description": "MinReroutePercentage: Specifies lower boundary above which ReroutePercentage will stay.",
                        "type": "number"
                      },
                      "name": {
                        "description": "Name: Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the\nexperiment.",
                        "type": "string"
                      },
                      "reroutePercentage": {
                        "description": "ReroutePercentage: Percentage of the traffic which will be redirected to <code>ActionHostName</code>.",
                        "type": "number"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "ftpsState": {
              "description": "FtpsState: State of FTP / FTPS service",
              "type": "string"
            },
            "functionAppScaleLimit": {
              "description": "FunctionAppScaleLimit: Maximum number of workers that a site can scale out to.\nThis setting only applies to the Consumption and Elastic Premium Plans",
              "type": "integer"
            },
            "functionsRuntimeScaleMonitoringEnabled": {
              "description": "FunctionsRuntimeScaleMonitoringEnabled: Gets or sets a value indicating whether functions runtime scale monitoring is\nenabled. When enabled,\nthe ScaleController will not monitor event sources directly, but will instead call to the\nruntime to get scale status.",
              "type": "boolean"
            },
            "handlerMappings": {
              "description": "HandlerMappings: Handler mappings.",
              "items": {
                "description": "The IIS handler mappings used to define which handler processes HTTP requests with certain extension.\nFor example, it\nis used to configure php-cgi.exe process to handle all HTTP requests with *.php extension.",
                "properties": {
                  "arguments": {
                    "description": "Arguments: Command-line arguments to be passed to the script processor.",
                    "type": "string"
                  },
                  "extension": {
                    "description": "Extension: Requests with this extension will be handled using the specified FastCGI application.",
                    "type": "string"
                  },
                  "scriptProcessor": {
                    "description": "ScriptProcessor: The absolute path to the FastCGI application.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "healthCheckPath": {
              "description": "HealthCheckPath: Health check path",
              "type": "string"
            },
            "http20Enabled": {
              "description": "Http20Enabled: Http20Enabled: configures a web site to allow clients to connect over http2.0",
              "type": "boolean"
            },
            "httpLoggingEnabled": {
              "description": "HttpLoggingEnabled: <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "ipSecurityRestrictions": {
              "description": "IpSecurityRestrictions: IP security restrictions for main.",
              "items": {
                "description": "IP security restriction on an app.",
                "properties": {
                  "action": {
                    "description": "Action: Allow or Deny access for this IP range.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: IP restriction rule description.",
                    "type": "string"
                  },
                  "headers": {
                    "additionalProperties": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "description": "Headers: IP restriction rule headers.\nX-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), all hosts(or lack of) are allowed.\n- A value is compared using ordinal-ignore-case (excluding port number).\n- Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain\nfoo.contoso.com\nbut not the root domain contoso.com or multi-level foo.bar.contoso.com\n- Unicode host names are allowed but are converted to Punycode for matching.\nX-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed.\n- If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property.\nX-Azure-FDID and X-FD-HealthProbe.\nThe matching logic is exact match.",
                    "type": "object"
                  },
                  "ipAddress": {
                    "description": "IpAddress: IP address the security restriction is valid for.\nIt can be in form of pure ipv4 address (required SubnetMask property) or\nCIDR notation such as ipv4/mask (leading bit match). For CIDR,\nSubnetMask property must not be specified.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name: IP restriction rule name.",
                    "type": "string"
                  },
                  "priority": {
                    "description": "Priority: Priority of IP restriction rule.",
                    "type": "integer"
                  },
                  "subnetMask": {
                    "description": "SubnetMask: Subnet mask for the range of IP addresses the restriction is valid for.",
                    "type": "string"
                  },
                  "subnetTrafficTag": {
                    "description": "SubnetTrafficTag: (internal) Subnet traffic tag",
                    "type": "integer"
                  },
                  "tag": {
                    "description": "Tag: Defines what this IP filter will be used for. This is to support IP filtering on proxies.",
                    "type": "string"
                  },
                  "vnetSubnetResourceId": {
                    "description": "VnetSubnetResourceId: Virtual network resource id",
                    "type": "string"
                  },
                  "vnetTrafficTag": {
                    "description": "VnetTrafficTag: (internal) Vnet traffic tag",
                    "type": "integer"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "javaContainer": {
              "description": "JavaContainer: Java container.",
              "type": "string"
            },
            "javaContainerVersion": {
              "description": "JavaContainerVersion: Java container version.",
              "type": "string"
            },
            "javaVersion": {
              "description": "JavaVersion: Java version.",
              "type": "string"
            },
            "keyVaultReferenceIdentity": {
              "description": "KeyVaultReferenceIdentity: Identity to use for Key Vault Reference authentication.",
              "type": "string"
            },
            "limits": {
              "description": "Limits: Site limits.",
              "properties": {
                "maxDiskSizeInMb": {
                  "description": "MaxDiskSizeInMb: Maximum allowed disk size usage in MB.",
                  "type": "integer"
                },
                "maxMemoryInMb": {
                  "description": "MaxMemoryInMb: Maximum allowed memory usage in MB.",
                  "type": "integer"
                },
                "maxPercentageCpu": {
                  "description": "MaxPercentageCpu: Maximum allowed CPU usage percentage.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "linuxFxVersion": {
              "description": "LinuxFxVersion: Linux App Framework and version",
              "type": "string"
            },
            "loadBalancing": {
              "description": "LoadBalancing: Site load balancing.",
              "type": "string"
            },
            "localMySqlEnabled": {
              "description": "LocalMySqlEnabled: <code>true</code> to enable local MySQL; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "logsDirectorySizeLimit": {
              "description": "LogsDirectorySizeLimit: HTTP logs directory size limit.",
              "type": "integer"
            },
            "machineKey": {
              "description": "MachineKey: Site MachineKey.",
              "properties": {
                "decryption": {
                  "description": "Decryption: Algorithm used for decryption.",
                  "type": "string"
                },
                "decryptionKey": {
                  "description": "DecryptionKey: Decryption key.",
                  "type": "string"
                },
                "validation": {
                  "description": "Validation: MachineKey validation.",
                  "type": "string"
                },
                "validationKey": {
                  "description": "ValidationKey: Validation key.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "managedPipelineMode": {
              "description": "ManagedPipelineMode: Managed pipeline mode.",
              "type": "string"
            },
            "managedServiceIdentityId": {
              "description": "ManagedServiceIdentityId: Managed Service Identity Id",
              "type": "integer"
            },
            "minTlsVersion": {
              "description": "MinTlsVersion: MinTlsVersion: configures the minimum version of TLS required for SSL requests",
              "type": "string"
            },
            "minimumElasticInstanceCount": {
              "description": "MinimumElasticInstanceCount: Number of minimum instance count for a site\nThis setting only applies to the Elastic Plans",
              "type": "integer"
            },
            "netFrameworkVersion": {
              "description": "NetFrameworkVersion: .NET Framework version.",
              "type": "string"
            },
            "nodeVersion": {
              "description": "NodeVersion: Version of Node.js.",
              "type": "string"
            },
            "numberOfWorkers": {
              "description": "NumberOfWorkers: Number of workers.",
              "type": "integer"
            },
            "phpVersion": {
              "description": "PhpVersion: Version of PHP.",
              "type": "string"
            },
            "powerShellVersion": {
              "description": "PowerShellVersion: Version of PowerShell.",
              "type": "string"
            },
            "preWarmedInstanceCount": {
              "description": "PreWarmedInstanceCount: Number of preWarmed instances.\nThis setting only applies to the Consumption and Elastic Plans",
              "type": "integer"
            },
            "publicNetworkAccess": {
              "description": "PublicNetworkAccess: Property to allow or block all public traffic.",
              "type": "string"
            },
            "publishingUsername": {
              "description": "PublishingUsername: Publishing user name.",
              "type": "string"
            },
            "push": {
              "description": "Push: Push endpoint settings.",
              "properties": {
                "dynamicTagsJson": {
                  "description": "DynamicTagsJson: Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in\nthe push registration endpoint.",
                  "type": "string"
                },
                "id": {
                  "description": "Id: Resource Id.",
                  "type": "string"
                },
                "isPushEnabled": {
                  "description": "IsPushEnabled: Gets or sets a flag indicating whether the Push endpoint is enabled.",
                  "type": "boolean"
                },
                "kind": {
                  "description": "Kind: Kind of resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name: Resource Name.",
                  "type": "string"
                },
                "tagWhitelistJson": {
                  "description": "TagWhitelistJson: Gets or sets a JSON string containing a list of tags that are in the allowed list for use by the push\nregistration endpoint.",
                  "type": "string"
                },
                "tagsRequiringAuth": {
                  "description": "TagsRequiringAuth: Gets or sets a JSON string containing a list of tags that require user authentication to be used in\nthe push registration endpoint.\nTags can consist of alphanumeric characters and the following:\n'_', '@', '#', '.', ':', '-'.\nValidation should be performed at the PushRequestHandler.",
                  "type": "string"
                },
                "type": {
                  "description": "Type: Resource type.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "pythonVersion": {
              "description": "PythonVersion: Version of Python.",
              "type": "string"
            },
            "remoteDebuggingEnabled": {
              "description": "RemoteDebuggingEnabled: <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "remoteDebuggingVersion": {
              "description": "RemoteDebuggingVersion: Remote debugging version.",
              "type": "string"
            },
            "requestTracingEnabled": {
              "description": "RequestTracingEnabled: <code>true</code> if request tracing is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "requestTracingExpirationTime": {
              "description": "RequestTracingExpirationTime: Request tracing expiration time.",
              "type": "string"
            },
            "scmIpSecurityRestrictions": {
              "description": "ScmIpSecurityRestrictions: IP security restrictions for scm.",
              "items": {
                "description": "IP security restriction on an app.",
                "properties": {
                  "action": {
                    "description": "Action: Allow or Deny access for this IP range.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: IP restriction rule description.",
                    "type": "string"
                  },
                  "headers": {
                    "additionalProperties": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "description": "Headers: IP restriction rule headers.\nX-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), all hosts(or lack of) are allowed.\n- A value is compared using ordinal-ignore-case (excluding port number).\n- Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain\nfoo.contoso.com\nbut not the root domain contoso.com or multi-level foo.bar.contoso.com\n- Unicode host names are allowed but are converted to Punycode for matching.\nX-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).\nThe matching logic is ..\n- If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed.\n- If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property.\nX-Azure-FDID and X-FD-HealthProbe.\nThe matching logic is exact match.",
                    "type": "object"
                  },
                  "ipAddress": {
                    "description": "IpAddress: IP address the security restriction is valid for.\nIt can be in form of pure ipv4 address (required SubnetMask property) or\nCIDR notation such as ipv4/mask (leading bit match). For CIDR,\nSubnetMask property must not be specified.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name: IP restriction rule name.",
                    "type": "string"
                  },
                  "priority": {
                    "description": "Priority: Priority of IP restriction rule.",
                    "type": "integer"
                  },
                  "subnetMask": {
                    "description": "SubnetMask: Subnet mask for the range of IP addresses the restriction is valid for.",
                    "type": "string"
                  },
                  "subnetTrafficTag": {
                    "description": "SubnetTrafficTag: (internal) Subnet traffic tag",
                    "type": "integer"
                  },
                  "tag": {
                    "description": "Tag: Defines what this IP filter will be used for. This is to support IP filtering on proxies.",
                    "type": "string"
                  },
                  "vnetSubnetResourceId": {
                    "description": "VnetSubnetResourceId: Virtual network resource id",
                    "type": "string"
                  },
                  "vnetTrafficTag": {
                    "description": "VnetTrafficTag: (internal) Vnet traffic tag",
                    "type": "integer"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "scmIpSecurityRestrictionsUseMain": {
              "description": "ScmIpSecurityRestrictionsUseMain: IP security restrictions for scm to use main.",
              "type": "boolean"
            },
            "scmMinTlsVersion": {
              "description": "ScmMinTlsVersion: ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site",
              "type": "string"
            },
            "scmType": {
              "description": "ScmType: SCM type.",
              "type": "string"
            },
            "tracingOptions": {
              "description": "TracingOptions: Tracing options.",
              "type": "string"
            },
            "use32BitWorkerProcess": {
              "description": "Use32BitWorkerProcess: <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "virtualApplications": {
              "description": "VirtualApplications: Virtual applications.",
              "items": {
                "description": "Virtual application in an app.",
                "properties": {
                  "physicalPath": {
                    "description": "PhysicalPath: Physical path.",
                    "type": "string"
                  },
                  "preloadEnabled": {
                    "description": "PreloadEnabled: <code>true</code> if preloading is enabled; otherwise, <code>false</code>.",
                    "type": "boolean"
                  },
                  "virtualDirectories": {
                    "description": "VirtualDirectories: Virtual directories for virtual application.",
                    "items": {
                      "description": "Directory for virtual application.",
                      "properties": {
                        "physicalPath": {
                          "description": "PhysicalPath: Physical path.",
                          "type": "string"
                        },
                        "virtualPath": {
                          "description": "VirtualPath: Path to virtual application.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "virtualPath": {
                    "description": "VirtualPath: Virtual path.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "vnetName": {
              "description": "VnetName: Virtual Network name.",
              "type": "string"
            },
            "vnetPrivatePortsCount": {
              "description": "VnetPrivatePortsCount: The number of private ports assigned to this app. These will be assigned dynamically on runtime.",
              "type": "integer"
            },
            "vnetRouteAllEnabled": {
              "description": "VnetRouteAllEnabled: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network\nSecurity Groups and User Defined Routes applied.",
              "type": "boolean"
            },
            "webSocketsEnabled": {
              "description": "WebSocketsEnabled: <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>.",
              "type": "boolean"
            },
            "websiteTimeZone": {
              "description": "WebsiteTimeZone: Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App\nService. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database\nvalues https://www.iana.org/time-zones (for a quick reference see\nhttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under\nHKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones",
              "type": "string"
            },
            "windowsFxVersion": {
              "description": "WindowsFxVersion: Xenon App Framework and version",
              "type": "string"
            },
            "xManagedServiceIdentityId": {
              "description": "XManagedServiceIdentityId: Explicit Managed Service Identity Id",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "slotSwapStatus": {
          "description": "SlotSwapStatus: Status of the last deployment slot swap operation.",
          "properties": {
            "destinationSlotName": {
              "description": "DestinationSlotName: The destination slot of the last swap operation.",
              "type": "string"
            },
            "sourceSlotName": {
              "description": "SourceSlotName: The source slot of the last swap operation.",
              "type": "string"
            },
            "timestampUtc": {
              "description": "TimestampUtc: The time the last successful slot swap completed.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "state": {
          "description": "State: Current state of the app.",
          "type": "string"
        },
        "storageAccountRequired": {
          "description": "StorageAccountRequired: Checks if Customer provided storage account is required",
          "type": "boolean"
        },
        "suspendedTill": {
          "description": "SuspendedTill: App suspended till in case memory-time quota is exceeded.",
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "targetSwapSlot": {
          "description": "TargetSwapSlot: Specifies which deployment slot this app will swap into. Read-only.",
          "type": "string"
        },
        "trafficManagerHostNames": {
          "description": "TrafficManagerHostNames: Azure Traffic Manager hostnames associated with the app. Read-only.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "type": {
          "description": "Type: Resource type.",
          "type": "string"
        },
        "usageState": {
          "description": "UsageState: State indicating whether the app has exceeded its quota usage. Read-only.",
          "type": "string"
        },
        "virtualNetworkSubnetId": {
          "description": "VirtualNetworkSubnetId: Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET\nIntegration.\nThis must be of the form\n/subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}",
          "type": "string"
        },
        "vnetContentShareEnabled": {
          "description": "VnetContentShareEnabled: To enable accessing content over virtual network",
          "type": "boolean"
        },
        "vnetImagePullEnabled": {
          "description": "VnetImagePullEnabled: To enable pulling image over Virtual Network",
          "type": "boolean"
        },
        "vnetRouteAllEnabled": {
          "description": "VnetRouteAllEnabled: Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network\nSecurity Groups and User Defined Routes applied.",
          "type": "boolean"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
