pspulumiyaml.azurenative.web.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionWebListWebAppAuthSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppAuthSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteBuildFunctionAppSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The stage site identifier.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteBuildFunctionAppSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppAuthSettingsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the settings for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppAuthSettingsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppBackupConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppBackupConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppSyncFunctionTriggersSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppSyncFunctionTriggersSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetAppServiceEnvironment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the App Service Environment.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getAppServiceEnvironment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetAppServiceEnvironmentPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the App Service Environment.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getAppServiceEnvironmentPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppHybridConnectionKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace for this hybrid connection.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The relay name for this hybrid connection.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='The name of the web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["namespaceName"] = $namespaceName
        $arguments["relayName"] = $relayName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppHybridConnectionKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteFunctionAppSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteFunctionAppSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppRelayServiceConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the hybrid connection.)')]
        [string]
        $entityName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["entityName"] = $entityName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppRelayServiceConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetContainerApp
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Container App.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getContainerApp -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppFunctionKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName
    )

    process
    {
        $arguments = @{}
        $arguments["functionName"] = $functionName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppFunctionKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppBackupConfigurationSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the backup configuration for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppBackupConfigurationSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebApp
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebApp -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetCertificate
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the certificate.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getCertificate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. By default, this API returns the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppPublicCertificate
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Public certificate name.)')]
        [string]
        $publicCertificateName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["publicCertificateName"] = $publicCertificateName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppPublicCertificate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteBuildAppSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The stage site identifier.)')]
        [string]
        $environmentName
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteBuildAppSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListConnectionConsentLinks
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Connection name)')]
        [string]
        $connectionName,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='Collection of resources)')]
        $parameters
    )

    process
    {
        $arguments = @{}
        $arguments["connectionName"] = $connectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $arguments["subscriptionId"] = $subscriptionId
        }

        if($PSBoundParameters.Keys -icontains 'parameters')
        {
            $arguments["parameters"] = $parameters
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listConnectionConsentLinks -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppVnetConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the virtual network.)')]
        [string]
        $vnetName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["vnetName"] = $vnetName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppVnetConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppSiteBackups
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppSiteBackups -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteConfiguredRoles
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteConfiguredRoles -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSiteExtension
{
    param (
        [parameter(mandatory=$False,HelpMessage='Site extension name.)')]
        [string]
        $siteExtensionId,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["siteExtensionId"] = $siteExtensionId

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSiteExtension -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppMetadata
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppMetadata -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetKubeEnvironment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Kubernetes Environment.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getKubeEnvironment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetStaticSiteCustomDomain
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site resource to search in.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The custom domain name.)')]
        [string]
        $domainName
    )

    process
    {
        $arguments = @{}
        $arguments["domainName"] = $domainName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getStaticSiteCustomDomain -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppDeploymentSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Deployment ID.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API gets a deployment for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["id"] = $id
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppDeploymentSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetStaticSite
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getStaticSite -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListContainerAppSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Container App.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listContainerAppSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppPublicCertificateSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API the named binding for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Public certificate name.)')]
        [string]
        $publicCertificateName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["publicCertificateName"] = $publicCertificateName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppPublicCertificateSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppAzureStorageAccountsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the Azure storage account configurations for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppAzureStorageAccountsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppPublishingCredentialsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppPublishingCredentialsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSwiftVirtualNetworkConnectionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get a gateway for the production slot''s Virtual Network.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSwiftVirtualNetworkConnectionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppApplicationSettingsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the application settings for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppApplicationSettingsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppHybridConnectionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace for this hybrid connection.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The relay name for this hybrid connection.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='The name of the web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The name of the slot for the web app.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["namespaceName"] = $namespaceName
        $arguments["relayName"] = $relayName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppHybridConnectionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppHostNameBinding
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Hostname in the hostname binding.)')]
        [string]
        $hostName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["hostName"] = $hostName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppHostNameBinding -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSwiftVirtualNetworkConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSwiftVirtualNetworkConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppHostKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppHostKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListConnectionKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The connection name.)')]
        [string]
        $connectionName,
        [parameter(mandatory=$False,HelpMessage='Resource type)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Kind of resource)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource Id)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='time span for how long the keys will be valid)')]
        [string]
        $validityTimeSpan,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Resource Name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Resource Location)')]
        [string]
        $location
    )

    process
    {
        $arguments = @{}
        $arguments["connectionName"] = $connectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'type')
        {
            $arguments["type"] = $type
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $arguments["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'id')
        {
            $arguments["id"] = $id
        }

        if($PSBoundParameters.Keys -icontains 'validityTimeSpan')
        {
            $arguments["validityTimeSpan"] = $validityTimeSpan
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $arguments["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $arguments["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $arguments["location"] = $location
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listConnectionKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppSiteBackupsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get backups of the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppSiteBackupsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetConnectionGateway
{
    param (
        [parameter(mandatory=$False,HelpMessage='The connection gateway name)')]
        [string]
        $connectionGatewayName,
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId
    )

    process
    {
        $arguments = @{}
        $arguments["connectionGatewayName"] = $connectionGatewayName
        $arguments["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $arguments["subscriptionId"] = $subscriptionId
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getConnectionGateway -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppSyncFunctionTriggers
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppSyncFunctionTriggers -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSlotConfigurationNames
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSlotConfigurationNames -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppHostKeysSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppHostKeysSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppPremierAddOn
{
    param (
        [parameter(mandatory=$False,HelpMessage='Add-on name.)')]
        [string]
        $premierAddOnName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["premierAddOnName"] = $premierAddOnName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppPremierAddOn -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppAzureStorageAccounts
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppAzureStorageAccounts -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppDomainOwnershipIdentifierSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of domain ownership identifier.)')]
        [string]
        $domainOwnershipIdentifierName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will delete the binding for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["domainOwnershipIdentifierName"] = $domainOwnershipIdentifierName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppDomainOwnershipIdentifierSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Connection name)')]
        [string]
        $connectionName,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId
    )

    process
    {
        $arguments = @{}
        $arguments["connectionName"] = $connectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $arguments["subscriptionId"] = $subscriptionId
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppPremierAddOnSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Add-on name.)')]
        [string]
        $premierAddOnName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the named add-on for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["premierAddOnName"] = $premierAddOnName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppPremierAddOnSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppPublishingCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppPublishingCredentials -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppInstanceFunctionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName
    )

    process
    {
        $arguments = @{}
        $arguments["functionName"] = $functionName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppInstanceFunctionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppSitePushSettingsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of web app slot. If not specified then will default to production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppSitePushSettingsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppDiagnosticLogsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppDiagnosticLogsConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppFunction
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName
    )

    process
    {
        $arguments = @{}
        $arguments["functionName"] = $functionName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppFunction -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppFunctionSecretsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName
    )

    process
    {
        $arguments = @{}
        $arguments["functionName"] = $functionName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppFunctionSecretsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetStaticSitePrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getStaticSitePrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppFunctionSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName
    )

    process
    {
        $arguments = @{}
        $arguments["functionName"] = $functionName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppFunctionSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppVnetConnectionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the named virtual network for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the virtual network.)')]
        [string]
        $vnetName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot
        $arguments["vnetName"] = $vnetName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppVnetConnectionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppPrivateEndpointConnectionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the site deployment slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppPrivateEndpointConnectionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppApplicationSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppApplicationSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetCustomApi
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='API name)')]
        [string]
        $apiName,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId
    )

    process
    {
        $arguments = @{}
        $arguments["apiName"] = $apiName
        $arguments["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $arguments["subscriptionId"] = $subscriptionId
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getCustomApi -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppConnectionStringsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the connection settings for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppConnectionStringsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppFunctionKeysSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName
    )

    process
    {
        $arguments = @{}
        $arguments["functionName"] = $functionName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppFunctionKeysSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListAppServicePlanHybridConnectionKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus namespace.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus relay.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='Name of the App Service plan.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["namespaceName"] = $namespaceName
        $arguments["relayName"] = $relayName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listAppServicePlanHybridConnectionKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppRelayServiceConnectionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the hybrid connection.)')]
        [string]
        $entityName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get a hybrid connection for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["entityName"] = $entityName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppRelayServiceConnectionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetAppServicePlan
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the App Service plan.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getAppServicePlan -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class WsdlService
{
    [string[]] $endpointQualifiedNames
    [string] $qualifiedName
}
function New-AzureNativeTypeWebWsdlService
{
    param (
        [parameter(mandatory=$False,HelpMessage='List of the endpoints'' qualified names)')]
        [string[]]
        $endpointQualifiedNames,
        [parameter(mandatory=$False,HelpMessage='The service''s qualified name)')]
        [string]
        $qualifiedName
    )

    process
    {
        return $([WsdlService]$PSBoundParameters)
    }
}
function Invoke-AzureNativeFunctionWebListCustomApiWsdlInterfaces
{
    param (
        [parameter(mandatory=$False,HelpMessage='The WSDL URL)')]
        [string]
        $url,
        [parameter(mandatory=$False,HelpMessage='The service with name and endpoint names)')]
        [WsdlService]
        $service,
        [parameter(mandatory=$False,HelpMessage='The WSDL import method)')]
        [string]
        [ValidateSet('NotSpecified', 'SoapToRest', 'SoapPassThrough')]
        $importMethod,
        [parameter(mandatory=$False,HelpMessage='The WSDL content)')]
        [string]
        $content,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='The location)')]
        [string]
        $location
    )

    process
    {
        $arguments = @{}
        $arguments["location"] = $location

        if($PSBoundParameters.Keys -icontains 'url')
        {
            $arguments["url"] = $url
        }

        if($PSBoundParameters.Keys -icontains 'service')
        {
            $arguments["service"] = $service
        }

        if($PSBoundParameters.Keys -icontains 'importMethod')
        {
            $arguments["importMethod"] = $importMethod
        }

        if($PSBoundParameters.Keys -icontains 'content')
        {
            $arguments["content"] = $content
        }

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $arguments["subscriptionId"] = $subscriptionId
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listCustomApiWsdlInterfaces -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSourceControl
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSourceControl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppDomainOwnershipIdentifier
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of domain ownership identifier.)')]
        [string]
        $domainOwnershipIdentifierName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["domainOwnershipIdentifierName"] = $domainOwnershipIdentifierName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppDomainOwnershipIdentifier -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppSitePushSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppSitePushSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppHostNameBindingSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Hostname in the hostname binding.)')]
        [string]
        $hostName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API the named binding for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["hostName"] = $hostName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppHostNameBindingSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the site.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetStaticSiteUserProvidedFunctionAppForStaticSiteBuild
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the function app registered with the static site build.)')]
        [string]
        $functionAppName,
        [parameter(mandatory=$False,HelpMessage='The stage site identifier.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["environmentName"] = $environmentName
        $arguments["functionAppName"] = $functionAppName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getStaticSiteUserProvidedFunctionAppForStaticSiteBuild -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class BackupSchedule
{
    [ValidateSet('Day', 'Hour')]
    [object] $frequencyUnit
    [ValidateSet('Day', 'Hour')]
    [string] $startTime
    [ValidateSet('Day', 'Hour')]
    [int] $frequencyInterval
    [ValidateSet('Day', 'Hour')]
    [int] $retentionPeriodInDays
    [ValidateSet('Day', 'Hour')]
    [bool] $keepAtLeastOneBackup
}
function New-AzureNativeTypeWebBackupSchedule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The unit of time for how often the backup should be executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7))')]
        $frequencyUnit,
        [parameter(mandatory=$False,HelpMessage='When the schedule should start working.)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='How often the backup should be executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day))')]
        [int]
        $frequencyInterval,
        [parameter(mandatory=$False,HelpMessage='After how many days backups should be deleted.)')]
        [int]
        $retentionPeriodInDays,
        [parameter(mandatory=$False,HelpMessage='True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise.)')]
        [bool]
        $keepAtLeastOneBackup
    )

    process
    {
        return $([BackupSchedule]$PSBoundParameters)
    }
}
function Invoke-AzureNativeFunctionWebListWebAppBackupStatusSecretsSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='ID of backup.)')]
        [string]
        $backupId,
        [parameter(mandatory=$False,HelpMessage='SAS URL to the container.)')]
        [string]
        $storageAccountUrl,
        [parameter(mandatory=$False,HelpMessage='True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Databases included in the backup.)')]
        $databases,
        [parameter(mandatory=$False,HelpMessage='Schedule for the backup if it is executed periodically.)')]
        [BackupSchedule]
        $backupSchedule,
        [parameter(mandatory=$False,HelpMessage='Name of web app slot. If not specified then will default to production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the backup.)')]
        [string]
        $backupName
    )

    process
    {
        $arguments = @{}
        $arguments["backupId"] = $backupId
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot
        $arguments["storageAccountUrl"] = $storageAccountUrl

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $arguments["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $arguments["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'databases')
        {
            $arguments["databases"] = $databases
        }

        if($PSBoundParameters.Keys -icontains 'backupSchedule')
        {
            $arguments["backupSchedule"] = $backupSchedule
        }

        if($PSBoundParameters.Keys -icontains 'backupName')
        {
            $arguments["backupName"] = $backupName
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppBackupStatusSecretsSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppDeployment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Deployment ID.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["id"] = $id
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppDeployment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppBackupStatusSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='ID of backup.)')]
        [string]
        $backupId,
        [parameter(mandatory=$False,HelpMessage='SAS URL to the container.)')]
        [string]
        $storageAccountUrl,
        [parameter(mandatory=$False,HelpMessage='True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Databases included in the backup.)')]
        $databases,
        [parameter(mandatory=$False,HelpMessage='Schedule for the backup if it is executed periodically.)')]
        [BackupSchedule]
        $backupSchedule,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the backup.)')]
        [string]
        $backupName
    )

    process
    {
        $arguments = @{}
        $arguments["backupId"] = $backupId
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["storageAccountUrl"] = $storageAccountUrl

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $arguments["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $arguments["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'databases')
        {
            $arguments["databases"] = $databases
        }

        if($PSBoundParameters.Keys -icontains 'backupSchedule')
        {
            $arguments["backupSchedule"] = $backupSchedule
        }

        if($PSBoundParameters.Keys -icontains 'backupName')
        {
            $arguments["backupName"] = $backupName
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppBackupStatusSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppConnectionStrings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppConnectionStrings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppHybridConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace for this hybrid connection.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The relay name for this hybrid connection.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='The name of the web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["namespaceName"] = $namespaceName
        $arguments["relayName"] = $relayName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppHybridConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetStaticSiteUserProvidedFunctionAppForStaticSite
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the function app registered with the static site.)')]
        [string]
        $functionAppName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}
        $arguments["functionAppName"] = $functionAppName
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getStaticSiteUserProvidedFunctionAppForStaticSite -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppMetadataSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the metadata for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppMetadataSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteUsers
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The auth provider for the users.)')]
        [string]
        $authprovider
    )

    process
    {
        $arguments = @{}
        $arguments["authprovider"] = $authprovider
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteUsers -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListStaticSiteAppSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listStaticSiteAppSettings -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListSiteIdentifiersAssignedToHostName
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the object.)')]
        [string]
        $name
    )

    process
    {
        $arguments = @{}

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $arguments["name"] = $name
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listSiteIdentifiersAssignedToHostName -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebListWebAppHybridConnectionKeysSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace for this hybrid connection.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The relay name for this hybrid connection.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='The name of the web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The name of the slot for the web app.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["namespaceName"] = $namespaceName
        $arguments["relayName"] = $relayName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:listWebAppHybridConnectionKeysSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSiteExtensionSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Site extension name.)')]
        [string]
        $siteExtensionId,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API uses the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["siteExtensionId"] = $siteExtensionId
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSiteExtensionSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebGetWebAppSourceControlSlot
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will get the source control configuration for the production slot.)')]
        [string]
        $slot
    )

    process
    {
        $arguments = @{}
        $arguments["name"] = $name
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["slot"] = $slot

        $functionObject = Invoke-PulumiFunction -Name azure-native:web:getWebAppSourceControlSlot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class ConnStringValueTypePair
{
    [string] $value
    [ValidateSet('MySql', 'SQLServer', 'SQLAzure', 'Custom', 'NotificationHub', 'ServiceBus', 'EventHub', 'ApiHub', 'DocDb', 'RedisCache', 'PostgreSQL')]
    [object] $type
}
function New-AzureNativeTypeWebConnStringValueTypePair
{
    param (
        [parameter(mandatory=$False,HelpMessage='Value of pair.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Type of database.)')]
        $type
    )

    process
    {
        return $([ConnStringValueTypePair]$PSBoundParameters)
    }
}
function New-AzureNativeWebWebAppConnectionStringsSlot
{
    [Alias('azure_native_web_webappconnectionstringsslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the connection settings for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Connection strings.)')]
        [ConnStringValueTypePair]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppConnectionStringsSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkConnectionState
{
    [string] $description
    [string] $actionsRequired
    [string] $status
}
function New-AzureNativeTypeWebPrivateLinkConnectionState
{
    param (
        [parameter(mandatory=$False,HelpMessage='Description of a private link connection)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='ActionsRequired for a private link connection)')]
        [string]
        $actionsRequired,
        [parameter(mandatory=$False,HelpMessage='Status of a private link connection)')]
        [string]
        $status
    )

    process
    {
        return $([PrivateLinkConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativeWebWebAppPrivateEndpointConnection
{
    [Alias('azure_native_web_webappprivateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The state of a private link connection)')]
        [PrivateLinkConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppPrivateEndpointConnection")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'privateEndpointConnectionName')
        {
            $resource.properties["privateEndpointConnectionName"] = $privateEndpointConnectionName
        }

        if($PSBoundParameters.Keys -icontains 'privateLinkServiceConnectionState')
        {
            $resource.properties["privateLinkServiceConnectionState"] = $privateLinkServiceConnectionState
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppDeploymentSlot
{
    [Alias('azure_native_web_webappdeploymentslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Deployment status.)')]
        [int]
        $status,
        [parameter(mandatory=$False,HelpMessage='Who performed the deployment.)')]
        [string]
        $deployer,
        [parameter(mandatory=$False,HelpMessage='Start time.)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Details on deployment.)')]
        [string]
        $details,
        [parameter(mandatory=$False,HelpMessage='End time.)')]
        [string]
        $endTime,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API creates a deployment for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Author email.)')]
        [string]
        $authorEmail,
        [parameter(mandatory=$False,HelpMessage='Details about deployment status.)')]
        [string]
        $message,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='True if deployment is currently active, false if completed and null if not started.)')]
        [bool]
        $active,
        [parameter(mandatory=$False,HelpMessage='Who authored the deployment.)')]
        [string]
        $author,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='ID of an existing deployment.)')]
        [string]
        $id,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppDeploymentSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'status')
        {
            $resource.properties["status"] = $status
        }

        if($PSBoundParameters.Keys -icontains 'deployer')
        {
            $resource.properties["deployer"] = $deployer
        }

        if($PSBoundParameters.Keys -icontains 'startTime')
        {
            $resource.properties["startTime"] = $startTime
        }

        if($PSBoundParameters.Keys -icontains 'details')
        {
            $resource.properties["details"] = $details
        }

        if($PSBoundParameters.Keys -icontains 'endTime')
        {
            $resource.properties["endTime"] = $endTime
        }

        if($PSBoundParameters.Keys -icontains 'authorEmail')
        {
            $resource.properties["authorEmail"] = $authorEmail
        }

        if($PSBoundParameters.Keys -icontains 'message')
        {
            $resource.properties["message"] = $message
        }

        if($PSBoundParameters.Keys -icontains 'active')
        {
            $resource.properties["active"] = $active
        }

        if($PSBoundParameters.Keys -icontains 'author')
        {
            $resource.properties["author"] = $author
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'id')
        {
            $resource.properties["id"] = $id
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class AuthPlatform
{
    [string] $runtimeVersion
    [bool] $enabled
    [string] $configFilePath
}
function New-AzureNativeTypeWebAuthPlatform
{
    param (
        [parameter(mandatory=$False,HelpMessage='The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
The setting in this value can control the behavior of certain features in the Authentication / Authorization module.)'
)]
        [string]
        $runtimeVersion,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The path of the config file containing auth settings if they come from a file.
If the path is relative, base will the site''s root directory.)'
)]
        [string]
        $configFilePath
    )

    process
    {
        return $([AuthPlatform]$PSBoundParameters)
    }
}
class LoginRoutes
{
    [string] $logoutEndpoint
}
function New-AzureNativeTypeWebLoginRoutes
{
    param (
        [parameter(mandatory=$False,HelpMessage='The endpoint at which a logout request should be made.)')]
        [string]
        $logoutEndpoint
    )

    process
    {
        return $([LoginRoutes]$PSBoundParameters)
    }
}
class Nonce
{
    [string] $nonceExpirationInterval
    [bool] $validateNonce
}
function New-AzureNativeTypeWebNonce
{
    param (
        [parameter(mandatory=$False,HelpMessage='The time after the request is made when the nonce should expire.)')]
        [string]
        $nonceExpirationInterval,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the nonce should not be validated while completing the login flow; otherwise, <code>true</code>.)')]
        [bool]
        $validateNonce
    )

    process
    {
        return $([Nonce]$PSBoundParameters)
    }
}
class BlobStorageTokenStore
{
    [string] $sasUrlSettingName
}
function New-AzureNativeTypeWebBlobStorageTokenStore
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the app setting containing the SAS URL of the blob storage containing the tokens.)')]
        [string]
        $sasUrlSettingName
    )

    process
    {
        return $([BlobStorageTokenStore]$PSBoundParameters)
    }
}
class FileSystemTokenStore
{
    [string] $directory
}
function New-AzureNativeTypeWebFileSystemTokenStore
{
    param (
        [parameter(mandatory=$False,HelpMessage='The directory in which the tokens will be stored.)')]
        [string]
        $directory
    )

    process
    {
        return $([FileSystemTokenStore]$PSBoundParameters)
    }
}
class TokenStore
{
    [int] $tokenRefreshExtensionHours
    [BlobStorageTokenStore] $azureBlobStorage
    [bool] $enabled
    [FileSystemTokenStore] $fileSystem
}
function New-AzureNativeTypeWebTokenStore
{
    param (
        [parameter(mandatory=$False,HelpMessage='The number of hours after session token expiration that a session token can be used to
call the token refresh API. The default is 72 hours.)'
)]
        [int]
        $tokenRefreshExtensionHours,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the storage of the tokens if blob storage is used.)')]
        [BlobStorageTokenStore]
        $azureBlobStorage,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
 The default is <code>false</code>.)'
)]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the storage of the tokens if a file system is used.)')]
        [FileSystemTokenStore]
        $fileSystem
    )

    process
    {
        return $([TokenStore]$PSBoundParameters)
    }
}
class CookieExpiration
{
    [string] $timeToExpiration
    [ValidateSet('FixedTime', 'IdentityProviderDerived')]
    [object] $convention
}
function New-AzureNativeTypeWebCookieExpiration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The time after the request is made when the session cookie should expire.)')]
        [string]
        $timeToExpiration,
        [parameter(mandatory=$False,HelpMessage='The convention used when determining the session cookie''s expiration.)')]
        $convention
    )

    process
    {
        return $([CookieExpiration]$PSBoundParameters)
    }
}
class Login
{
    [LoginRoutes] $routes
    [Nonce] $nonce
    [TokenStore] $tokenStore
    [string[]] $allowedExternalRedirectUrls
    [CookieExpiration] $cookieExpiration
    [bool] $preserveUrlFragmentsForLogins
}
function New-AzureNativeTypeWebLogin
{
    param (
        [parameter(mandatory=$False,HelpMessage='The routes that specify the endpoints used for login and logout requests.)')]
        [LoginRoutes]
        $routes,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the nonce used in the login flow.)')]
        [Nonce]
        $nonce,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the token store.)')]
        [TokenStore]
        $tokenStore,
        [parameter(mandatory=$False,HelpMessage='External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
This is an advanced setting typically only needed by Windows Store application backends.
Note that URLs within the current domain are always implicitly allowed.)'
)]
        [string[]]
        $allowedExternalRedirectUrls,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the session cookie''s expiration.)')]
        [CookieExpiration]
        $cookieExpiration,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the fragments from the request are preserved after the login request is made; otherwise, <code>false</code>.)')]
        [bool]
        $preserveUrlFragmentsForLogins
    )

    process
    {
        return $([Login]$PSBoundParameters)
    }
}
class ClientRegistration
{
    [string] $clientSecretSettingName
    [string] $clientId
}
function New-AzureNativeTypeWebClientRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret.)')]
        [string]
        $clientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The Client ID of the app used for login.)')]
        [string]
        $clientId
    )

    process
    {
        return $([ClientRegistration]$PSBoundParameters)
    }
}
class LoginScopes
{
    [string[]] $scopes
}
function New-AzureNativeTypeWebLoginScopes
{
    param (
        [parameter(mandatory=$False,HelpMessage='A list of the scopes that should be requested while authenticating.)')]
        [string[]]
        $scopes
    )

    process
    {
        return $([LoginScopes]$PSBoundParameters)
    }
}
class AllowedAudiencesValidation
{
    [string[]] $allowedAudiences
}
function New-AzureNativeTypeWebAllowedAudiencesValidation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the allowed list of audiences from which to validate the JWT token.)')]
        [string[]]
        $allowedAudiences
    )

    process
    {
        return $([AllowedAudiencesValidation]$PSBoundParameters)
    }
}
class Google
{
    [ClientRegistration] $registration
    [LoginScopes] $login
    [bool] $enabled
    [AllowedAudiencesValidation] $validation
}
function New-AzureNativeTypeWebGoogle
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the app registration for the Google provider.)')]
        [ClientRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow.)')]
        [LoginScopes]
        $login,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the Google provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Active Directory token validation flow.)')]
        [AllowedAudiencesValidation]
        $validation
    )

    process
    {
        return $([Google]$PSBoundParameters)
    }
}
class AzureActiveDirectoryRegistration
{
    [string] $clientSecretCertificateSubjectAlternativeName
    [string] $openIdIssuer
    [string] $clientSecretSettingName
    [string] $clientSecretCertificateIssuer
    [string] $clientSecretCertificateThumbprint
    [string] $clientId
}
function New-AzureNativeTypeWebAzureActiveDirectoryRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as
a replacement for the Client Secret Certificate Thumbprint. It is also optional.)'
)]
        [string]
        $clientSecretCertificateSubjectAlternativeName,
        [parameter(mandatory=$False,HelpMessage='The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/.
This URI is a case-sensitive identifier for the token issuer.
More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html)'
)]
        [string]
        $openIdIssuer,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret of the relying party application.)')]
        [string]
        $clientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as
a replacement for the Client Secret Certificate Thumbprint. It is also optional.)'
)]
        [string]
        $clientSecretCertificateIssuer,
        [parameter(mandatory=$False,HelpMessage='An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
a replacement for the Client Secret. It is also optional.)'
)]
        [string]
        $clientSecretCertificateThumbprint,
        [parameter(mandatory=$False,HelpMessage='The Client ID of this relying party application, known as the client_id.
This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
other 3rd party OpenID Connect providers.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html)'
)]
        [string]
        $clientId
    )

    process
    {
        return $([AzureActiveDirectoryRegistration]$PSBoundParameters)
    }
}
class AzureActiveDirectoryLogin
{
    [string[]] $loginParameters
    [bool] $disableWWWAuthenticate
}
function New-AzureNativeTypeWebAzureActiveDirectoryLogin
{
    param (
        [parameter(mandatory=$False,HelpMessage='Login parameters to send to the OpenID Connect authorization endpoint when
a user logs in. Each parameter must be in the form "key=value".)'
)]
        [string[]]
        $loginParameters,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the www-authenticate provider should be omitted from the request; otherwise, <code>false</code>.)')]
        [bool]
        $disableWWWAuthenticate
    )

    process
    {
        return $([AzureActiveDirectoryLogin]$PSBoundParameters)
    }
}
class JwtClaimChecks
{
    [string[]] $allowedClientApplications
    [string[]] $allowedGroups
}
function New-AzureNativeTypeWebJwtClaimChecks
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of the allowed client applications.)')]
        [string[]]
        $allowedClientApplications,
        [parameter(mandatory=$False,HelpMessage='The list of the allowed groups.)')]
        [string[]]
        $allowedGroups
    )

    process
    {
        return $([JwtClaimChecks]$PSBoundParameters)
    }
}
class AzureActiveDirectoryValidation
{
    [string[]] $allowedAudiences
    [JwtClaimChecks] $jwtClaimChecks
}
function New-AzureNativeTypeWebAzureActiveDirectoryValidation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of audiences that can make successful authentication/authorization requests.)')]
        [string[]]
        $allowedAudiences,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the checks that should be made while validating the JWT Claims.)')]
        [JwtClaimChecks]
        $jwtClaimChecks
    )

    process
    {
        return $([AzureActiveDirectoryValidation]$PSBoundParameters)
    }
}
class AzureActiveDirectory
{
    [AzureActiveDirectoryRegistration] $registration
    [AzureActiveDirectoryLogin] $login
    [bool] $enabled
    [bool] $isAutoProvisioned
    [AzureActiveDirectoryValidation] $validation
}
function New-AzureNativeTypeWebAzureActiveDirectory
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Active Directory app registration.)')]
        [AzureActiveDirectoryRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Active Directory login flow.)')]
        [AzureActiveDirectoryLogin]
        $login,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling.
This is an internal flag primarily intended to support the Azure Management Portal. Users should not
read or write to this property.)'
)]
        [bool]
        $isAutoProvisioned,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Active Directory token validation flow.)')]
        [AzureActiveDirectoryValidation]
        $validation
    )

    process
    {
        return $([AzureActiveDirectory]$PSBoundParameters)
    }
}
class AzureStaticWebAppsRegistration
{
    [string] $clientId
}
function New-AzureNativeTypeWebAzureStaticWebAppsRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Client ID of the app used for login.)')]
        [string]
        $clientId
    )

    process
    {
        return $([AzureStaticWebAppsRegistration]$PSBoundParameters)
    }
}
class AzureStaticWebApps
{
    [bool] $enabled
    [AzureStaticWebAppsRegistration] $registration
}
function New-AzureNativeTypeWebAzureStaticWebApps
{
    param (
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Static Web Apps registration.)')]
        [AzureStaticWebAppsRegistration]
        $registration
    )

    process
    {
        return $([AzureStaticWebApps]$PSBoundParameters)
    }
}
class TwitterRegistration
{
    [string] $consumerSecretSettingName
    [string] $consumerKey
}
function New-AzureNativeTypeWebTwitterRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
application used for sign-in.)'
)]
        [string]
        $consumerSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The OAuth 1.0a consumer key of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in)'
)]
        [string]
        $consumerKey
    )

    process
    {
        return $([TwitterRegistration]$PSBoundParameters)
    }
}
class Twitter
{
    [bool] $enabled
    [TwitterRegistration] $registration
}
function New-AzureNativeTypeWebTwitter
{
    param (
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the Twitter provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the app registration for the Twitter provider.)')]
        [TwitterRegistration]
        $registration
    )

    process
    {
        return $([Twitter]$PSBoundParameters)
    }
}
class AppRegistration
{
    [string] $appId
    [string] $appSecretSettingName
}
function New-AzureNativeTypeWebAppRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The App ID of the app used for login.)')]
        [string]
        $appId,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the app secret.)')]
        [string]
        $appSecretSettingName
    )

    process
    {
        return $([AppRegistration]$PSBoundParameters)
    }
}
class Facebook
{
    [LoginScopes] $login
    [AppRegistration] $registration
    [string] $graphApiVersion
    [bool] $enabled
}
function New-AzureNativeTypeWebFacebook
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow.)')]
        [LoginScopes]
        $login,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the app registration for the Facebook provider.)')]
        [AppRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The version of the Facebook api to be used while logging in.)')]
        [string]
        $graphApiVersion,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the Facebook provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([Facebook]$PSBoundParameters)
    }
}
class GitHub
{
    [ClientRegistration] $registration
    [LoginScopes] $login
    [bool] $enabled
}
function New-AzureNativeTypeWebGitHub
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the app registration for the GitHub provider.)')]
        [ClientRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow.)')]
        [LoginScopes]
        $login,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the GitHub provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([GitHub]$PSBoundParameters)
    }
}
class AppleRegistration
{
    [string] $clientSecretSettingName
    [string] $clientId
}
function New-AzureNativeTypeWebAppleRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret.)')]
        [string]
        $clientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The Client ID of the app used for login.)')]
        [string]
        $clientId
    )

    process
    {
        return $([AppleRegistration]$PSBoundParameters)
    }
}
class Apple
{
    [AppleRegistration] $registration
    [LoginScopes] $login
    [bool] $enabled
}
function New-AzureNativeTypeWebApple
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Apple registration.)')]
        [AppleRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow.)')]
        [LoginScopes]
        $login,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the Apple provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([Apple]$PSBoundParameters)
    }
}
class LegacyMicrosoftAccount
{
    [ClientRegistration] $registration
    [LoginScopes] $login
    [bool] $enabled
    [AllowedAudiencesValidation] $validation
}
function New-AzureNativeTypeWebLegacyMicrosoftAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the app registration for the legacy Microsoft Account provider.)')]
        [ClientRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow.)')]
        [LoginScopes]
        $login,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the legacy Microsoft Account provider should not be enabled despite the set registration; otherwise, <code>true</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the legacy Microsoft Account provider token validation flow.)')]
        [AllowedAudiencesValidation]
        $validation
    )

    process
    {
        return $([LegacyMicrosoftAccount]$PSBoundParameters)
    }
}
class IdentityProviders
{
    [Google] $google
    [AzureActiveDirectory] $azureActiveDirectory
    [AzureStaticWebApps] $azureStaticWebApps
    [Twitter] $twitter
    [Facebook] $facebook
    [GitHub] $gitHub
    [Apple] $apple
    [LegacyMicrosoftAccount] $legacyMicrosoftAccount
    [object] $customOpenIdConnectProviders
}
class OpenIdConnectConfig
{
    [string] $authorizationEndpoint
    [string] $issuer
    [string] $wellKnownOpenIdConfiguration
    [string] $certificationUri
    [string] $tokenEndpoint
}
function New-AzureNativeTypeWebOpenIdConnectConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='The endpoint to be used to make an authorization request.)')]
        [string]
        $authorizationEndpoint,
        [parameter(mandatory=$False,HelpMessage='The endpoint that issues the token.)')]
        [string]
        $issuer,
        [parameter(mandatory=$False,HelpMessage='The endpoint that contains all the configuration endpoints for the provider.)')]
        [string]
        $wellKnownOpenIdConfiguration,
        [parameter(mandatory=$False,HelpMessage='The endpoint that provides the keys necessary to validate the token.)')]
        [string]
        $certificationUri,
        [parameter(mandatory=$False,HelpMessage='The endpoint to be used to request a token.)')]
        [string]
        $tokenEndpoint
    )

    process
    {
        return $([OpenIdConnectConfig]$PSBoundParameters)
    }
}
class OpenIdConnectClientCredential
{
    [string] $clientSecretSettingName
    [ValidateSet('ClientSecretPost')]
    [object] $method
}
function New-AzureNativeTypeWebOpenIdConnectClientCredential
{
    param (
        [parameter(mandatory=$False,HelpMessage='The app setting that contains the client secret for the custom Open ID Connect provider.)')]
        [string]
        $clientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The method that should be used to authenticate the user.)')]
        $method
    )

    process
    {
        return $([OpenIdConnectClientCredential]$PSBoundParameters)
    }
}
class OpenIdConnectRegistration
{
    [OpenIdConnectConfig] $openIdConnectConfiguration
    [OpenIdConnectClientCredential] $clientCredential
    [string] $clientId
}
function New-AzureNativeTypeWebOpenIdConnectRegistration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the endpoints used for the custom Open ID Connect provider.)')]
        [OpenIdConnectConfig]
        $openIdConnectConfiguration,
        [parameter(mandatory=$False,HelpMessage='The authentication credentials of the custom Open ID Connect provider.)')]
        [OpenIdConnectClientCredential]
        $clientCredential,
        [parameter(mandatory=$False,HelpMessage='The client id of the custom Open ID Connect provider.)')]
        [string]
        $clientId
    )

    process
    {
        return $([OpenIdConnectRegistration]$PSBoundParameters)
    }
}
class OpenIdConnectLogin
{
    [string] $nameClaimType
    [string[]] $scopes
}
function New-AzureNativeTypeWebOpenIdConnectLogin
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the claim that contains the users name.)')]
        [string]
        $nameClaimType,
        [parameter(mandatory=$False,HelpMessage='A list of the scopes that should be requested while authenticating.)')]
        [string[]]
        $scopes
    )

    process
    {
        return $([OpenIdConnectLogin]$PSBoundParameters)
    }
}
class CustomOpenIdConnectProvider
{
    [OpenIdConnectRegistration] $registration
    [OpenIdConnectLogin] $login
    [bool] $enabled
}
function New-AzureNativeTypeWebCustomOpenIdConnectProvider
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the app registration for the custom Open ID Connect provider.)')]
        [OpenIdConnectRegistration]
        $registration,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow of the custom Open ID Connect provider.)')]
        [OpenIdConnectLogin]
        $login,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the custom Open ID provider provider should not be enabled; otherwise, <code>true</code>.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([CustomOpenIdConnectProvider]$PSBoundParameters)
    }
}
function New-AzureNativeTypeWebIdentityProviders
{
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Google provider.)')]
        [Google]
        $google,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Active directory provider.)')]
        [AzureActiveDirectory]
        $azureActiveDirectory,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Azure Static Web Apps provider.)')]
        [AzureStaticWebApps]
        $azureStaticWebApps,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Twitter provider.)')]
        [Twitter]
        $twitter,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Facebook provider.)')]
        [Facebook]
        $facebook,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the GitHub provider.)')]
        [GitHub]
        $gitHub,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the Apple provider.)')]
        [Apple]
        $apple,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the legacy Microsoft Account provider.)')]
        [LegacyMicrosoftAccount]
        $legacyMicrosoftAccount,
        [parameter(mandatory=$False,HelpMessage='The map of the name of the alias of each custom Open ID Connect provider to the
configuration settings of the custom Open ID Connect provider.)'
)]
        [CustomOpenIdConnectProvider]
        $customOpenIdConnectProviders
    )

    process
    {
        return $([IdentityProviders]$PSBoundParameters)
    }
}
class ForwardProxy
{
    [string] $customProtoHeaderName
    [ValidateSet('NoProxy', 'Standard', 'Custom')]
    [object] $convention
    [ValidateSet('NoProxy', 'Standard', 'Custom')]
    [string] $customHostHeaderName
}
function New-AzureNativeTypeWebForwardProxy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the header containing the scheme of the request.)')]
        [string]
        $customProtoHeaderName,
        [parameter(mandatory=$False,HelpMessage='The convention used to determine the url of the request made.)')]
        $convention,
        [parameter(mandatory=$False,HelpMessage='The name of the header containing the host of the request.)')]
        [string]
        $customHostHeaderName
    )

    process
    {
        return $([ForwardProxy]$PSBoundParameters)
    }
}
class HttpSettingsRoutes
{
    [string] $apiPrefix
}
function New-AzureNativeTypeWebHttpSettingsRoutes
{
    param (
        [parameter(mandatory=$False,HelpMessage='The prefix that should precede all the authentication/authorization paths.)')]
        [string]
        $apiPrefix
    )

    process
    {
        return $([HttpSettingsRoutes]$PSBoundParameters)
    }
}
class HttpSettings
{
    [bool] $requireHttps
    [ForwardProxy] $forwardProxy
    [HttpSettingsRoutes] $routes
}
function New-AzureNativeTypeWebHttpSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, <code>true</code>.)')]
        [bool]
        $requireHttps,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of a forward proxy used to make the requests.)')]
        [ForwardProxy]
        $forwardProxy,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the paths HTTP requests.)')]
        [HttpSettingsRoutes]
        $routes
    )

    process
    {
        return $([HttpSettings]$PSBoundParameters)
    }
}
class GlobalValidation
{
    [string[]] $excludedPaths
    [string] $redirectToProvider
    [bool] $requireAuthentication
    [ValidateSet('RedirectToLoginPage', 'AllowAnonymous', 'Return401', 'Return403')]
    [object] $unauthenticatedClientAction
}
function New-AzureNativeTypeWebGlobalValidation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The paths for which unauthenticated flow would not be redirected to the login page.)')]
        [string[]]
        $excludedPaths,
        [parameter(mandatory=$False,HelpMessage='The default authentication provider to use when multiple providers are configured.
This setting is only needed if multiple providers are configured and the unauthenticated client
action is set to "RedirectToLoginPage".)'
)]
        [string]
        $redirectToProvider,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the authentication flow is required any request is made; otherwise, <code>false</code>.)')]
        [bool]
        $requireAuthentication,
        [parameter(mandatory=$False,HelpMessage='The action to take when an unauthenticated client attempts to access the app.)')]
        $unauthenticatedClientAction
    )

    process
    {
        return $([GlobalValidation]$PSBoundParameters)
    }
}
function New-AzureNativeWebWebAppAuthSettingsV2Slot
{
    [Alias('azure_native_web_webappauthsettingsv2slot')]
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the platform of App Service Authentication/Authorization.)')]
        [AuthPlatform]
        $platform,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow of users using App Service Authentication/Authorization.)')]
        [Login]
        $login,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of each of the identity providers used to configure App Service Authentication/Authorization.)')]
        [IdentityProviders]
        $identityProviders,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the HTTP requests for authentication and authorization requests made against App Service Authentication/Authorization.)')]
        [HttpSettings]
        $httpSettings,
        [parameter(mandatory=$False,HelpMessage='Name of web app slot. If not specified then will default to production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='The configuration settings that determines the validation flow of users using App Service Authentication/Authorization.)')]
        [GlobalValidation]
        $globalValidation,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppAuthSettingsV2Slot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'platform')
        {
            $resource.properties["platform"] = $platform
        }

        if($PSBoundParameters.Keys -icontains 'login')
        {
            $resource.properties["login"] = $login
        }

        if($PSBoundParameters.Keys -icontains 'identityProviders')
        {
            $resource.properties["identityProviders"] = $identityProviders
        }

        if($PSBoundParameters.Keys -icontains 'httpSettings')
        {
            $resource.properties["httpSettings"] = $httpSettings
        }

        if($PSBoundParameters.Keys -icontains 'globalValidation')
        {
            $resource.properties["globalValidation"] = $globalValidation
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ApiResourceBackendService
{
    [string] $serviceUrl
}
function New-AzureNativeTypeWebApiResourceBackendService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The service URL)')]
        [string]
        $serviceUrl
    )

    process
    {
        return $([ApiResourceBackendService]$PSBoundParameters)
    }
}
class ApiResourceDefinitions
{
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $modifiedSwaggerUrl
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $originalSwaggerUrl
}
function New-AzureNativeTypeWebApiResourceDefinitions
{
    param (
        [parameter(mandatory=$False,HelpMessage='The modified swagger URL)')]
        [string]
        $modifiedSwaggerUrl,
        [parameter(mandatory=$False,HelpMessage='The original swagger URL)')]
        [string]
        $originalSwaggerUrl
    )

    process
    {
        return $([ApiResourceDefinitions]$PSBoundParameters)
    }
}
class WsdlDefinition
{
    [ValidateSet('NotSpecified', 'SoapToRest', 'SoapPassThrough')]
    [string] $importMethod
    [ValidateSet('NotSpecified', 'SoapToRest', 'SoapPassThrough')]
    [string] $content
    [ValidateSet('NotSpecified', 'SoapToRest', 'SoapPassThrough')]
    [string] $url
    [ValidateSet('NotSpecified', 'SoapToRest', 'SoapPassThrough')]
    [WsdlService] $service
}
function New-AzureNativeTypeWebWsdlDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The WSDL import method)')]
        [string]
        [ValidateSet('NotSpecified', 'SoapToRest', 'SoapPassThrough')]
        $importMethod,
        [parameter(mandatory=$False,HelpMessage='The WSDL content)')]
        [string]
        $content,
        [parameter(mandatory=$False,HelpMessage='The WSDL URL)')]
        [string]
        $url,
        [parameter(mandatory=$False,HelpMessage='The service with name and endpoint names)')]
        [WsdlService]
        $service
    )

    process
    {
        return $([WsdlDefinition]$PSBoundParameters)
    }
}
class CustomApiPropertiesDefinition
{
    [string[]] $capabilities
    [ApiResourceBackendService] $backendService
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $apiType
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $description
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [ApiResourceDefinitions] $apiDefinitions
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $displayName
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [WsdlDefinition] $wsdlDefinition
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [object] $swagger
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $brandColor
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [object] $connectionParameters
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string] $iconUri
    [ValidateSet('NotSpecified', 'Rest', 'Soap')]
    [string[]] $runtimeUrls
}
class ApiOAuthSettings
{
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [string] $redirectUrl
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [string] $identityProvider
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [string] $clientSecret
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [object] $customParameters
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [object] $properties
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [string[]] $scopes
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [string] $clientId
}
class ApiOAuthSettingsParameter
{
    [object] $uiDefinition
    [object] $options
    [string] $value
}
function New-AzureNativeTypeWebApiOAuthSettingsParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='UI definitions per culture as caller can specify the culture)')]
        $uiDefinition,
        [parameter(mandatory=$False,HelpMessage='Options available to this parameter)')]
        $options,
        [parameter(mandatory=$False,HelpMessage='Value of the setting)')]
        [string]
        $value
    )

    process
    {
        return $([ApiOAuthSettingsParameter]$PSBoundParameters)
    }
}
function New-AzureNativeTypeWebApiOAuthSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Url)')]
        [string]
        $redirectUrl,
        [parameter(mandatory=$False,HelpMessage='Identity provider)')]
        [string]
        $identityProvider,
        [parameter(mandatory=$False,HelpMessage='Client Secret needed for OAuth)')]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='OAuth parameters key is the name of parameter)')]
        [ApiOAuthSettingsParameter]
        $customParameters,
        [parameter(mandatory=$False,HelpMessage='Read only properties for this oauth setting.)')]
        $properties,
        [parameter(mandatory=$False,HelpMessage='OAuth scopes)')]
        [string[]]
        $scopes,
        [parameter(mandatory=$False,HelpMessage='Resource provider client id)')]
        [string]
        $clientId
    )

    process
    {
        return $([ApiOAuthSettings]$PSBoundParameters)
    }
}
class ConnectionParameter
{
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [object] $type
    [ValidateSet('string', 'securestring', 'secureobject', 'int', 'bool', 'object', 'array', 'oauthSetting', 'connection')]
    [ApiOAuthSettings] $oAuthSettings
}
function New-AzureNativeTypeWebConnectionParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of the parameter)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='OAuth settings for the connection provider)')]
        [ApiOAuthSettings]
        $oAuthSettings
    )

    process
    {
        return $([ConnectionParameter]$PSBoundParameters)
    }
}
function New-AzureNativeTypeWebCustomApiPropertiesDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The custom API capabilities)')]
        [string[]]
        $capabilities,
        [parameter(mandatory=$False,HelpMessage='The API backend service)')]
        [ApiResourceBackendService]
        $backendService,
        [parameter(mandatory=$False,HelpMessage='The API type)')]
        [string]
        [ValidateSet('NotSpecified', 'Rest', 'Soap')]
        $apiType,
        [parameter(mandatory=$False,HelpMessage='The custom API description)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='API Definitions)')]
        [ApiResourceDefinitions]
        $apiDefinitions,
        [parameter(mandatory=$False,HelpMessage='The display name)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The WSDL definition)')]
        [WsdlDefinition]
        $wsdlDefinition,
        [parameter(mandatory=$False,HelpMessage='The JSON representation of the swagger)')]
        $swagger,
        [parameter(mandatory=$False,HelpMessage='Brand color)')]
        [string]
        $brandColor,
        [parameter(mandatory=$False,HelpMessage='Connection parameters)')]
        [ConnectionParameter]
        $connectionParameters,
        [parameter(mandatory=$False,HelpMessage='The icon URI)')]
        [string]
        $iconUri,
        [parameter(mandatory=$False,HelpMessage='Runtime URLs)')]
        [string[]]
        $runtimeUrls
    )

    process
    {
        return $([CustomApiPropertiesDefinition]$PSBoundParameters)
    }
}
function New-AzureNativeWebCustomApi
{
    [Alias('azure_native_web_customapi')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Custom API properties)')]
        [CustomApiPropertiesDefinition]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage='API name)')]
        [string]
        $apiName,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:CustomApi")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $resource.properties["subscriptionId"] = $subscriptionId
        }

        if($PSBoundParameters.Keys -icontains 'apiName')
        {
            $resource.properties["apiName"] = $apiName
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSitePushSettings
{
    [Alias('azure_native_web_webappsitepushsettings')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.
Tags can consist of alphanumeric characters and the following:
''_'', ''@'', ''#'', ''.'', '':'', ''-''.
Validation should be performed at the PushRequestHandler.)'
)]
        [string]
        $tagsRequiringAuth,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint.)')]
        [string]
        $tagWhitelistJson,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint.)')]
        [string]
        $dynamicTagsJson,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a flag indicating whether the Push endpoint is enabled.)')]
        [bool]
        $isPushEnabled,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSitePushSettings")

        $resource.properties["isPushEnabled"] = $isPushEnabled
        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'tagsRequiringAuth')
        {
            $resource.properties["tagsRequiringAuth"] = $tagsRequiringAuth
        }

        if($PSBoundParameters.Keys -icontains 'tagWhitelistJson')
        {
            $resource.properties["tagWhitelistJson"] = $tagWhitelistJson
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'dynamicTagsJson')
        {
            $resource.properties["dynamicTagsJson"] = $dynamicTagsJson
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebCertificate
{
    [Alias('azure_native_web_certificate')]
    param (
        [parameter(mandatory=$False,HelpMessage='Method of domain validation for free cert)')]
        [string]
        $domainValidationMethod,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Host names the certificate applies to.)')]
        [string[]]
        $hostNames,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Key Vault secret name.)')]
        [string]
        $keyVaultSecretName,
        [parameter(mandatory=$False,HelpMessage='Certificate password.)')]
        [string]
        $password,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".)')]
        [string]
        $serverFarmId,
        [parameter(mandatory=$False,HelpMessage='Name of the certificate.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Key Vault Csm resource Id.)')]
        [string]
        $keyVaultId,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='CNAME of the certificate to be issued via free certificate)')]
        [string]
        $canonicalName,
        [parameter(mandatory=$False,HelpMessage='Pfx blob.)')]
        [string]
        $pfxBlob,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:Certificate")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'domainValidationMethod')
        {
            $resource.properties["domainValidationMethod"] = $domainValidationMethod
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'hostNames')
        {
            $resource.properties["hostNames"] = $hostNames
        }

        if($PSBoundParameters.Keys -icontains 'keyVaultSecretName')
        {
            $resource.properties["keyVaultSecretName"] = $keyVaultSecretName
        }

        if($PSBoundParameters.Keys -icontains 'password')
        {
            $resource.properties["password"] = $password
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'serverFarmId')
        {
            $resource.properties["serverFarmId"] = $serverFarmId
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'keyVaultId')
        {
            $resource.properties["keyVaultId"] = $keyVaultId
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'canonicalName')
        {
            $resource.properties["canonicalName"] = $canonicalName
        }

        if($PSBoundParameters.Keys -icontains 'pfxBlob')
        {
            $resource.properties["pfxBlob"] = $pfxBlob
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSwiftVirtualNetworkConnection
{
    [Alias('azure_native_web_webappswiftvirtualnetworkconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The Virtual Network subnet''s resource ID. This is the subnet that this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined first.)')]
        [string]
        $subnetResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='A flag that specifies if the scale unit this Web App is on supports Swift integration.)')]
        [bool]
        $swiftSupported,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSwiftVirtualNetworkConnection")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'subnetResourceId')
        {
            $resource.properties["subnetResourceId"] = $subnetResourceId
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'swiftSupported')
        {
            $resource.properties["swiftSupported"] = $swiftSupported
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppPremierAddOnSlot
{
    [Alias('azure_native_web_webapppremieraddonslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Premier add on Marketplace publisher.)')]
        [string]
        $marketplacePublisher,
        [parameter(mandatory=$False,HelpMessage='Premier add on Product.)')]
        [string]
        $product,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Add-on name.)')]
        [string]
        $premierAddOnName,
        [parameter(mandatory=$False,HelpMessage='Premier add on SKU.)')]
        [string]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Premier add on Marketplace offer.)')]
        [string]
        $marketplaceOffer,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Premier add on Vendor.)')]
        [string]
        $vendor,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppPremierAddOnSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'marketplacePublisher')
        {
            $resource.properties["marketplacePublisher"] = $marketplacePublisher
        }

        if($PSBoundParameters.Keys -icontains 'product')
        {
            $resource.properties["product"] = $product
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'premierAddOnName')
        {
            $resource.properties["premierAddOnName"] = $premierAddOnName
        }

        if($PSBoundParameters.Keys -icontains 'sku')
        {
            $resource.properties["sku"] = $sku
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'marketplaceOffer')
        {
            $resource.properties["marketplaceOffer"] = $marketplaceOffer
        }

        if($PSBoundParameters.Keys -icontains 'vendor')
        {
            $resource.properties["vendor"] = $vendor
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebAppServicePlanRouteForVnet
{
    [Alias('azure_native_web_appserviceplanrouteforvnet')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Virtual Network route.)')]
        [string]
        $routeName,
        [parameter(mandatory=$False,HelpMessage='The ending address for this route. If the start address is specified in CIDR notation, this must be omitted.)')]
        [string]
        $endAddress,
        [parameter(mandatory=$False,HelpMessage='The type of route this is:
DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
INHERITED - Routes inherited from the real Virtual Network routes
STATIC - Static route set on the app only

These values will be used for syncing an app''s routes with those from a Virtual Network.)'
)]
        [string]
        [ValidateSet('DEFAULT', 'INHERITED', 'STATIC')]
        $routeType,
        [parameter(mandatory=$False,HelpMessage='Name of the Virtual Network.)')]
        [string]
        $vnetName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The starting address for this route. This may also include a CIDR notation, in which case the end address must not be specified.)')]
        [string]
        $startAddress,
        [parameter(mandatory=$False,HelpMessage='Name of the App Service plan.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:AppServicePlanRouteForVnet")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["vnetName"] = $vnetName

        if($PSBoundParameters.Keys -icontains 'routeName')
        {
            $resource.properties["routeName"] = $routeName
        }

        if($PSBoundParameters.Keys -icontains 'endAddress')
        {
            $resource.properties["endAddress"] = $endAddress
        }

        if($PSBoundParameters.Keys -icontains 'routeType')
        {
            $resource.properties["routeType"] = $routeType
        }

        if($PSBoundParameters.Keys -icontains 'startAddress')
        {
            $resource.properties["startAddress"] = $startAddress
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppApplicationSettingsSlot
{
    [Alias('azure_native_web_webappapplicationsettingsslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the application settings for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Settings.)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppApplicationSettingsSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSiteExtension
{
    [Alias('azure_native_web_webappsiteextension')]
    param (
        [parameter(mandatory=$False,HelpMessage='Site extension name.)')]
        [string]
        $siteExtensionId,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSiteExtension")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'siteExtensionId')
        {
            $resource.properties["siteExtensionId"] = $siteExtensionId
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSiteExtensionSlot
{
    [Alias('azure_native_web_webappsiteextensionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Site extension name.)')]
        [string]
        $siteExtensionId,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API uses the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSiteExtensionSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'siteExtensionId')
        {
            $resource.properties["siteExtensionId"] = $siteExtensionId
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class KubeEnvironmentProfile
{
    [string] $id
}
function New-AzureNativeTypeWebKubeEnvironmentProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource ID of the Kubernetes Environment.)')]
        [string]
        $id
    )

    process
    {
        return $([KubeEnvironmentProfile]$PSBoundParameters)
    }
}
class HostingEnvironmentProfile
{
    [string] $id
}
function New-AzureNativeTypeWebHostingEnvironmentProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource ID of the App Service Environment.)')]
        [string]
        $id
    )

    process
    {
        return $([HostingEnvironmentProfile]$PSBoundParameters)
    }
}
class SkuCapacity
{
    [int] $minimum
    [int] $maximum
    [int] $default
    [int] $elasticMaximum
    [string] $scaleType
}
function New-AzureNativeTypeWebSkuCapacity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Minimum number of workers for this App Service plan SKU.)')]
        [int]
        $minimum,
        [parameter(mandatory=$False,HelpMessage='Maximum number of workers for this App Service plan SKU.)')]
        [int]
        $maximum,
        [parameter(mandatory=$False,HelpMessage='Default number of workers for this App Service plan SKU.)')]
        [int]
        $default,
        [parameter(mandatory=$False,HelpMessage='Maximum number of Elastic workers for this App Service plan SKU.)')]
        [int]
        $elasticMaximum,
        [parameter(mandatory=$False,HelpMessage='Available scale configurations for an App Service plan.)')]
        [string]
        $scaleType
    )

    process
    {
        return $([SkuCapacity]$PSBoundParameters)
    }
}
class Capability
{
    [string] $name
    [string] $reason
    [string] $value
}
function New-AzureNativeTypeWebCapability
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the SKU capability.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Reason of the SKU capability.)')]
        [string]
        $reason,
        [parameter(mandatory=$False,HelpMessage='Value of the SKU capability.)')]
        [string]
        $value
    )

    process
    {
        return $([Capability]$PSBoundParameters)
    }
}
class SkuDescription
{
    [string[]] $locations
    [string] $tier
    [SkuCapacity] $skuCapacity
    [Capability[]] $capabilities
    [int] $capacity
    [string] $name
    [string] $family
    [string] $size
}
function New-AzureNativeTypeWebSkuDescription
{
    param (
        [parameter(mandatory=$False,HelpMessage='Locations of the SKU.)')]
        [string[]]
        $locations,
        [parameter(mandatory=$False,HelpMessage='Service tier of the resource SKU.)')]
        [string]
        $tier,
        [parameter(mandatory=$False,HelpMessage='Min, max, and default scale values of the SKU.)')]
        [SkuCapacity]
        $skuCapacity,
        [parameter(mandatory=$False,HelpMessage='Capabilities of the SKU, e.g., is traffic manager enabled?)')]
        $capabilities,
        [parameter(mandatory=$False,HelpMessage='Current number of instances assigned to the resource.)')]
        [int]
        $capacity,
        [parameter(mandatory=$False,HelpMessage='Name of the resource SKU.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Family code of the resource SKU.)')]
        [string]
        $family,
        [parameter(mandatory=$False,HelpMessage='Size specifier of the resource SKU.)')]
        [string]
        $size
    )

    process
    {
        return $([SkuDescription]$PSBoundParameters)
    }
}
function New-AzureNativeWebAppServicePlan
{
    [Alias('azure_native_web_appserviceplan')]
    param (
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='If <code>true</code>, this App Service Plan owns spot instances.)')]
        [bool]
        $isSpot,
        [parameter(mandatory=$False,HelpMessage='Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.)')]
        [bool]
        $isXenon,
        [parameter(mandatory=$False,HelpMessage='Specification for the Kubernetes Environment to use for the App Service plan.)')]
        [KubeEnvironmentProfile]
        $kubeEnvironmentProfile,
        [parameter(mandatory=$False,HelpMessage='Specification for the App Service Environment to use for the App Service plan.)')]
        [HostingEnvironmentProfile]
        $hostingEnvironmentProfile,
        [parameter(mandatory=$False,HelpMessage='Scaling worker count.)')]
        [int]
        $targetWorkerCount,
        [parameter(mandatory=$False,HelpMessage='The time when the server farm free offer expires.)')]
        [string]
        $freeOfferExpirationTime,
        [parameter(mandatory=$False,HelpMessage='If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.)')]
        [bool]
        $hyperV,
        [parameter(mandatory=$False,HelpMessage='Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan)')]
        [int]
        $maximumElasticWorkerCount,
        [parameter(mandatory=$False,HelpMessage='If Linux app service plan <code>true</code>, <code>false</code> otherwise.)')]
        [bool]
        $reserved,
        [parameter(mandatory=$False,HelpMessage='Description of a SKU for a scalable resource.)')]
        [SkuDescription]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Scaling worker size ID.)')]
        [int]
        $targetWorkerSizeId,
        [parameter(mandatory=$False,HelpMessage='Target worker tier assigned to the App Service plan.)')]
        [string]
        $workerTierName,
        [parameter(mandatory=$False,HelpMessage='Name of the App Service plan.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The time when the server farm expires. Valid only if it is a spot server farm.)')]
        [string]
        $spotExpirationTime,
        [parameter(mandatory=$False,HelpMessage='If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.)'
)]
        [bool]
        $perSiteScaling,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:AppServicePlan")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'isSpot')
        {
            $resource.properties["isSpot"] = $isSpot
        }

        if($PSBoundParameters.Keys -icontains 'isXenon')
        {
            $resource.properties["isXenon"] = $isXenon
        }

        if($PSBoundParameters.Keys -icontains 'kubeEnvironmentProfile')
        {
            $resource.properties["kubeEnvironmentProfile"] = $kubeEnvironmentProfile
        }

        if($PSBoundParameters.Keys -icontains 'hostingEnvironmentProfile')
        {
            $resource.properties["hostingEnvironmentProfile"] = $hostingEnvironmentProfile
        }

        if($PSBoundParameters.Keys -icontains 'targetWorkerCount')
        {
            $resource.properties["targetWorkerCount"] = $targetWorkerCount
        }

        if($PSBoundParameters.Keys -icontains 'freeOfferExpirationTime')
        {
            $resource.properties["freeOfferExpirationTime"] = $freeOfferExpirationTime
        }

        if($PSBoundParameters.Keys -icontains 'hyperV')
        {
            $resource.properties["hyperV"] = $hyperV
        }

        if($PSBoundParameters.Keys -icontains 'maximumElasticWorkerCount')
        {
            $resource.properties["maximumElasticWorkerCount"] = $maximumElasticWorkerCount
        }

        if($PSBoundParameters.Keys -icontains 'reserved')
        {
            $resource.properties["reserved"] = $reserved
        }

        if($PSBoundParameters.Keys -icontains 'sku')
        {
            $resource.properties["sku"] = $sku
        }

        if($PSBoundParameters.Keys -icontains 'targetWorkerSizeId')
        {
            $resource.properties["targetWorkerSizeId"] = $targetWorkerSizeId
        }

        if($PSBoundParameters.Keys -icontains 'workerTierName')
        {
            $resource.properties["workerTierName"] = $workerTierName
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'spotExpirationTime')
        {
            $resource.properties["spotExpirationTime"] = $spotExpirationTime
        }

        if($PSBoundParameters.Keys -icontains 'perSiteScaling')
        {
            $resource.properties["perSiteScaling"] = $perSiteScaling
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ConnectionGatewayReference
{
    [string] $id
    [string] $type
    [string] $location
    [string] $name
}
function New-AzureNativeTypeWebConnectionGatewayReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource reference id)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Resource reference type)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Resource reference location)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Resource reference name)')]
        [string]
        $name
    )

    process
    {
        return $([ConnectionGatewayReference]$PSBoundParameters)
    }
}
class ConnectionGatewayDefinitionProperties
{
    [string] $description
    [string] $backendUri
    [string] $displayName
    [object] $status
    [string] $machineName
    [ConnectionGatewayReference] $connectionGatewayInstallation
    [string[]] $contactInformation
}
function New-AzureNativeTypeWebConnectionGatewayDefinitionProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The gateway description)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The URI of the backend)')]
        [string]
        $backendUri,
        [parameter(mandatory=$False,HelpMessage='The gateway display name)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The gateway status)')]
        $status,
        [parameter(mandatory=$False,HelpMessage='The machine name of the gateway)')]
        [string]
        $machineName,
        [parameter(mandatory=$False,HelpMessage='The gateway installation reference)')]
        [ConnectionGatewayReference]
        $connectionGatewayInstallation,
        [parameter(mandatory=$False,HelpMessage='The gateway admin)')]
        [string[]]
        $contactInformation
    )

    process
    {
        return $([ConnectionGatewayDefinitionProperties]$PSBoundParameters)
    }
}
function New-AzureNativeWebConnectionGateway
{
    [Alias('azure_native_web_connectiongateway')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The connection gateway name)')]
        [string]
        $connectionGatewayName,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage=')')]
        [ConnectionGatewayDefinitionProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:ConnectionGateway")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'connectionGatewayName')
        {
            $resource.properties["connectionGatewayName"] = $connectionGatewayName
        }

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $resource.properties["subscriptionId"] = $subscriptionId
        }

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ContainerResources
{
    [string] $memory
    [int] $cpu
}
function New-AzureNativeTypeWebContainerResources
{
    param (
        [parameter(mandatory=$False,HelpMessage='Required memory, e.g. "250Mb")')]
        [string]
        $memory,
        [parameter(mandatory=$False,HelpMessage='Required CPU in cores, e.g. 0.5)')]
        [int]
        $cpu
    )

    process
    {
        return $([ContainerResources]$PSBoundParameters)
    }
}
class EnvironmentVar
{
    [string] $value
    [string] $name
    [string] $secretRef
}
function New-AzureNativeTypeWebEnvironmentVar
{
    param (
        [parameter(mandatory=$False,HelpMessage='Non-secret environment variable value.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Environment variable name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the Container App secret from which to pull the environment variable value.)')]
        [string]
        $secretRef
    )

    process
    {
        return $([EnvironmentVar]$PSBoundParameters)
    }
}
class Container
{
    [string] $name
    [ContainerResources] $resources
    [string] $image
    [string[]] $args
    [string[]] $command
    [EnvironmentVar[]] $env
}
function New-AzureNativeTypeWebContainer
{
    param (
        [parameter(mandatory=$False,HelpMessage='Custom container name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Container resource requirements.)')]
        [ContainerResources]
        $resources,
        [parameter(mandatory=$False,HelpMessage='Container image tag.)')]
        [string]
        $image,
        [parameter(mandatory=$False,HelpMessage='Container start command arguments.)')]
        [string[]]
        $args,
        [parameter(mandatory=$False,HelpMessage='Container start command.)')]
        [string[]]
        $command,
        [parameter(mandatory=$False,HelpMessage='Container environment variables.)')]
        $env
    )

    process
    {
        return $([Container]$PSBoundParameters)
    }
}
class ScaleRuleAuth
{
    [string] $triggerParameter
    [string] $secretRef
}
function New-AzureNativeTypeWebScaleRuleAuth
{
    param (
        [parameter(mandatory=$False,HelpMessage='Trigger Parameter that uses the secret)')]
        [string]
        $triggerParameter,
        [parameter(mandatory=$False,HelpMessage='Name of the Container App secret from which to pull the auth params.)')]
        [string]
        $secretRef
    )

    process
    {
        return $([ScaleRuleAuth]$PSBoundParameters)
    }
}
class HttpScaleRule
{
    [object] $metadata
    [ScaleRuleAuth[]] $auth
}
function New-AzureNativeTypeWebHttpScaleRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Metadata properties to describe http scale rule.)')]
        [hashtable]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='Authentication secrets for the custom scale rule.)')]
        $auth
    )

    process
    {
        return $([HttpScaleRule]$PSBoundParameters)
    }
}
class CustomScaleRule
{
    [ScaleRuleAuth[]] $auth
    [string] $type
    [object] $metadata
}
function New-AzureNativeTypeWebCustomScaleRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Authentication secrets for the custom scale rule.)')]
        $auth,
        [parameter(mandatory=$False,HelpMessage='Type of the custom scale rule
eg: azure-servicebus, redis etc.)'
)]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Metadata properties to describe custom scale rule.)')]
        [hashtable]
        $metadata
    )

    process
    {
        return $([CustomScaleRule]$PSBoundParameters)
    }
}
class QueueScaleRule
{
    [ScaleRuleAuth[]] $auth
    [int] $queueLength
    [string] $queueName
}
function New-AzureNativeTypeWebQueueScaleRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Authentication secrets for the queue scale rule.)')]
        $auth,
        [parameter(mandatory=$False,HelpMessage='Queue length.)')]
        [int]
        $queueLength,
        [parameter(mandatory=$False,HelpMessage='Queue name.)')]
        [string]
        $queueName
    )

    process
    {
        return $([QueueScaleRule]$PSBoundParameters)
    }
}
class ScaleRule
{
    [string] $name
    [HttpScaleRule] $http
    [CustomScaleRule] $custom
    [QueueScaleRule] $azureQueue
}
function New-AzureNativeTypeWebScaleRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Scale Rule Name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='HTTP requests based scaling.)')]
        [HttpScaleRule]
        $http,
        [parameter(mandatory=$False,HelpMessage='Custom scale rule.)')]
        [CustomScaleRule]
        $custom,
        [parameter(mandatory=$False,HelpMessage='Azure Queue based scaling.)')]
        [QueueScaleRule]
        $azureQueue
    )

    process
    {
        return $([ScaleRule]$PSBoundParameters)
    }
}
class Scale
{
    [int] $maxReplicas
    [ScaleRule[]] $rules
    [int] $minReplicas
}
function New-AzureNativeTypeWebScale
{
    param (
        [parameter(mandatory=$False,HelpMessage='Optional. Maximum number of container replicas. Defaults to 10 if not set.)')]
        [int]
        $maxReplicas,
        [parameter(mandatory=$False,HelpMessage='Scaling rules.)')]
        $rules,
        [parameter(mandatory=$False,HelpMessage='Optional. Minimum number of container replicas.)')]
        [int]
        $minReplicas
    )

    process
    {
        return $([Scale]$PSBoundParameters)
    }
}
class DaprMetadata
{
    [string] $value
    [string] $name
    [string] $secretRef
}
function New-AzureNativeTypeWebDaprMetadata
{
    param (
        [parameter(mandatory=$False,HelpMessage='Metadata property value.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Metadata property name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the Container App secret from which to pull the metadata property value.)')]
        [string]
        $secretRef
    )

    process
    {
        return $([DaprMetadata]$PSBoundParameters)
    }
}
class DaprComponent
{
    [string] $version
    [string] $name
    [string] $type
    [DaprMetadata[]] $metadata
}
function New-AzureNativeTypeWebDaprComponent
{
    param (
        [parameter(mandatory=$False,HelpMessage='Component version)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='Component name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Component type)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Component metadata)')]
        $metadata
    )

    process
    {
        return $([DaprComponent]$PSBoundParameters)
    }
}
class Dapr
{
    [DaprComponent[]] $components
    [int] $appPort
    [bool] $enabled
    [string] $appId
}
function New-AzureNativeTypeWebDapr
{
    param (
        [parameter(mandatory=$False,HelpMessage='Collection of Dapr components)')]
        $components,
        [parameter(mandatory=$False,HelpMessage='Port on which the Dapr side car)')]
        [int]
        $appPort,
        [parameter(mandatory=$False,HelpMessage='Boolean indicating if the Dapr side car is enabled)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Dapr application identifier)')]
        [string]
        $appId
    )

    process
    {
        return $([Dapr]$PSBoundParameters)
    }
}
class Template
{
    [Container[]] $containers
    [Scale] $scale
    [Dapr] $dapr
    [string] $revisionSuffix
}
function New-AzureNativeTypeWebTemplate
{
    param (
        [parameter(mandatory=$False,HelpMessage='List of container definitions for the Container App.)')]
        $containers,
        [parameter(mandatory=$False,HelpMessage='Scaling properties for the Container App.)')]
        [Scale]
        $scale,
        [parameter(mandatory=$False,HelpMessage='Dapr configuration for the Container App.)')]
        [Dapr]
        $dapr,
        [parameter(mandatory=$False,HelpMessage='User friendly suffix that is appended to the revision name)')]
        [string]
        $revisionSuffix
    )

    process
    {
        return $([Template]$PSBoundParameters)
    }
}
class RegistryCredentials
{
    [string] $server
    [string] $passwordSecretRef
    [string] $username
}
function New-AzureNativeTypeWebRegistryCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='Container Registry Server)')]
        [string]
        $server,
        [parameter(mandatory=$False,HelpMessage='The name of the Secret that contains the registry login password)')]
        [string]
        $passwordSecretRef,
        [parameter(mandatory=$False,HelpMessage='Container Registry Username)')]
        [string]
        $username
    )

    process
    {
        return $([RegistryCredentials]$PSBoundParameters)
    }
}
class Secret
{
    [ValidateSet('multiple', 'single')]
    [string] $name
    [ValidateSet('multiple', 'single')]
    [string] $value
}
function New-AzureNativeTypeWebSecret
{
    param (
        [parameter(mandatory=$False,HelpMessage='Secret Name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Secret Value.)')]
        [string]
        $value
    )

    process
    {
        return $([Secret]$PSBoundParameters)
    }
}
class TrafficWeight
{
    [ValidateSet('multiple', 'single')]
    [string] $revisionName
    [ValidateSet('multiple', 'single')]
    [int] $weight
    [ValidateSet('multiple', 'single')]
    [bool] $latestRevision
}
function New-AzureNativeTypeWebTrafficWeight
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of a revision)')]
        [string]
        $revisionName,
        [parameter(mandatory=$False,HelpMessage='Traffic weight assigned to a revision)')]
        [int]
        $weight,
        [parameter(mandatory=$False,HelpMessage='Indicates that the traffic weight belongs to a latest stable revision)')]
        [bool]
        $latestRevision
    )

    process
    {
        return $([TrafficWeight]$PSBoundParameters)
    }
}
class Ingress
{
    [ValidateSet('multiple', 'single')]
    [TrafficWeight[]] $traffic
    [ValidateSet('multiple', 'single')]
    [int] $targetPort
    [ValidateSet('multiple', 'single')]
    [bool] $allowInsecure
    [ValidateSet('auto', 'http', 'http2')]
    [string] $transport
    [ValidateSet('auto', 'http', 'http2')]
    [bool] $external
}
function New-AzureNativeTypeWebIngress
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        $traffic,
        [parameter(mandatory=$False,HelpMessage='Target Port in containers for traffic from ingress)')]
        [int]
        $targetPort,
        [parameter(mandatory=$False,HelpMessage='Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections)')]
        [bool]
        $allowInsecure,
        [parameter(mandatory=$False,HelpMessage='Ingress transport protocol)')]
        [string]
        [ValidateSet('auto', 'http', 'http2')]
        $transport,
        [parameter(mandatory=$False,HelpMessage='Bool indicating if app exposes an external http endpoint)')]
        [bool]
        $external
    )

    process
    {
        return $([Ingress]$PSBoundParameters)
    }
}
class Configuration
{
    [RegistryCredentials[]] $registries
    [ValidateSet('multiple', 'single')]
    [string] $activeRevisionsMode
    [ValidateSet('multiple', 'single')]
    [Secret[]] $secrets
    [ValidateSet('multiple', 'single')]
    [Ingress] $ingress
}
function New-AzureNativeTypeWebConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Collection of private container registry credentials for containers used by the Container app)')]
        $registries,
        [parameter(mandatory=$False,HelpMessage='ActiveRevisionsMode controls how active revisions are handled for the Container app:
<list><item>Multiple: multiple revisions can be active. If no value if provided, this is the default</item><item>Single: Only one revision can be active at a time. Revision weights can not be used in this mode</item></list>)'
)]
        [string]
        [ValidateSet('multiple', 'single')]
        $activeRevisionsMode,
        [parameter(mandatory=$False,HelpMessage='Collection of secrets used by a Container app)')]
        $secrets,
        [parameter(mandatory=$False,HelpMessage='Ingress configurations.)')]
        [Ingress]
        $ingress
    )

    process
    {
        return $([Configuration]$PSBoundParameters)
    }
}
function New-AzureNativeWebContainerApp
{
    [Alias('azure_native_web_containerapp')]
    param (
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource ID of the Container App''s KubeEnvironment.)')]
        [string]
        $kubeEnvironmentId,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Container App versioned application definition.)')]
        [Template]
        $template,
        [parameter(mandatory=$False,HelpMessage='Name of the Container App.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Non versioned Container App configuration properties.)')]
        [Configuration]
        $configuration,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:ContainerApp")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'kubeEnvironmentId')
        {
            $resource.properties["kubeEnvironmentId"] = $kubeEnvironmentId
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'template')
        {
            $resource.properties["template"] = $template
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'configuration')
        {
            $resource.properties["configuration"] = $configuration
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppVnetConnection
{
    [Alias('azure_native_web_webappvnetconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='A certificate file (.cer) blob containing the public key of the private key used to authenticate a
Point-To-Site VPN connection.)'
)]
        [string]
        $certBlob,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Flag that is used to denote if this is VNET injection)')]
        [bool]
        $isSwift,
        [parameter(mandatory=$False,HelpMessage='DNS servers to be used by this Virtual Network. This should be a comma-separated list of IP addresses.)')]
        [string]
        $dnsServers,
        [parameter(mandatory=$False,HelpMessage='Name of an existing Virtual Network.)')]
        [string]
        $vnetName,
        [parameter(mandatory=$False,HelpMessage='The Virtual Network''s resource ID.)')]
        [string]
        $vnetResourceId,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppVnetConnection")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'certBlob')
        {
            $resource.properties["certBlob"] = $certBlob
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'isSwift')
        {
            $resource.properties["isSwift"] = $isSwift
        }

        if($PSBoundParameters.Keys -icontains 'dnsServers')
        {
            $resource.properties["dnsServers"] = $dnsServers
        }

        if($PSBoundParameters.Keys -icontains 'vnetName')
        {
            $resource.properties["vnetName"] = $vnetName
        }

        if($PSBoundParameters.Keys -icontains 'vnetResourceId')
        {
            $resource.properties["vnetResourceId"] = $vnetResourceId
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ExtendedLocation
{
    [string] $name
}
function New-AzureNativeTypeWebExtendedLocation
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of extended location.)')]
        [string]
        $name
    )

    process
    {
        return $([ExtendedLocation]$PSBoundParameters)
    }
}
class FrontEndConfiguration
{
    [ValidateSet('NodePort', 'LoadBalancer')]
    [object] $kind
}
function New-AzureNativeTypeWebFrontEndConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        $kind
    )

    process
    {
        return $([FrontEndConfiguration]$PSBoundParameters)
    }
}
class ArcConfiguration
{
    [FrontEndConfiguration] $frontEndServiceConfiguration
    [string] $kubeConfig
    [string] $artifactStorageNodeName
    [string] $artifactStorageClassName
    [ValidateSet('LocalNode', 'NetworkFileSystem')]
    [object] $artifactsStorageType
    [ValidateSet('LocalNode', 'NetworkFileSystem')]
    [string] $artifactStorageAccessMode
    [ValidateSet('LocalNode', 'NetworkFileSystem')]
    [string] $artifactStorageMountPath
}
function New-AzureNativeTypeWebArcConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [FrontEndConfiguration]
        $frontEndServiceConfiguration,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $kubeConfig,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $artifactStorageNodeName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $artifactStorageClassName,
        [parameter(mandatory=$False,HelpMessage=')')]
        $artifactsStorageType,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $artifactStorageAccessMode,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $artifactStorageMountPath
    )

    process
    {
        return $([ArcConfiguration]$PSBoundParameters)
    }
}
class LogAnalyticsConfiguration
{
    [string] $sharedKey
    [string] $customerId
}
function New-AzureNativeTypeWebLogAnalyticsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $sharedKey,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $customerId
    )

    process
    {
        return $([LogAnalyticsConfiguration]$PSBoundParameters)
    }
}
class AppLogsConfiguration
{
    [LogAnalyticsConfiguration] $logAnalyticsConfiguration
    [string] $destination
}
function New-AzureNativeTypeWebAppLogsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [LogAnalyticsConfiguration]
        $logAnalyticsConfiguration,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $destination
    )

    process
    {
        return $([AppLogsConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeWebKubeEnvironment
{
    [Alias('azure_native_web_kubeenvironment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the Kubernetes Environment.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Extended Location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Only visible within Vnet/Subnet)')]
        [bool]
        $internalLoadBalancerEnabled,
        [parameter(mandatory=$False,HelpMessage='Cluster configuration which determines the ARC cluster
components types. Eg: Choosing between BuildService kind,
FrontEnd Service ArtifactsStorageType etc.)'
)]
        [ArcConfiguration]
        $arcConfiguration,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Static IP of the KubeEnvironment)')]
        [string]
        $staticIp,
        [parameter(mandatory=$False,HelpMessage='Cluster configuration which enables the log daemon to export
app logs to a destination. Currently only "log-analytics" is
supported)'
)]
        [AppLogsConfiguration]
        $appLogsConfiguration,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $aksResourceID,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:KubeEnvironment")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'extendedLocation')
        {
            $resource.properties["extendedLocation"] = $extendedLocation
        }

        if($PSBoundParameters.Keys -icontains 'internalLoadBalancerEnabled')
        {
            $resource.properties["internalLoadBalancerEnabled"] = $internalLoadBalancerEnabled
        }

        if($PSBoundParameters.Keys -icontains 'arcConfiguration')
        {
            $resource.properties["arcConfiguration"] = $arcConfiguration
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'staticIp')
        {
            $resource.properties["staticIp"] = $staticIp
        }

        if($PSBoundParameters.Keys -icontains 'appLogsConfiguration')
        {
            $resource.properties["appLogsConfiguration"] = $appLogsConfiguration
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'aksResourceID')
        {
            $resource.properties["aksResourceID"] = $aksResourceID
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppDomainOwnershipIdentifier
{
    [Alias('azure_native_web_webappdomainownershipidentifier')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of domain ownership identifier.)')]
        [string]
        $domainOwnershipIdentifierName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='String representation of the identity.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppDomainOwnershipIdentifier")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'domainOwnershipIdentifierName')
        {
            $resource.properties["domainOwnershipIdentifierName"] = $domainOwnershipIdentifierName
        }

        if($PSBoundParameters.Keys -icontains 'value')
        {
            $resource.properties["value"] = $value
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppRelayServiceConnection
{
    [Alias('azure_native_web_webapprelayserviceconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $resourceConnectionString,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $resourceType,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $biztalkUri,
        [parameter(mandatory=$False,HelpMessage=')')]
        [int]
        $port,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $hostname,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $entityConnectionString,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $entityName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppRelayServiceConnection")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'resourceConnectionString')
        {
            $resource.properties["resourceConnectionString"] = $resourceConnectionString
        }

        if($PSBoundParameters.Keys -icontains 'resourceType')
        {
            $resource.properties["resourceType"] = $resourceType
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'biztalkUri')
        {
            $resource.properties["biztalkUri"] = $biztalkUri
        }

        if($PSBoundParameters.Keys -icontains 'port')
        {
            $resource.properties["port"] = $port
        }

        if($PSBoundParameters.Keys -icontains 'hostname')
        {
            $resource.properties["hostname"] = $hostname
        }

        if($PSBoundParameters.Keys -icontains 'entityConnectionString')
        {
            $resource.properties["entityConnectionString"] = $entityConnectionString
        }

        if($PSBoundParameters.Keys -icontains 'entityName')
        {
            $resource.properties["entityName"] = $entityName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ManagedServiceIdentity
{
    [ValidateSet('SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None')]
    [object] $type
    [ValidateSet('SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None')]
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeWebManagedServiceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of managed service identity.)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName})')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([ManagedServiceIdentity]$PSBoundParameters)
    }
}
class CloningInfo
{
    [string] $trafficManagerProfileId
    [bool] $cloneSourceControl
    [bool] $cloneCustomHostNames
    [string] $sourceWebAppLocation
    [bool] $overwrite
    [string] $sourceWebAppId
    [string] $hostingEnvironment
    [string] $correlationId
    [string] $trafficManagerProfileName
    [bool] $configureLoadBalancing
    [object] $appSettingsOverrides
}
function New-AzureNativeTypeWebCloningInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form
/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.)'
)]
        [string]
        $trafficManagerProfileId,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to clone source control from source app; otherwise, <code>false</code>.)')]
        [bool]
        $cloneSourceControl,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>.)')]
        [bool]
        $cloneCustomHostNames,
        [parameter(mandatory=$False,HelpMessage='Location of source app ex: West US or North Europe)')]
        [string]
        $sourceWebAppLocation,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to overwrite destination app; otherwise, <code>false</code>.)')]
        [bool]
        $overwrite,
        [parameter(mandatory=$False,HelpMessage='ARM resource ID of the source app. App resource ID is of the form
/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and
/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots.)'
)]
        [string]
        $sourceWebAppId,
        [parameter(mandatory=$False,HelpMessage='App Service Environment.)')]
        [string]
        $hostingEnvironment,
        [parameter(mandatory=$False,HelpMessage='Correlation ID of cloning operation. This ID ties multiple cloning operations
together to use the same snapshot.)'
)]
        [string]
        $correlationId,
        [parameter(mandatory=$False,HelpMessage='Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist.)')]
        [string]
        $trafficManagerProfileName,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to configure load balancing for source and destination app.)')]
        [bool]
        $configureLoadBalancing,
        [parameter(mandatory=$False,HelpMessage='Application setting overrides for cloned app. If specified, these settings override the settings cloned
from source app. Otherwise, application settings from source app are retained.)'
)]
        [hashtable]
        $appSettingsOverrides
    )

    process
    {
        return $([CloningInfo]$PSBoundParameters)
    }
}
class IpSecurityRestriction
{
    [string] $subnetMask
    [string] $action
    [int] $subnetTrafficTag
    [int] $vnetTrafficTag
    [int] $priority
    [string] $vnetSubnetResourceId
    [object] $headers
    [ValidateSet('Default', 'XffProxy', 'ServiceTag')]
    [string] $tag
    [ValidateSet('Default', 'XffProxy', 'ServiceTag')]
    [string] $description
    [ValidateSet('Default', 'XffProxy', 'ServiceTag')]
    [string] $name
    [ValidateSet('Default', 'XffProxy', 'ServiceTag')]
    [string] $ipAddress
}
function New-AzureNativeTypeWebIpSecurityRestriction
{
    param (
        [parameter(mandatory=$False,HelpMessage='Subnet mask for the range of IP addresses the restriction is valid for.)')]
        [string]
        $subnetMask,
        [parameter(mandatory=$False,HelpMessage='Allow or Deny access for this IP range.)')]
        [string]
        $action,
        [parameter(mandatory=$False,HelpMessage='(internal) Subnet traffic tag)')]
        [int]
        $subnetTrafficTag,
        [parameter(mandatory=$False,HelpMessage='(internal) Vnet traffic tag)')]
        [int]
        $vnetTrafficTag,
        [parameter(mandatory=$False,HelpMessage='Priority of IP restriction rule.)')]
        [int]
        $priority,
        [parameter(mandatory=$False,HelpMessage='Virtual network resource id)')]
        [string]
        $vnetSubnetResourceId,
        [parameter(mandatory=$False,HelpMessage='IP restriction rule headers.
X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).
The matching logic is ..
- If the property is null or empty (default), all hosts(or lack of) are allowed.
- A value is compared using ordinal-ignore-case (excluding port number).
- Subdomain wildcards are permitted but don''t match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com
 but not the root domain contoso.com or multi-level foo.bar.contoso.com
- Unicode host names are allowed but are converted to Punycode for matching.

X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).
The matching logic is ..
- If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed.
- If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property.

X-Azure-FDID and X-FD-HealthProbe.
The matching logic is exact match.)'
)]
        [object]
        $headers,
        [parameter(mandatory=$False,HelpMessage='Defines what this IP filter will be used for. This is to support IP filtering on proxies.)')]
        [string]
        [ValidateSet('Default', 'XffProxy', 'ServiceTag')]
        $tag,
        [parameter(mandatory=$False,HelpMessage='IP restriction rule description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='IP restriction rule name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='IP address the security restriction is valid for.
It can be in form of pure ipv4 address (required SubnetMask property) or
CIDR notation such as ipv4/mask (leading bit match). For CIDR,
SubnetMask property must not be specified.)'
)]
        [string]
        $ipAddress
    )

    process
    {
        return $([IpSecurityRestriction]$PSBoundParameters)
    }
}
class ApiManagementConfig
{
    [string] $id
}
function New-AzureNativeTypeWebApiManagementConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='APIM-Api Identifier.)')]
        [string]
        $id
    )

    process
    {
        return $([ApiManagementConfig]$PSBoundParameters)
    }
}
class HandlerMapping
{
    [string] $scriptProcessor
    [string] $arguments
    [string] $extension
}
function New-AzureNativeTypeWebHandlerMapping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The absolute path to the FastCGI application.)')]
        [string]
        $scriptProcessor,
        [parameter(mandatory=$False,HelpMessage='Command-line arguments to be passed to the script processor.)')]
        [string]
        $arguments,
        [parameter(mandatory=$False,HelpMessage='Requests with this extension will be handled using the specified FastCGI application.)')]
        [string]
        $extension
    )

    process
    {
        return $([HandlerMapping]$PSBoundParameters)
    }
}
class CorsSettings
{
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string[]] $allowedOrigins
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [bool] $supportCredentials
}
function New-AzureNativeTypeWebCorsSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the list of origins that should be allowed to make cross-origin
calls (for example: http://example.com:12345). Use "*" to allow all.)'
)]
        [string[]]
        $allowedOrigins,
        [parameter(mandatory=$False,HelpMessage='Gets or sets whether CORS requests with credentials are allowed. See
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials
for more details.)'
)]
        [bool]
        $supportCredentials
    )

    process
    {
        return $([CorsSettings]$PSBoundParameters)
    }
}
class ApiDefinitionInfo
{
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $url
}
function New-AzureNativeTypeWebApiDefinitionInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The URL of the API definition.)')]
        [string]
        $url
    )

    process
    {
        return $([ApiDefinitionInfo]$PSBoundParameters)
    }
}
class PushSettings
{
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $tagsRequiringAuth
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [bool] $isPushEnabled
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $dynamicTagsJson
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $kind
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $tagWhitelistJson
}
function New-AzureNativeTypeWebPushSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.
Tags can consist of alphanumeric characters and the following:
''_'', ''@'', ''#'', ''.'', '':'', ''-''.
Validation should be performed at the PushRequestHandler.)'
)]
        [string]
        $tagsRequiringAuth,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a flag indicating whether the Push endpoint is enabled.)')]
        [bool]
        $isPushEnabled,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint.)')]
        [string]
        $dynamicTagsJson,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint.)')]
        [string]
        $tagWhitelistJson
    )

    process
    {
        return $([PushSettings]$PSBoundParameters)
    }
}
class StatusCodesRangeBasedTrigger
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $statusCodes
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $count
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $path
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $timeInterval
}
function New-AzureNativeTypeWebStatusCodesRangeBasedTrigger
{
    param (
        [parameter(mandatory=$False,HelpMessage='HTTP status code.)')]
        [string]
        $statusCodes,
        [parameter(mandatory=$False,HelpMessage='Request Count.)')]
        [int]
        $count,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $path,
        [parameter(mandatory=$False,HelpMessage='Time interval.)')]
        [string]
        $timeInterval
    )

    process
    {
        return $([StatusCodesRangeBasedTrigger]$PSBoundParameters)
    }
}
class SlowRequestsBasedTrigger
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $timeTaken
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $count
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $path
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $timeInterval
}
function New-AzureNativeTypeWebSlowRequestsBasedTrigger
{
    param (
        [parameter(mandatory=$False,HelpMessage='Time taken.)')]
        [string]
        $timeTaken,
        [parameter(mandatory=$False,HelpMessage='Request Count.)')]
        [int]
        $count,
        [parameter(mandatory=$False,HelpMessage='Request Path.)')]
        [string]
        $path,
        [parameter(mandatory=$False,HelpMessage='Time interval.)')]
        [string]
        $timeInterval
    )

    process
    {
        return $([SlowRequestsBasedTrigger]$PSBoundParameters)
    }
}
class StatusCodesBasedTrigger
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $timeInterval
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $subStatus
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $path
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $status
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $win32Status
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $count
}
function New-AzureNativeTypeWebStatusCodesBasedTrigger
{
    param (
        [parameter(mandatory=$False,HelpMessage='Time interval.)')]
        [string]
        $timeInterval,
        [parameter(mandatory=$False,HelpMessage='Request Sub Status.)')]
        [int]
        $subStatus,
        [parameter(mandatory=$False,HelpMessage='Request Path)')]
        [string]
        $path,
        [parameter(mandatory=$False,HelpMessage='HTTP status code.)')]
        [int]
        $status,
        [parameter(mandatory=$False,HelpMessage='Win32 error code.)')]
        [int]
        $win32Status,
        [parameter(mandatory=$False,HelpMessage='Request Count.)')]
        [int]
        $count
    )

    process
    {
        return $([StatusCodesBasedTrigger]$PSBoundParameters)
    }
}
class RequestsBasedTrigger
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $count
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $timeInterval
}
function New-AzureNativeTypeWebRequestsBasedTrigger
{
    param (
        [parameter(mandatory=$False,HelpMessage='Request Count.)')]
        [int]
        $count,
        [parameter(mandatory=$False,HelpMessage='Time interval.)')]
        [string]
        $timeInterval
    )

    process
    {
        return $([RequestsBasedTrigger]$PSBoundParameters)
    }
}
class AutoHealTriggers
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [StatusCodesRangeBasedTrigger[]] $statusCodesRange
    [ValidateSet('1.0', '1.1', '1.2')]
    [SlowRequestsBasedTrigger] $slowRequests
    [ValidateSet('1.0', '1.1', '1.2')]
    [StatusCodesBasedTrigger[]] $statusCodes
    [ValidateSet('1.0', '1.1', '1.2')]
    [RequestsBasedTrigger] $requests
    [ValidateSet('1.0', '1.1', '1.2')]
    [SlowRequestsBasedTrigger[]] $slowRequestsWithPath
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $privateBytesInKB
}
function New-AzureNativeTypeWebAutoHealTriggers
{
    param (
        [parameter(mandatory=$False,HelpMessage='A rule based on status codes ranges.)')]
        $statusCodesRange,
        [parameter(mandatory=$False,HelpMessage='A rule based on request execution time.)')]
        [SlowRequestsBasedTrigger]
        $slowRequests,
        [parameter(mandatory=$False,HelpMessage='A rule based on status codes.)')]
        $statusCodes,
        [parameter(mandatory=$False,HelpMessage='A rule based on total requests.)')]
        [RequestsBasedTrigger]
        $requests,
        [parameter(mandatory=$False,HelpMessage='A rule based on multiple Slow Requests Rule with path)')]
        $slowRequestsWithPath,
        [parameter(mandatory=$False,HelpMessage='A rule based on private bytes.)')]
        [int]
        $privateBytesInKB
    )

    process
    {
        return $([AutoHealTriggers]$PSBoundParameters)
    }
}
class AutoHealCustomAction
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $exe
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $parameters
}
function New-AzureNativeTypeWebAutoHealCustomAction
{
    param (
        [parameter(mandatory=$False,HelpMessage='Executable to be run.)')]
        [string]
        $exe,
        [parameter(mandatory=$False,HelpMessage='Parameters for the executable.)')]
        [string]
        $parameters
    )

    process
    {
        return $([AutoHealCustomAction]$PSBoundParameters)
    }
}
class AutoHealActions
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [AutoHealCustomAction] $customAction
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $minProcessExecutionTime
    [ValidateSet('Recycle', 'LogEvent', 'CustomAction')]
    [object] $actionType
}
function New-AzureNativeTypeWebAutoHealActions
{
    param (
        [parameter(mandatory=$False,HelpMessage='Custom action to be taken.)')]
        [AutoHealCustomAction]
        $customAction,
        [parameter(mandatory=$False,HelpMessage='Minimum time the process must execute
before taking the action)'
)]
        [string]
        $minProcessExecutionTime,
        [parameter(mandatory=$False,HelpMessage='Predefined action to be taken.)')]
        $actionType
    )

    process
    {
        return $([AutoHealActions]$PSBoundParameters)
    }
}
class AutoHealRules
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [AutoHealTriggers] $triggers
    [ValidateSet('1.0', '1.1', '1.2')]
    [AutoHealActions] $actions
}
function New-AzureNativeTypeWebAutoHealRules
{
    param (
        [parameter(mandatory=$False,HelpMessage='Conditions that describe when to execute the auto-heal actions.)')]
        [AutoHealTriggers]
        $triggers,
        [parameter(mandatory=$False,HelpMessage='Actions to be executed when a rule is triggered.)')]
        [AutoHealActions]
        $actions
    )

    process
    {
        return $([AutoHealRules]$PSBoundParameters)
    }
}
class ConnStringInfo
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $connectionString
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $name
    [ValidateSet('MySql', 'SQLServer', 'SQLAzure', 'Custom', 'NotificationHub', 'ServiceBus', 'EventHub', 'ApiHub', 'DocDb', 'RedisCache', 'PostgreSQL')]
    [object] $type
}
function New-AzureNativeTypeWebConnStringInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='Connection string value.)')]
        [string]
        $connectionString,
        [parameter(mandatory=$False,HelpMessage='Name of connection string.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Type of database.)')]
        $type
    )

    process
    {
        return $([ConnStringInfo]$PSBoundParameters)
    }
}
class VirtualDirectory
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $physicalPath
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $virtualPath
}
function New-AzureNativeTypeWebVirtualDirectory
{
    param (
        [parameter(mandatory=$False,HelpMessage='Physical path.)')]
        [string]
        $physicalPath,
        [parameter(mandatory=$False,HelpMessage='Path to virtual application.)')]
        [string]
        $virtualPath
    )

    process
    {
        return $([VirtualDirectory]$PSBoundParameters)
    }
}
class VirtualApplication
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $physicalPath
    [ValidateSet('1.0', '1.1', '1.2')]
    [bool] $preloadEnabled
    [ValidateSet('1.0', '1.1', '1.2')]
    [VirtualDirectory[]] $virtualDirectories
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $virtualPath
}
function New-AzureNativeTypeWebVirtualApplication
{
    param (
        [parameter(mandatory=$False,HelpMessage='Physical path.)')]
        [string]
        $physicalPath,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if preloading is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $preloadEnabled,
        [parameter(mandatory=$False,HelpMessage='Virtual directories for virtual application.)')]
        $virtualDirectories,
        [parameter(mandatory=$False,HelpMessage='Virtual path.)')]
        [string]
        $virtualPath
    )

    process
    {
        return $([VirtualApplication]$PSBoundParameters)
    }
}
class RampUpRule
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $changeDecisionCallbackUrl
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $maxReroutePercentage
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $changeIntervalInMinutes
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $minReroutePercentage
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $reroutePercentage
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $name
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $changeStep
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $actionHostName
}
function New-AzureNativeTypeWebRampUpRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts.
https://www.siteextensions.net/packages/TiPCallback/)'
)]
        [string]
        $changeDecisionCallbackUrl,
        [parameter(mandatory=$False,HelpMessage='Specifies upper boundary below which ReroutePercentage will stay.)')]
        [int]
        $maxReroutePercentage,
        [parameter(mandatory=$False,HelpMessage='Specifies interval in minutes to reevaluate ReroutePercentage.)')]
        [int]
        $changeIntervalInMinutes,
        [parameter(mandatory=$False,HelpMessage='Specifies lower boundary above which ReroutePercentage will stay.)')]
        [int]
        $minReroutePercentage,
        [parameter(mandatory=$False,HelpMessage='Percentage of the traffic which will be redirected to <code>ActionHostName</code>.)')]
        [int]
        $reroutePercentage,
        [parameter(mandatory=$False,HelpMessage='Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches \n<code>MinReroutePercentage</code> or
<code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in <code>ChangeIntervalInMinutes</code>.\nCustom decision algorithm
can be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>.)'
)]
        [int]
        $changeStep,
        [parameter(mandatory=$False,HelpMessage='Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net.)')]
        [string]
        $actionHostName
    )

    process
    {
        return $([RampUpRule]$PSBoundParameters)
    }
}
class Experiments
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [RampUpRule[]] $rampUpRules
}
function New-AzureNativeTypeWebExperiments
{
    param (
        [parameter(mandatory=$False,HelpMessage='List of ramp-up rules.)')]
        $rampUpRules
    )

    process
    {
        return $([Experiments]$PSBoundParameters)
    }
}
class NameValuePair
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $name
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $value
}
function New-AzureNativeTypeWebNameValuePair
{
    param (
        [parameter(mandatory=$False,HelpMessage='Pair name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Pair value.)')]
        [string]
        $value
    )

    process
    {
        return $([NameValuePair]$PSBoundParameters)
    }
}
class SiteLimits
{
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $maxDiskSizeInMb
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $maxPercentageCpu
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $maxMemoryInMb
}
function New-AzureNativeTypeWebSiteLimits
{
    param (
        [parameter(mandatory=$False,HelpMessage='Maximum allowed disk size usage in MB.)')]
        [int]
        $maxDiskSizeInMb,
        [parameter(mandatory=$False,HelpMessage='Maximum allowed CPU usage percentage.)')]
        [int]
        $maxPercentageCpu,
        [parameter(mandatory=$False,HelpMessage='Maximum allowed memory usage in MB.)')]
        [int]
        $maxMemoryInMb
    )

    process
    {
        return $([SiteLimits]$PSBoundParameters)
    }
}
class SiteConfig
{
    [string] $publishingUsername
    [string] $keyVaultReferenceIdentity
    [string] $documentRoot
    [int] $vnetPrivatePortsCount
    [string] $windowsFxVersion
    [bool] $scmIpSecurityRestrictionsUseMain
    [bool] $functionsRuntimeScaleMonitoringEnabled
    [string] $healthCheckPath
    [int] $xManagedServiceIdentityId
    [bool] $acrUseManagedIdentityCreds
    [IpSecurityRestriction[]] $scmIpSecurityRestrictions
    [ApiManagementConfig] $apiManagementConfig
    [string] $acrUserManagedIdentityID
    [string] $nodeVersion
    [string] $pythonVersion
    [HandlerMapping[]] $handlerMappings
    [string] $javaContainerVersion
    [bool] $httpLoggingEnabled
    [bool] $http20Enabled
    [ValidateSet('Integrated', 'Classic')]
    [object] $managedPipelineMode
    [ValidateSet('Integrated', 'Classic')]
    [bool] $requestTracingEnabled
    [ValidateSet('Integrated', 'Classic')]
    [int] $logsDirectorySizeLimit
    [ValidateSet('Integrated', 'Classic')]
    [string] $publicNetworkAccess
    [ValidateSet('Integrated', 'Classic')]
    [string] $javaContainer
    [ValidateSet('Integrated', 'Classic')]
    [string] $netFrameworkVersion
    [ValidateSet('Integrated', 'Classic')]
    [bool] $use32BitWorkerProcess
    [ValidateSet('Integrated', 'Classic')]
    [int] $numberOfWorkers
    [ValidateSet('AllAllowed', 'FtpsOnly', 'Disabled')]
    [string] $ftpsState
    [ValidateSet('AllAllowed', 'FtpsOnly', 'Disabled')]
    [object] $azureStorageAccounts
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $scmType
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [bool] $alwaysOn
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [int] $managedServiceIdentityId
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [CorsSettings] $cors
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [ApiDefinitionInfo] $apiDefinition
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [PushSettings] $push
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $websiteTimeZone
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string[]] $defaultDocuments
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [bool] $localMySqlEnabled
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [int] $functionAppScaleLimit
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [int] $preWarmedInstanceCount
    [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
    [string] $appCommandLine
    [ValidateSet('WeightedRoundRobin', 'LeastRequests', 'LeastResponseTime', 'WeightedTotalTraffic', 'RequestHash', 'PerSiteRoundRobin')]
    [object] $loadBalancing
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $scmMinTlsVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [AutoHealRules] $autoHealRules
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $tracingOptions
    [ValidateSet('1.0', '1.1', '1.2')]
    [bool] $autoHealEnabled
    [ValidateSet('1.0', '1.1', '1.2')]
    [bool] $vnetRouteAllEnabled
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $autoSwapSlotName
    [ValidateSet('1.0', '1.1', '1.2')]
    [bool] $detailedErrorLoggingEnabled
    [ValidateSet('1.0', '1.1', '1.2')]
    [ConnStringInfo[]] $connectionStrings
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $vnetName
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $javaVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $minTlsVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [bool] $remoteDebuggingEnabled
    [ValidateSet('1.0', '1.1', '1.2')]
    [bool] $webSocketsEnabled
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $linuxFxVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [VirtualApplication[]] $virtualApplications
    [ValidateSet('1.0', '1.1', '1.2')]
    [Experiments] $experiments
    [ValidateSet('1.0', '1.1', '1.2')]
    [NameValuePair[]] $appSettings
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $phpVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [IpSecurityRestriction[]] $ipSecurityRestrictions
    [ValidateSet('1.0', '1.1', '1.2')]
    [int] $minimumElasticInstanceCount
    [ValidateSet('1.0', '1.1', '1.2')]
    [SiteLimits] $limits
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $powerShellVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $remoteDebuggingVersion
    [ValidateSet('1.0', '1.1', '1.2')]
    [string] $requestTracingExpirationTime
}
class AzureStorageInfoValue
{
    [string] $accountName
    [ValidateSet('AzureFiles', 'AzureBlob')]
    [object] $type
    [ValidateSet('AzureFiles', 'AzureBlob')]
    [string] $shareName
    [ValidateSet('AzureFiles', 'AzureBlob')]
    [string] $accessKey
    [ValidateSet('AzureFiles', 'AzureBlob')]
    [string] $mountPath
}
function New-AzureNativeTypeWebAzureStorageInfoValue
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the storage account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Type of storage.)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Name of the file share (container name, for Blob storage).)')]
        [string]
        $shareName,
        [parameter(mandatory=$False,HelpMessage='Access key for the storage account.)')]
        [string]
        $accessKey,
        [parameter(mandatory=$False,HelpMessage='Path to mount the storage within the site''s runtime environment.)')]
        [string]
        $mountPath
    )

    process
    {
        return $([AzureStorageInfoValue]$PSBoundParameters)
    }
}
function New-AzureNativeTypeWebSiteConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Publishing user name.)')]
        [string]
        $publishingUsername,
        [parameter(mandatory=$False,HelpMessage='Identity to use for Key Vault Reference authentication.)')]
        [string]
        $keyVaultReferenceIdentity,
        [parameter(mandatory=$False,HelpMessage='Document root.)')]
        [string]
        $documentRoot,
        [parameter(mandatory=$False,HelpMessage='The number of private ports assigned to this app. These will be assigned dynamically on runtime.)')]
        [int]
        $vnetPrivatePortsCount,
        [parameter(mandatory=$False,HelpMessage='Xenon App Framework and version)')]
        [string]
        $windowsFxVersion,
        [parameter(mandatory=$False,HelpMessage='IP security restrictions for scm to use main.)')]
        [bool]
        $scmIpSecurityRestrictionsUseMain,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,
the ScaleController will not monitor event sources directly, but will instead call to the
runtime to get scale status.)'
)]
        [bool]
        $functionsRuntimeScaleMonitoringEnabled,
        [parameter(mandatory=$False,HelpMessage='Health check path)')]
        [string]
        $healthCheckPath,
        [parameter(mandatory=$False,HelpMessage='Explicit Managed Service Identity Id)')]
        [int]
        $xManagedServiceIdentityId,
        [parameter(mandatory=$False,HelpMessage='Flag to use Managed Identity Creds for ACR pull)')]
        [bool]
        $acrUseManagedIdentityCreds,
        [parameter(mandatory=$False,HelpMessage='IP security restrictions for scm.)')]
        $scmIpSecurityRestrictions,
        [parameter(mandatory=$False,HelpMessage='Azure API management settings linked to the app.)')]
        [ApiManagementConfig]
        $apiManagementConfig,
        [parameter(mandatory=$False,HelpMessage='If using user managed identity, the user managed identity ClientId)')]
        [string]
        $acrUserManagedIdentityID,
        [parameter(mandatory=$False,HelpMessage='Version of Node.js.)')]
        [string]
        $nodeVersion,
        [parameter(mandatory=$False,HelpMessage='Version of Python.)')]
        [string]
        $pythonVersion,
        [parameter(mandatory=$False,HelpMessage='Handler mappings.)')]
        $handlerMappings,
        [parameter(mandatory=$False,HelpMessage='Java container version.)')]
        [string]
        $javaContainerVersion,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $httpLoggingEnabled,
        [parameter(mandatory=$False,HelpMessage='Http20Enabled: configures a web site to allow clients to connect over http2.0)')]
        [bool]
        $http20Enabled,
        [parameter(mandatory=$False,HelpMessage='Managed pipeline mode.)')]
        $managedPipelineMode,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if request tracing is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $requestTracingEnabled,
        [parameter(mandatory=$False,HelpMessage='HTTP logs directory size limit.)')]
        [int]
        $logsDirectorySizeLimit,
        [parameter(mandatory=$False,HelpMessage='Property to allow or block all public traffic.)')]
        [string]
        $publicNetworkAccess,
        [parameter(mandatory=$False,HelpMessage='Java container.)')]
        [string]
        $javaContainer,
        [parameter(mandatory=$False,HelpMessage='.NET Framework version.)')]
        [string]
        $netFrameworkVersion,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to use 32-bit worker process; otherwise, <code>false</code>.)')]
        [bool]
        $use32BitWorkerProcess,
        [parameter(mandatory=$False,HelpMessage='Number of workers.)')]
        [int]
        $numberOfWorkers,
        [parameter(mandatory=$False,HelpMessage='State of FTP / FTPS service)')]
        [string]
        [ValidateSet('AllAllowed', 'FtpsOnly', 'Disabled')]
        $ftpsState,
        [parameter(mandatory=$False,HelpMessage='List of Azure Storage Accounts.)')]
        [AzureStorageInfoValue]
        $azureStorageAccounts,
        [parameter(mandatory=$False,HelpMessage='SCM type.)')]
        [string]
        [ValidateSet('None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg', 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive', 'VSO', 'VSTSRM')]
        $scmType,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if Always On is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $alwaysOn,
        [parameter(mandatory=$False,HelpMessage='Managed Service Identity Id)')]
        [int]
        $managedServiceIdentityId,
        [parameter(mandatory=$False,HelpMessage='Cross-Origin Resource Sharing (CORS) settings.)')]
        [CorsSettings]
        $cors,
        [parameter(mandatory=$False,HelpMessage='Information about the formal API definition for the app.)')]
        [ApiDefinitionInfo]
        $apiDefinition,
        [parameter(mandatory=$False,HelpMessage='Push endpoint settings.)')]
        [PushSettings]
        $push,
        [parameter(mandatory=$False,HelpMessage='Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones)')]
        [string]
        $websiteTimeZone,
        [parameter(mandatory=$False,HelpMessage='Default documents.)')]
        [string[]]
        $defaultDocuments,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable local MySQL; otherwise, <code>false</code>.)')]
        [bool]
        $localMySqlEnabled,
        [parameter(mandatory=$False,HelpMessage='Maximum number of workers that a site can scale out to.
This setting only applies to the Consumption and Elastic Premium Plans)'
)]
        [int]
        $functionAppScaleLimit,
        [parameter(mandatory=$False,HelpMessage='Number of preWarmed instances.
This setting only applies to the Consumption and Elastic Plans)'
)]
        [int]
        $preWarmedInstanceCount,
        [parameter(mandatory=$False,HelpMessage='App command line to launch.)')]
        [string]
        $appCommandLine,
        [parameter(mandatory=$False,HelpMessage='Site load balancing.)')]
        $loadBalancing,
        [parameter(mandatory=$False,HelpMessage='ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site)')]
        [string]
        [ValidateSet('1.0', '1.1', '1.2')]
        $scmMinTlsVersion,
        [parameter(mandatory=$False,HelpMessage='Auto Heal rules.)')]
        [AutoHealRules]
        $autoHealRules,
        [parameter(mandatory=$False,HelpMessage='Tracing options.)')]
        [string]
        $tracingOptions,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $autoHealEnabled,
        [parameter(mandatory=$False,HelpMessage='Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.)')]
        [bool]
        $vnetRouteAllEnabled,
        [parameter(mandatory=$False,HelpMessage='Auto-swap slot name.)')]
        [string]
        $autoSwapSlotName,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $detailedErrorLoggingEnabled,
        [parameter(mandatory=$False,HelpMessage='Connection strings.)')]
        $connectionStrings,
        [parameter(mandatory=$False,HelpMessage='Virtual Network name.)')]
        [string]
        $vnetName,
        [parameter(mandatory=$False,HelpMessage='Java version.)')]
        [string]
        $javaVersion,
        [parameter(mandatory=$False,HelpMessage='MinTlsVersion: configures the minimum version of TLS required for SSL requests)')]
        [string]
        [ValidateSet('1.0', '1.1', '1.2')]
        $minTlsVersion,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if remote debugging is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $remoteDebuggingEnabled,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if WebSocket is enabled; otherwise, <code>false</code>.)')]
        [bool]
        $webSocketsEnabled,
        [parameter(mandatory=$False,HelpMessage='Linux App Framework and version)')]
        [string]
        $linuxFxVersion,
        [parameter(mandatory=$False,HelpMessage='Virtual applications.)')]
        $virtualApplications,
        [parameter(mandatory=$False,HelpMessage='This is work around for polymorphic types.)')]
        [Experiments]
        $experiments,
        [parameter(mandatory=$False,HelpMessage='Application settings.)')]
        $appSettings,
        [parameter(mandatory=$False,HelpMessage='Version of PHP.)')]
        [string]
        $phpVersion,
        [parameter(mandatory=$False,HelpMessage='IP security restrictions for main.)')]
        $ipSecurityRestrictions,
        [parameter(mandatory=$False,HelpMessage='Number of minimum instance count for a site
This setting only applies to the Elastic Plans)'
)]
        [int]
        $minimumElasticInstanceCount,
        [parameter(mandatory=$False,HelpMessage='Site limits.)')]
        [SiteLimits]
        $limits,
        [parameter(mandatory=$False,HelpMessage='Version of PowerShell.)')]
        [string]
        $powerShellVersion,
        [parameter(mandatory=$False,HelpMessage='Remote debugging version.)')]
        [string]
        $remoteDebuggingVersion,
        [parameter(mandatory=$False,HelpMessage='Request tracing expiration time.)')]
        [string]
        $requestTracingExpirationTime
    )

    process
    {
        return $([SiteConfig]$PSBoundParameters)
    }
}
function New-AzureNativeWebWebAppSlot
{
    [Alias('azure_native_web_webappslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Hostname SSL states are used to manage the SSL bindings for app''s hostnames.)')]
        $hostNameSslStates,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot to create or update. The name ''production'' is reserved.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Managed service identity.)')]
        [ManagedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>.
 If <code>true</code>, the app is only accessible via API management process.)'
)]
        [bool]
        $hostNamesDisabled,
        [parameter(mandatory=$False,HelpMessage='Obsolete: Hyper-V sandbox.)')]
        [bool]
        $isXenon,
        [parameter(mandatory=$False,HelpMessage='Site redundancy mode)')]
        $redundancyMode,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>.)')]
        [bool]
        $clientAffinityEnabled,
        [parameter(mandatory=$False,HelpMessage='Unique name of the app to create or update. To create or update a deployment slot, use the {slot} parameter.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if reserved; otherwise, <code>false</code>.)')]
        [bool]
        $reserved,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='If specified during app creation, the app is cloned from a source app.)')]
        [CloningInfo]
        $cloningInfo,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Size of the function container.)')]
        [int]
        $containerSize,
        [parameter(mandatory=$False,HelpMessage='Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".)')]
        [string]
        $serverFarmId,
        [parameter(mandatory=$False,HelpMessage='Hyper-V sandbox.)')]
        [bool]
        $hyperV,
        [parameter(mandatory=$False,HelpMessage='Configuration of the app.)')]
        [SiteConfig]
        $siteConfig,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='HttpsOnly: configures a web site to accept only https requests. Issues redirect for
http requests)'
)]
        [bool]
        $httpsOnly,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline).)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>.)')]
        [bool]
        $scmSiteAlsoStopped,
        [parameter(mandatory=$False,HelpMessage='Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.
This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName})'
)]
        [string]
        $virtualNetworkSubnetId,
        [parameter(mandatory=$False,HelpMessage='This composes with ClientCertEnabled setting.
- ClientCertEnabled: false means ClientCert is ignored.
- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.)'
)]
        $clientCertMode,
        [parameter(mandatory=$False,HelpMessage='client certificate authentication comma-separated exclusion paths)')]
        [string]
        $clientCertExclusionPaths,
        [parameter(mandatory=$False,HelpMessage='App Service Environment to use for the app.)')]
        [HostingEnvironmentProfile]
        $hostingEnvironmentProfile,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>.)')]
        [bool]
        $clientCertEnabled,
        [parameter(mandatory=$False,HelpMessage='Maximum allowed daily memory-time quota (applicable on dynamic apps only).)')]
        [int]
        $dailyMemoryTimeQuota,
        [parameter(mandatory=$False,HelpMessage='Identity to use for Key Vault Reference authentication.)')]
        [string]
        $keyVaultReferenceIdentity,
        [parameter(mandatory=$False,HelpMessage='Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification.)')]
        [string]
        $customDomainVerificationId,
        [parameter(mandatory=$False,HelpMessage='Checks if Customer provided storage account is required)')]
        [bool]
        $storageAccountRequired,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'hostNameSslStates')
        {
            $resource.properties["hostNameSslStates"] = $hostNameSslStates
        }

        if($PSBoundParameters.Keys -icontains 'slot')
        {
            $resource.properties["slot"] = $slot
        }

        if($PSBoundParameters.Keys -icontains 'identity')
        {
            $resource.properties["identity"] = $identity
        }

        if($PSBoundParameters.Keys -icontains 'hostNamesDisabled')
        {
            $resource.properties["hostNamesDisabled"] = $hostNamesDisabled
        }

        if($PSBoundParameters.Keys -icontains 'isXenon')
        {
            $resource.properties["isXenon"] = $isXenon
        }

        if($PSBoundParameters.Keys -icontains 'redundancyMode')
        {
            $resource.properties["redundancyMode"] = $redundancyMode
        }

        if($PSBoundParameters.Keys -icontains 'clientAffinityEnabled')
        {
            $resource.properties["clientAffinityEnabled"] = $clientAffinityEnabled
        }

        if($PSBoundParameters.Keys -icontains 'reserved')
        {
            $resource.properties["reserved"] = $reserved
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'cloningInfo')
        {
            $resource.properties["cloningInfo"] = $cloningInfo
        }

        if($PSBoundParameters.Keys -icontains 'containerSize')
        {
            $resource.properties["containerSize"] = $containerSize
        }

        if($PSBoundParameters.Keys -icontains 'serverFarmId')
        {
            $resource.properties["serverFarmId"] = $serverFarmId
        }

        if($PSBoundParameters.Keys -icontains 'hyperV')
        {
            $resource.properties["hyperV"] = $hyperV
        }

        if($PSBoundParameters.Keys -icontains 'siteConfig')
        {
            $resource.properties["siteConfig"] = $siteConfig
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'httpsOnly')
        {
            $resource.properties["httpsOnly"] = $httpsOnly
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $resource.properties["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'scmSiteAlsoStopped')
        {
            $resource.properties["scmSiteAlsoStopped"] = $scmSiteAlsoStopped
        }

        if($PSBoundParameters.Keys -icontains 'virtualNetworkSubnetId')
        {
            $resource.properties["virtualNetworkSubnetId"] = $virtualNetworkSubnetId
        }

        if($PSBoundParameters.Keys -icontains 'clientCertMode')
        {
            $resource.properties["clientCertMode"] = $clientCertMode
        }

        if($PSBoundParameters.Keys -icontains 'clientCertExclusionPaths')
        {
            $resource.properties["clientCertExclusionPaths"] = $clientCertExclusionPaths
        }

        if($PSBoundParameters.Keys -icontains 'hostingEnvironmentProfile')
        {
            $resource.properties["hostingEnvironmentProfile"] = $hostingEnvironmentProfile
        }

        if($PSBoundParameters.Keys -icontains 'clientCertEnabled')
        {
            $resource.properties["clientCertEnabled"] = $clientCertEnabled
        }

        if($PSBoundParameters.Keys -icontains 'dailyMemoryTimeQuota')
        {
            $resource.properties["dailyMemoryTimeQuota"] = $dailyMemoryTimeQuota
        }

        if($PSBoundParameters.Keys -icontains 'keyVaultReferenceIdentity')
        {
            $resource.properties["keyVaultReferenceIdentity"] = $keyVaultReferenceIdentity
        }

        if($PSBoundParameters.Keys -icontains 'customDomainVerificationId')
        {
            $resource.properties["customDomainVerificationId"] = $customDomainVerificationId
        }

        if($PSBoundParameters.Keys -icontains 'storageAccountRequired')
        {
            $resource.properties["storageAccountRequired"] = $storageAccountRequired
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppMetadataSlot
{
    [Alias('azure_native_web_webappmetadataslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the metadata for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Settings.)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppMetadataSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebAppServiceEnvironmentPrivateEndpointConnection
{
    [Alias('azure_native_web_appserviceenvironmentprivateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the App Service Environment.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The state of a private link connection)')]
        [PrivateLinkConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:AppServiceEnvironmentPrivateEndpointConnection")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'privateEndpointConnectionName')
        {
            $resource.properties["privateEndpointConnectionName"] = $privateEndpointConnectionName
        }

        if($PSBoundParameters.Keys -icontains 'privateLinkServiceConnectionState')
        {
            $resource.properties["privateLinkServiceConnectionState"] = $privateLinkServiceConnectionState
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppInstanceFunctionSlot
{
    [Alias('azure_native_web_webappinstancefunctionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='The invocation URL)')]
        [string]
        $invokeUrlTemplate,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='The function language)')]
        [string]
        $language,
        [parameter(mandatory=$False,HelpMessage='Secrets file URI.)')]
        [string]
        $secretsFileHref,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a value indicating whether the function is disabled)')]
        [bool]
        $isDisabled,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName,
        [parameter(mandatory=$False,HelpMessage='Script root path URI.)')]
        [string]
        $scriptRootPathHref,
        [parameter(mandatory=$False,HelpMessage='Config URI.)')]
        [string]
        $configHref,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Test data URI.)')]
        [string]
        $testDataHref,
        [parameter(mandatory=$False,HelpMessage='Function URI.)')]
        [string]
        $href,
        [parameter(mandatory=$False,HelpMessage='Test data used when testing via the Azure Portal.)')]
        [string]
        $testData,
        [parameter(mandatory=$False,HelpMessage='Script URI.)')]
        [string]
        $scriptHref,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Config information.)')]
        $config,
        [parameter(mandatory=$False,HelpMessage='File list.)')]
        [hashtable]
        $files,
        [parameter(mandatory=$False,HelpMessage='Function App ID.)')]
        [string]
        $functionAppId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppInstanceFunctionSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'invokeUrlTemplate')
        {
            $resource.properties["invokeUrlTemplate"] = $invokeUrlTemplate
        }

        if($PSBoundParameters.Keys -icontains 'language')
        {
            $resource.properties["language"] = $language
        }

        if($PSBoundParameters.Keys -icontains 'secretsFileHref')
        {
            $resource.properties["secretsFileHref"] = $secretsFileHref
        }

        if($PSBoundParameters.Keys -icontains 'isDisabled')
        {
            $resource.properties["isDisabled"] = $isDisabled
        }

        if($PSBoundParameters.Keys -icontains 'functionName')
        {
            $resource.properties["functionName"] = $functionName
        }

        if($PSBoundParameters.Keys -icontains 'scriptRootPathHref')
        {
            $resource.properties["scriptRootPathHref"] = $scriptRootPathHref
        }

        if($PSBoundParameters.Keys -icontains 'configHref')
        {
            $resource.properties["configHref"] = $configHref
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'testDataHref')
        {
            $resource.properties["testDataHref"] = $testDataHref
        }

        if($PSBoundParameters.Keys -icontains 'href')
        {
            $resource.properties["href"] = $href
        }

        if($PSBoundParameters.Keys -icontains 'testData')
        {
            $resource.properties["testData"] = $testData
        }

        if($PSBoundParameters.Keys -icontains 'scriptHref')
        {
            $resource.properties["scriptHref"] = $scriptHref
        }

        if($PSBoundParameters.Keys -icontains 'config')
        {
            $resource.properties["config"] = $config
        }

        if($PSBoundParameters.Keys -icontains 'files')
        {
            $resource.properties["files"] = $files
        }

        if($PSBoundParameters.Keys -icontains 'functionAppId')
        {
            $resource.properties["functionAppId"] = $functionAppId
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class GitHubActionContainerConfiguration
{
    [string] $username
    [string] $imageName
    [string] $serverUrl
    [string] $password
}
function New-AzureNativeTypeWebGitHubActionContainerConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The username used to upload the image to the container registry.)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='The image name for the build.)')]
        [string]
        $imageName,
        [parameter(mandatory=$False,HelpMessage='The server URL for the container registry where the build will be hosted.)')]
        [string]
        $serverUrl,
        [parameter(mandatory=$False,HelpMessage='The password used to upload the image to the container registry.)')]
        [string]
        $password
    )

    process
    {
        return $([GitHubActionContainerConfiguration]$PSBoundParameters)
    }
}
class GitHubActionCodeConfiguration
{
    [string] $runtimeVersion
    [string] $runtimeStack
}
function New-AzureNativeTypeWebGitHubActionCodeConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Runtime version is used to determine what build version to set in the workflow file.)')]
        [string]
        $runtimeVersion,
        [parameter(mandatory=$False,HelpMessage='Runtime stack is used to determine the workflow file content for code base apps.)')]
        [string]
        $runtimeStack
    )

    process
    {
        return $([GitHubActionCodeConfiguration]$PSBoundParameters)
    }
}
class GitHubActionConfiguration
{
    [GitHubActionContainerConfiguration] $containerConfiguration
    [bool] $generateWorkflowFile
    [GitHubActionCodeConfiguration] $codeConfiguration
    [bool] $isLinux
}
function New-AzureNativeTypeWebGitHubActionConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='GitHub Action container configuration.)')]
        [GitHubActionContainerConfiguration]
        $containerConfiguration,
        [parameter(mandatory=$False,HelpMessage='Workflow option to determine whether the workflow file should be generated and written to the repository.)')]
        [bool]
        $generateWorkflowFile,
        [parameter(mandatory=$False,HelpMessage='GitHub Action code configuration.)')]
        [GitHubActionCodeConfiguration]
        $codeConfiguration,
        [parameter(mandatory=$False,HelpMessage='This will help determine the workflow configuration to select.)')]
        [bool]
        $isLinux
    )

    process
    {
        return $([GitHubActionConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeWebWebAppSourceControlSlot
{
    [Alias('azure_native_web_webappsourcecontrolslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='If GitHub Action is selected, than the associated configuration.)')]
        [GitHubActionConfiguration]
        $gitHubActionConfiguration,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if this is deployed via GitHub action.)')]
        [bool]
        $isGitHubAction,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to limit to manual integration; <code>false</code> to enable continuous integration (which configures webhooks into online repos like GitHub).)')]
        [bool]
        $isManualIntegration,
        [parameter(mandatory=$False,HelpMessage='Name of branch to use for deployment.)')]
        [string]
        $branch,
        [parameter(mandatory=$False,HelpMessage='Repository or source control URL.)')]
        [string]
        $repoUrl,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> for a Mercurial repository; <code>false</code> for a Git repository.)')]
        [bool]
        $isMercurial,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable deployment rollback; otherwise, <code>false</code>.)')]
        [bool]
        $deploymentRollbackEnabled,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the source control configuration for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSourceControlSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'gitHubActionConfiguration')
        {
            $resource.properties["gitHubActionConfiguration"] = $gitHubActionConfiguration
        }

        if($PSBoundParameters.Keys -icontains 'isGitHubAction')
        {
            $resource.properties["isGitHubAction"] = $isGitHubAction
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'isManualIntegration')
        {
            $resource.properties["isManualIntegration"] = $isManualIntegration
        }

        if($PSBoundParameters.Keys -icontains 'branch')
        {
            $resource.properties["branch"] = $branch
        }

        if($PSBoundParameters.Keys -icontains 'repoUrl')
        {
            $resource.properties["repoUrl"] = $repoUrl
        }

        if($PSBoundParameters.Keys -icontains 'isMercurial')
        {
            $resource.properties["isMercurial"] = $isMercurial
        }

        if($PSBoundParameters.Keys -icontains 'deploymentRollbackEnabled')
        {
            $resource.properties["deploymentRollbackEnabled"] = $deploymentRollbackEnabled
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppHostNameBinding
{
    [Alias('azure_native_web_webapphostnamebinding')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Hostname in the hostname binding.)')]
        [string]
        $hostName,
        [parameter(mandatory=$False,HelpMessage='Hostname type.)')]
        $hostNameType,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Fully qualified ARM domain resource URI.)')]
        [string]
        $domainId,
        [parameter(mandatory=$False,HelpMessage='App Service app name.)')]
        [string]
        $siteName,
        [parameter(mandatory=$False,HelpMessage='Azure resource name.)')]
        [string]
        $azureResourceName,
        [parameter(mandatory=$False,HelpMessage='Azure resource type.)')]
        $azureResourceType,
        [parameter(mandatory=$False,HelpMessage='SSL certificate thumbprint)')]
        [string]
        $thumbprint,
        [parameter(mandatory=$False,HelpMessage='Custom DNS record type.)')]
        $customHostNameDnsRecordType,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='SSL type)')]
        $sslState,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppHostNameBinding")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'hostName')
        {
            $resource.properties["hostName"] = $hostName
        }

        if($PSBoundParameters.Keys -icontains 'hostNameType')
        {
            $resource.properties["hostNameType"] = $hostNameType
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'domainId')
        {
            $resource.properties["domainId"] = $domainId
        }

        if($PSBoundParameters.Keys -icontains 'siteName')
        {
            $resource.properties["siteName"] = $siteName
        }

        if($PSBoundParameters.Keys -icontains 'azureResourceName')
        {
            $resource.properties["azureResourceName"] = $azureResourceName
        }

        if($PSBoundParameters.Keys -icontains 'azureResourceType')
        {
            $resource.properties["azureResourceType"] = $azureResourceType
        }

        if($PSBoundParameters.Keys -icontains 'thumbprint')
        {
            $resource.properties["thumbprint"] = $thumbprint
        }

        if($PSBoundParameters.Keys -icontains 'customHostNameDnsRecordType')
        {
            $resource.properties["customHostNameDnsRecordType"] = $customHostNameDnsRecordType
        }

        if($PSBoundParameters.Keys -icontains 'sslState')
        {
            $resource.properties["sslState"] = $sslState
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSlotConfigurationNames
{
    [Alias('azure_native_web_webappslotconfigurationnames')]
    param (
        [parameter(mandatory=$False,HelpMessage='List of application settings names.)')]
        [string[]]
        $appSettingNames,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='List of connection string names.)')]
        [string[]]
        $connectionStringNames,
        [parameter(mandatory=$False,HelpMessage='List of external Azure storage account identifiers.)')]
        [string[]]
        $azureStorageConfigNames,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSlotConfigurationNames")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'appSettingNames')
        {
            $resource.properties["appSettingNames"] = $appSettingNames
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'connectionStringNames')
        {
            $resource.properties["connectionStringNames"] = $connectionStringNames
        }

        if($PSBoundParameters.Keys -icontains 'azureStorageConfigNames')
        {
            $resource.properties["azureStorageConfigNames"] = $azureStorageConfigNames
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppDeployment
{
    [Alias('azure_native_web_webappdeployment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Deployment status.)')]
        [int]
        $status,
        [parameter(mandatory=$False,HelpMessage='Who performed the deployment.)')]
        [string]
        $deployer,
        [parameter(mandatory=$False,HelpMessage='Start time.)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Details on deployment.)')]
        [string]
        $details,
        [parameter(mandatory=$False,HelpMessage='End time.)')]
        [string]
        $endTime,
        [parameter(mandatory=$False,HelpMessage='Author email.)')]
        [string]
        $authorEmail,
        [parameter(mandatory=$False,HelpMessage='Details about deployment status.)')]
        [string]
        $message,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='True if deployment is currently active, false if completed and null if not started.)')]
        [bool]
        $active,
        [parameter(mandatory=$False,HelpMessage='Who authored the deployment.)')]
        [string]
        $author,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='ID of an existing deployment.)')]
        [string]
        $id,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppDeployment")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'status')
        {
            $resource.properties["status"] = $status
        }

        if($PSBoundParameters.Keys -icontains 'deployer')
        {
            $resource.properties["deployer"] = $deployer
        }

        if($PSBoundParameters.Keys -icontains 'startTime')
        {
            $resource.properties["startTime"] = $startTime
        }

        if($PSBoundParameters.Keys -icontains 'details')
        {
            $resource.properties["details"] = $details
        }

        if($PSBoundParameters.Keys -icontains 'endTime')
        {
            $resource.properties["endTime"] = $endTime
        }

        if($PSBoundParameters.Keys -icontains 'authorEmail')
        {
            $resource.properties["authorEmail"] = $authorEmail
        }

        if($PSBoundParameters.Keys -icontains 'message')
        {
            $resource.properties["message"] = $message
        }

        if($PSBoundParameters.Keys -icontains 'active')
        {
            $resource.properties["active"] = $active
        }

        if($PSBoundParameters.Keys -icontains 'author')
        {
            $resource.properties["author"] = $author
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'id')
        {
            $resource.properties["id"] = $id
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppBackupConfigurationSlot
{
    [Alias('azure_native_web_webappbackupconfigurationslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='SAS URL to the container.)')]
        [string]
        $storageAccountUrl,
        [parameter(mandatory=$False,HelpMessage='True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Databases included in the backup.)')]
        $databases,
        [parameter(mandatory=$False,HelpMessage='Schedule for the backup if it is executed periodically.)')]
        [BackupSchedule]
        $backupSchedule,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the backup configuration for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the backup.)')]
        [string]
        $backupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppBackupConfigurationSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot
        $resource.properties["storageAccountUrl"] = $storageAccountUrl

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $resource.properties["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'databases')
        {
            $resource.properties["databases"] = $databases
        }

        if($PSBoundParameters.Keys -icontains 'backupSchedule')
        {
            $resource.properties["backupSchedule"] = $backupSchedule
        }

        if($PSBoundParameters.Keys -icontains 'backupName')
        {
            $resource.properties["backupName"] = $backupName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppHostNameBindingSlot
{
    [Alias('azure_native_web_webapphostnamebindingslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='App Service app name.)')]
        [string]
        $siteName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Custom DNS record type.)')]
        $customHostNameDnsRecordType,
        [parameter(mandatory=$False,HelpMessage='Azure resource name.)')]
        [string]
        $azureResourceName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will create a binding for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Hostname in the hostname binding.)')]
        [string]
        $hostName,
        [parameter(mandatory=$False,HelpMessage='Azure resource type.)')]
        $azureResourceType,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='SSL certificate thumbprint)')]
        [string]
        $thumbprint,
        [parameter(mandatory=$False,HelpMessage='Hostname type.)')]
        $hostNameType,
        [parameter(mandatory=$False,HelpMessage='SSL type)')]
        $sslState,
        [parameter(mandatory=$False,HelpMessage='Fully qualified ARM domain resource URI.)')]
        [string]
        $domainId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppHostNameBindingSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'siteName')
        {
            $resource.properties["siteName"] = $siteName
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'customHostNameDnsRecordType')
        {
            $resource.properties["customHostNameDnsRecordType"] = $customHostNameDnsRecordType
        }

        if($PSBoundParameters.Keys -icontains 'azureResourceName')
        {
            $resource.properties["azureResourceName"] = $azureResourceName
        }

        if($PSBoundParameters.Keys -icontains 'hostName')
        {
            $resource.properties["hostName"] = $hostName
        }

        if($PSBoundParameters.Keys -icontains 'azureResourceType')
        {
            $resource.properties["azureResourceType"] = $azureResourceType
        }

        if($PSBoundParameters.Keys -icontains 'thumbprint')
        {
            $resource.properties["thumbprint"] = $thumbprint
        }

        if($PSBoundParameters.Keys -icontains 'hostNameType')
        {
            $resource.properties["hostNameType"] = $hostNameType
        }

        if($PSBoundParameters.Keys -icontains 'sslState')
        {
            $resource.properties["sslState"] = $sslState
        }

        if($PSBoundParameters.Keys -icontains 'domainId')
        {
            $resource.properties["domainId"] = $domainId
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebStaticSitePrivateEndpointConnection
{
    [Alias('azure_native_web_staticsiteprivateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The state of a private link connection)')]
        [PrivateLinkConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:StaticSitePrivateEndpointConnection")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'privateEndpointConnectionName')
        {
            $resource.properties["privateEndpointConnectionName"] = $privateEndpointConnectionName
        }

        if($PSBoundParameters.Keys -icontains 'privateLinkServiceConnectionState')
        {
            $resource.properties["privateLinkServiceConnectionState"] = $privateLinkServiceConnectionState
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppAzureStorageAccounts
{
    [Alias('azure_native_web_webappazurestorageaccounts')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Azure storage accounts.)')]
        [AzureStorageInfoValue]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppAzureStorageAccounts")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppFunction
{
    [Alias('azure_native_web_webappfunction')]
    param (
        [parameter(mandatory=$False,HelpMessage='Config information.)')]
        $config,
        [parameter(mandatory=$False,HelpMessage='Test data URI.)')]
        [string]
        $testDataHref,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a value indicating whether the function is disabled)')]
        [bool]
        $isDisabled,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The function language)')]
        [string]
        $language,
        [parameter(mandatory=$False,HelpMessage='Script URI.)')]
        [string]
        $scriptHref,
        [parameter(mandatory=$False,HelpMessage='Site name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='File list.)')]
        [hashtable]
        $files,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Function App ID.)')]
        [string]
        $functionAppId,
        [parameter(mandatory=$False,HelpMessage='Function name.)')]
        [string]
        $functionName,
        [parameter(mandatory=$False,HelpMessage='Config URI.)')]
        [string]
        $configHref,
        [parameter(mandatory=$False,HelpMessage='Script root path URI.)')]
        [string]
        $scriptRootPathHref,
        [parameter(mandatory=$False,HelpMessage='The invocation URL)')]
        [string]
        $invokeUrlTemplate,
        [parameter(mandatory=$False,HelpMessage='Function URI.)')]
        [string]
        $href,
        [parameter(mandatory=$False,HelpMessage='Test data used when testing via the Azure Portal.)')]
        [string]
        $testData,
        [parameter(mandatory=$False,HelpMessage='Secrets file URI.)')]
        [string]
        $secretsFileHref,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppFunction")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'config')
        {
            $resource.properties["config"] = $config
        }

        if($PSBoundParameters.Keys -icontains 'testDataHref')
        {
            $resource.properties["testDataHref"] = $testDataHref
        }

        if($PSBoundParameters.Keys -icontains 'isDisabled')
        {
            $resource.properties["isDisabled"] = $isDisabled
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'language')
        {
            $resource.properties["language"] = $language
        }

        if($PSBoundParameters.Keys -icontains 'scriptHref')
        {
            $resource.properties["scriptHref"] = $scriptHref
        }

        if($PSBoundParameters.Keys -icontains 'files')
        {
            $resource.properties["files"] = $files
        }

        if($PSBoundParameters.Keys -icontains 'functionAppId')
        {
            $resource.properties["functionAppId"] = $functionAppId
        }

        if($PSBoundParameters.Keys -icontains 'functionName')
        {
            $resource.properties["functionName"] = $functionName
        }

        if($PSBoundParameters.Keys -icontains 'configHref')
        {
            $resource.properties["configHref"] = $configHref
        }

        if($PSBoundParameters.Keys -icontains 'scriptRootPathHref')
        {
            $resource.properties["scriptRootPathHref"] = $scriptRootPathHref
        }

        if($PSBoundParameters.Keys -icontains 'invokeUrlTemplate')
        {
            $resource.properties["invokeUrlTemplate"] = $invokeUrlTemplate
        }

        if($PSBoundParameters.Keys -icontains 'href')
        {
            $resource.properties["href"] = $href
        }

        if($PSBoundParameters.Keys -icontains 'testData')
        {
            $resource.properties["testData"] = $testData
        }

        if($PSBoundParameters.Keys -icontains 'secretsFileHref')
        {
            $resource.properties["secretsFileHref"] = $secretsFileHref
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppAuthSettings
{
    [Alias('azure_native_web_webappauthsettings')]
    param (
        [parameter(mandatory=$False,HelpMessage='The ConfigVersion of the Authentication / Authorization feature in use for the current app.
The setting in this value can control the behavior of the control plane for Authentication / Authorization.)'
)]
        [string]
        $configVersion,
        [parameter(mandatory=$False,HelpMessage='Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such.)')]
        [bool]
        $validateIssuer,
        [parameter(mandatory=$False,HelpMessage='The Client Id of the GitHub app used for login.
This setting is required for enabling Github login)'
)]
        [string]
        $gitHubClientId,
        [parameter(mandatory=$False,HelpMessage='The App Secret of the Facebook app used for Facebook Login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login)'
)]
        [string]
        $facebookAppSecret,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 client secret that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm)'
)]
        [string]
        $microsoftAccountClientSecret,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='"true" if the auth config settings should be read from a file,
"false" otherwise)'
)]
        [string]
        $isAuthFromFile,
        [parameter(mandatory=$False,HelpMessage='Gets a JSON string containing the Azure AD Acl settings.)')]
        [string]
        $aadClaimsAuthorization,
        [parameter(mandatory=$False,HelpMessage='An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
a replacement for the Client Secret. It is also optional.)'
)]
        [string]
        $clientSecretCertificateThumbprint,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
 The default is <code>false</code>.)'
)]
        [bool]
        $tokenStoreEnabled,
        [parameter(mandatory=$False,HelpMessage='The number of hours after session token expiration that a session token can be used to
call the token refresh API. The default is 72 hours.)'
)]
        [int]
        $tokenRefreshExtensionHours,
        [parameter(mandatory=$False,HelpMessage='The App ID of the Facebook app used for login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login)'
)]
        [string]
        $facebookAppId,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
This setting is optional. If not specified, "wl.basic" is used as the default scope.
Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx)'
)]
        [string[]]
        $microsoftAccountOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='The path of the config file containing auth settings.
If the path is relative, base will the site''s root directory.)'
)]
        [string]
        $authFilePath,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
This setting is optional)'
)]
        [string[]]
        $gitHubOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='Allowed audience values to consider when validating JWTs issued by
Azure Active Directory. Note that the <code>ClientID</code> value is always considered an
allowed audience, regardless of this setting.)'
)]
        [string[]]
        $allowedAudiences,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret of the relying party application.)')]
        [string]
        $clientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The Client ID of this relying party application, known as the client_id.
This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
other 3rd party OpenID Connect providers.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html)'
)]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='The client secret associated with the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/)'
)]
        [string]
        $googleClientSecret,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the app secret used for Facebook Login.)')]
        [string]
        $facebookAppSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The Client Secret of the GitHub app used for Github Login.
This setting is required for enabling Github login.)'
)]
        [string]
        $gitHubClientSecret,
        [parameter(mandatory=$False,HelpMessage='The OpenID Connect Client ID for the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/)'
)]
        [string]
        $googleClientId,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret associated with
the Google web application.)'
)]
        [string]
        $googleClientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
This URI is a case-sensitive identifier for the token issuer.
More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html)'
)]
        [string]
        $issuer,
        [parameter(mandatory=$False,HelpMessage='The OAuth 1.0a consumer key of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in)'
)]
        [string]
        $twitterConsumerKey,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
This setting is optional.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login)'
)]
        [string[]]
        $facebookOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/)'
)]
        [string[]]
        $googleOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The app setting name containing the OAuth 2.0 client secret that was created for the
app used for authentication.)'
)]
        [string]
        $microsoftAccountClientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The action to take when an unauthenticated client attempts to access the app.)')]
        $unauthenticatedClientAction,
        [parameter(mandatory=$False,HelpMessage='The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
The setting in this value can control the behavior of certain features in the Authentication / Authorization module.)'
)]
        [string]
        $runtimeVersion,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret of the Github
app used for GitHub Login.)'
)]
        [string]
        $gitHubClientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The default authentication provider to use when multiple providers are configured.
This setting is only needed if multiple providers are configured and the unauthenticated client
action is set to "RedirectToLoginPage".)'
)]
        $defaultProvider,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
application used for sign-in.)'
)]
        [string]
        $twitterConsumerSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 client ID that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm)'
)]
        [string]
        $microsoftAccountClientId,
        [parameter(mandatory=$False,HelpMessage='External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
This is an advanced setting typically only needed by Windows Store application backends.
Note that URLs within the current domain are always implicitly allowed.)'
)]
        [string[]]
        $allowedExternalRedirectUrls,
        [parameter(mandatory=$False,HelpMessage='The Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html)'
)]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='Login parameters to send to the OpenID Connect authorization endpoint when
a user logs in. Each parameter must be in the form "key=value".)'
)]
        [string[]]
        $additionalLoginParams,
        [parameter(mandatory=$False,HelpMessage='The OAuth 1.0a consumer secret of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in)'
)]
        [string]
        $twitterConsumerSecret,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppAuthSettings")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'configVersion')
        {
            $resource.properties["configVersion"] = $configVersion
        }

        if($PSBoundParameters.Keys -icontains 'validateIssuer')
        {
            $resource.properties["validateIssuer"] = $validateIssuer
        }

        if($PSBoundParameters.Keys -icontains 'gitHubClientId')
        {
            $resource.properties["gitHubClientId"] = $gitHubClientId
        }

        if($PSBoundParameters.Keys -icontains 'facebookAppSecret')
        {
            $resource.properties["facebookAppSecret"] = $facebookAppSecret
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountClientSecret')
        {
            $resource.properties["microsoftAccountClientSecret"] = $microsoftAccountClientSecret
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'isAuthFromFile')
        {
            $resource.properties["isAuthFromFile"] = $isAuthFromFile
        }

        if($PSBoundParameters.Keys -icontains 'aadClaimsAuthorization')
        {
            $resource.properties["aadClaimsAuthorization"] = $aadClaimsAuthorization
        }

        if($PSBoundParameters.Keys -icontains 'clientSecretCertificateThumbprint')
        {
            $resource.properties["clientSecretCertificateThumbprint"] = $clientSecretCertificateThumbprint
        }

        if($PSBoundParameters.Keys -icontains 'tokenStoreEnabled')
        {
            $resource.properties["tokenStoreEnabled"] = $tokenStoreEnabled
        }

        if($PSBoundParameters.Keys -icontains 'tokenRefreshExtensionHours')
        {
            $resource.properties["tokenRefreshExtensionHours"] = $tokenRefreshExtensionHours
        }

        if($PSBoundParameters.Keys -icontains 'facebookAppId')
        {
            $resource.properties["facebookAppId"] = $facebookAppId
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountOAuthScopes')
        {
            $resource.properties["microsoftAccountOAuthScopes"] = $microsoftAccountOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'authFilePath')
        {
            $resource.properties["authFilePath"] = $authFilePath
        }

        if($PSBoundParameters.Keys -icontains 'gitHubOAuthScopes')
        {
            $resource.properties["gitHubOAuthScopes"] = $gitHubOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'allowedAudiences')
        {
            $resource.properties["allowedAudiences"] = $allowedAudiences
        }

        if($PSBoundParameters.Keys -icontains 'clientSecretSettingName')
        {
            $resource.properties["clientSecretSettingName"] = $clientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'clientId')
        {
            $resource.properties["clientId"] = $clientId
        }

        if($PSBoundParameters.Keys -icontains 'googleClientSecret')
        {
            $resource.properties["googleClientSecret"] = $googleClientSecret
        }

        if($PSBoundParameters.Keys -icontains 'facebookAppSecretSettingName')
        {
            $resource.properties["facebookAppSecretSettingName"] = $facebookAppSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'gitHubClientSecret')
        {
            $resource.properties["gitHubClientSecret"] = $gitHubClientSecret
        }

        if($PSBoundParameters.Keys -icontains 'googleClientId')
        {
            $resource.properties["googleClientId"] = $googleClientId
        }

        if($PSBoundParameters.Keys -icontains 'googleClientSecretSettingName')
        {
            $resource.properties["googleClientSecretSettingName"] = $googleClientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $resource.properties["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'issuer')
        {
            $resource.properties["issuer"] = $issuer
        }

        if($PSBoundParameters.Keys -icontains 'twitterConsumerKey')
        {
            $resource.properties["twitterConsumerKey"] = $twitterConsumerKey
        }

        if($PSBoundParameters.Keys -icontains 'facebookOAuthScopes')
        {
            $resource.properties["facebookOAuthScopes"] = $facebookOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'googleOAuthScopes')
        {
            $resource.properties["googleOAuthScopes"] = $googleOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountClientSecretSettingName')
        {
            $resource.properties["microsoftAccountClientSecretSettingName"] = $microsoftAccountClientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'unauthenticatedClientAction')
        {
            $resource.properties["unauthenticatedClientAction"] = $unauthenticatedClientAction
        }

        if($PSBoundParameters.Keys -icontains 'runtimeVersion')
        {
            $resource.properties["runtimeVersion"] = $runtimeVersion
        }

        if($PSBoundParameters.Keys -icontains 'gitHubClientSecretSettingName')
        {
            $resource.properties["gitHubClientSecretSettingName"] = $gitHubClientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'defaultProvider')
        {
            $resource.properties["defaultProvider"] = $defaultProvider
        }

        if($PSBoundParameters.Keys -icontains 'twitterConsumerSecretSettingName')
        {
            $resource.properties["twitterConsumerSecretSettingName"] = $twitterConsumerSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountClientId')
        {
            $resource.properties["microsoftAccountClientId"] = $microsoftAccountClientId
        }

        if($PSBoundParameters.Keys -icontains 'allowedExternalRedirectUrls')
        {
            $resource.properties["allowedExternalRedirectUrls"] = $allowedExternalRedirectUrls
        }

        if($PSBoundParameters.Keys -icontains 'clientSecret')
        {
            $resource.properties["clientSecret"] = $clientSecret
        }

        if($PSBoundParameters.Keys -icontains 'additionalLoginParams')
        {
            $resource.properties["additionalLoginParams"] = $additionalLoginParams
        }

        if($PSBoundParameters.Keys -icontains 'twitterConsumerSecret')
        {
            $resource.properties["twitterConsumerSecret"] = $twitterConsumerSecret
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebApp
{
    [Alias('azure_native_web_webapp')]
    param (
        [parameter(mandatory=$False,HelpMessage='Hostname SSL states are used to manage the SSL bindings for app''s hostnames.)')]
        $hostNameSslStates,
        [parameter(mandatory=$False,HelpMessage='Managed service identity.)')]
        [ManagedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>.
 If <code>true</code>, the app is only accessible via API management process.)'
)]
        [bool]
        $hostNamesDisabled,
        [parameter(mandatory=$False,HelpMessage='Obsolete: Hyper-V sandbox.)')]
        [bool]
        $isXenon,
        [parameter(mandatory=$False,HelpMessage='Site redundancy mode)')]
        $redundancyMode,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>.)')]
        [bool]
        $clientAffinityEnabled,
        [parameter(mandatory=$False,HelpMessage='Unique name of the app to create or update. To create or update a deployment slot, use the {slot} parameter.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if reserved; otherwise, <code>false</code>.)')]
        [bool]
        $reserved,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='If specified during app creation, the app is cloned from a source app.)')]
        [CloningInfo]
        $cloningInfo,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Size of the function container.)')]
        [int]
        $containerSize,
        [parameter(mandatory=$False,HelpMessage='Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".)')]
        [string]
        $serverFarmId,
        [parameter(mandatory=$False,HelpMessage='Hyper-V sandbox.)')]
        [bool]
        $hyperV,
        [parameter(mandatory=$False,HelpMessage='Configuration of the app.)')]
        [SiteConfig]
        $siteConfig,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='HttpsOnly: configures a web site to accept only https requests. Issues redirect for
http requests)'
)]
        [bool]
        $httpsOnly,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline).)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>.)')]
        [bool]
        $scmSiteAlsoStopped,
        [parameter(mandatory=$False,HelpMessage='Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.
This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName})'
)]
        [string]
        $virtualNetworkSubnetId,
        [parameter(mandatory=$False,HelpMessage='This composes with ClientCertEnabled setting.
- ClientCertEnabled: false means ClientCert is ignored.
- ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
- ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.)'
)]
        $clientCertMode,
        [parameter(mandatory=$False,HelpMessage='client certificate authentication comma-separated exclusion paths)')]
        [string]
        $clientCertExclusionPaths,
        [parameter(mandatory=$False,HelpMessage='App Service Environment to use for the app.)')]
        [HostingEnvironmentProfile]
        $hostingEnvironmentProfile,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>.)')]
        [bool]
        $clientCertEnabled,
        [parameter(mandatory=$False,HelpMessage='Maximum allowed daily memory-time quota (applicable on dynamic apps only).)')]
        [int]
        $dailyMemoryTimeQuota,
        [parameter(mandatory=$False,HelpMessage='Identity to use for Key Vault Reference authentication.)')]
        [string]
        $keyVaultReferenceIdentity,
        [parameter(mandatory=$False,HelpMessage='Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification.)')]
        [string]
        $customDomainVerificationId,
        [parameter(mandatory=$False,HelpMessage='Checks if Customer provided storage account is required)')]
        [bool]
        $storageAccountRequired,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebApp")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'hostNameSslStates')
        {
            $resource.properties["hostNameSslStates"] = $hostNameSslStates
        }

        if($PSBoundParameters.Keys -icontains 'identity')
        {
            $resource.properties["identity"] = $identity
        }

        if($PSBoundParameters.Keys -icontains 'hostNamesDisabled')
        {
            $resource.properties["hostNamesDisabled"] = $hostNamesDisabled
        }

        if($PSBoundParameters.Keys -icontains 'isXenon')
        {
            $resource.properties["isXenon"] = $isXenon
        }

        if($PSBoundParameters.Keys -icontains 'redundancyMode')
        {
            $resource.properties["redundancyMode"] = $redundancyMode
        }

        if($PSBoundParameters.Keys -icontains 'clientAffinityEnabled')
        {
            $resource.properties["clientAffinityEnabled"] = $clientAffinityEnabled
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'reserved')
        {
            $resource.properties["reserved"] = $reserved
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'cloningInfo')
        {
            $resource.properties["cloningInfo"] = $cloningInfo
        }

        if($PSBoundParameters.Keys -icontains 'containerSize')
        {
            $resource.properties["containerSize"] = $containerSize
        }

        if($PSBoundParameters.Keys -icontains 'serverFarmId')
        {
            $resource.properties["serverFarmId"] = $serverFarmId
        }

        if($PSBoundParameters.Keys -icontains 'hyperV')
        {
            $resource.properties["hyperV"] = $hyperV
        }

        if($PSBoundParameters.Keys -icontains 'siteConfig')
        {
            $resource.properties["siteConfig"] = $siteConfig
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'httpsOnly')
        {
            $resource.properties["httpsOnly"] = $httpsOnly
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $resource.properties["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'scmSiteAlsoStopped')
        {
            $resource.properties["scmSiteAlsoStopped"] = $scmSiteAlsoStopped
        }

        if($PSBoundParameters.Keys -icontains 'virtualNetworkSubnetId')
        {
            $resource.properties["virtualNetworkSubnetId"] = $virtualNetworkSubnetId
        }

        if($PSBoundParameters.Keys -icontains 'clientCertMode')
        {
            $resource.properties["clientCertMode"] = $clientCertMode
        }

        if($PSBoundParameters.Keys -icontains 'clientCertExclusionPaths')
        {
            $resource.properties["clientCertExclusionPaths"] = $clientCertExclusionPaths
        }

        if($PSBoundParameters.Keys -icontains 'hostingEnvironmentProfile')
        {
            $resource.properties["hostingEnvironmentProfile"] = $hostingEnvironmentProfile
        }

        if($PSBoundParameters.Keys -icontains 'clientCertEnabled')
        {
            $resource.properties["clientCertEnabled"] = $clientCertEnabled
        }

        if($PSBoundParameters.Keys -icontains 'dailyMemoryTimeQuota')
        {
            $resource.properties["dailyMemoryTimeQuota"] = $dailyMemoryTimeQuota
        }

        if($PSBoundParameters.Keys -icontains 'keyVaultReferenceIdentity')
        {
            $resource.properties["keyVaultReferenceIdentity"] = $keyVaultReferenceIdentity
        }

        if($PSBoundParameters.Keys -icontains 'customDomainVerificationId')
        {
            $resource.properties["customDomainVerificationId"] = $customDomainVerificationId
        }

        if($PSBoundParameters.Keys -icontains 'storageAccountRequired')
        {
            $resource.properties["storageAccountRequired"] = $storageAccountRequired
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppBackupConfiguration
{
    [Alias('azure_native_web_webappbackupconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='Databases included in the backup.)')]
        $databases,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Schedule for the backup if it is executed periodically.)')]
        [BackupSchedule]
        $backupSchedule,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the backup.)')]
        [string]
        $backupName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='SAS URL to the container.)')]
        [string]
        $storageAccountUrl,
        [parameter(mandatory=$False,HelpMessage='True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled.)')]
        [bool]
        $enabled,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppBackupConfiguration")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["storageAccountUrl"] = $storageAccountUrl

        if($PSBoundParameters.Keys -icontains 'databases')
        {
            $resource.properties["databases"] = $databases
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'backupSchedule')
        {
            $resource.properties["backupSchedule"] = $backupSchedule
        }

        if($PSBoundParameters.Keys -icontains 'backupName')
        {
            $resource.properties["backupName"] = $backupName
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $resource.properties["enabled"] = $enabled
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSitePushSettingsSlot
{
    [Alias('azure_native_web_webappsitepushsettingsslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets a flag indicating whether the Push endpoint is enabled.)')]
        [bool]
        $isPushEnabled,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint.)')]
        [string]
        $dynamicTagsJson,
        [parameter(mandatory=$False,HelpMessage='Name of web app slot. If not specified then will default to production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.
Tags can consist of alphanumeric characters and the following:
''_'', ''@'', ''#'', ''.'', '':'', ''-''.
Validation should be performed at the PushRequestHandler.)'
)]
        [string]
        $tagsRequiringAuth,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint.)')]
        [string]
        $tagWhitelistJson,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSitePushSettingsSlot")

        $resource.properties["isPushEnabled"] = $isPushEnabled
        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'dynamicTagsJson')
        {
            $resource.properties["dynamicTagsJson"] = $dynamicTagsJson
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'tagsRequiringAuth')
        {
            $resource.properties["tagsRequiringAuth"] = $tagsRequiringAuth
        }

        if($PSBoundParameters.Keys -icontains 'tagWhitelistJson')
        {
            $resource.properties["tagWhitelistJson"] = $tagWhitelistJson
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class VirtualNetworkProfile
{
    [string] $id
    [string] $subnet
}
function New-AzureNativeTypeWebVirtualNetworkProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource id of the Virtual Network.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Subnet within the Virtual Network.)')]
        [string]
        $subnet
    )

    process
    {
        return $([VirtualNetworkProfile]$PSBoundParameters)
    }
}
function New-AzureNativeWebAppServiceEnvironment
{
    [Alias('azure_native_web_appserviceenvironment')]
    param (
        [parameter(mandatory=$False,HelpMessage='User added ip ranges to whitelist on ASE db)')]
        [string[]]
        $userWhitelistedIpRanges,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Description of the Virtual Network.)')]
        [VirtualNetworkProfile]
        $virtualNetwork,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='DNS suffix of the App Service Environment.)')]
        [string]
        $dnsSuffix,
        [parameter(mandatory=$False,HelpMessage='Front-end VM size, e.g. "Medium", "Large".)')]
        [string]
        $multiSize,
        [parameter(mandatory=$False,HelpMessage='Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment.)')]
        [string]
        [ValidateSet('None', 'Web', 'Publishing', 'Web, Publishing')]
        $internalLoadBalancingMode,
        [parameter(mandatory=$False,HelpMessage='Name of the App Service Environment.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Number of IP SSL addresses reserved for the App Service Environment.)')]
        [int]
        $ipsslAddressCount,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Scale factor for front-ends.)')]
        [int]
        $frontEndScaleFactor,
        [parameter(mandatory=$False,HelpMessage='Custom settings for changing the behavior of the App Service Environment.)')]
        $clusterSettings,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:AppServiceEnvironment")

        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["virtualNetwork"] = $virtualNetwork

        if($PSBoundParameters.Keys -icontains 'userWhitelistedIpRanges')
        {
            $resource.properties["userWhitelistedIpRanges"] = $userWhitelistedIpRanges
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'dnsSuffix')
        {
            $resource.properties["dnsSuffix"] = $dnsSuffix
        }

        if($PSBoundParameters.Keys -icontains 'multiSize')
        {
            $resource.properties["multiSize"] = $multiSize
        }

        if($PSBoundParameters.Keys -icontains 'internalLoadBalancingMode')
        {
            $resource.properties["internalLoadBalancingMode"] = $internalLoadBalancingMode
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'ipsslAddressCount')
        {
            $resource.properties["ipsslAddressCount"] = $ipsslAddressCount
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'frontEndScaleFactor')
        {
            $resource.properties["frontEndScaleFactor"] = $frontEndScaleFactor
        }

        if($PSBoundParameters.Keys -icontains 'clusterSettings')
        {
            $resource.properties["clusterSettings"] = $clusterSettings
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppPremierAddOn
{
    [Alias('azure_native_web_webapppremieraddon')]
    param (
        [parameter(mandatory=$False,HelpMessage='Premier add on Marketplace publisher.)')]
        [string]
        $marketplacePublisher,
        [parameter(mandatory=$False,HelpMessage='Premier add on Product.)')]
        [string]
        $product,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Add-on name.)')]
        [string]
        $premierAddOnName,
        [parameter(mandatory=$False,HelpMessage='Premier add on SKU.)')]
        [string]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Premier add on Marketplace offer.)')]
        [string]
        $marketplaceOffer,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Premier add on Vendor.)')]
        [string]
        $vendor,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppPremierAddOn")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'marketplacePublisher')
        {
            $resource.properties["marketplacePublisher"] = $marketplacePublisher
        }

        if($PSBoundParameters.Keys -icontains 'product')
        {
            $resource.properties["product"] = $product
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'premierAddOnName')
        {
            $resource.properties["premierAddOnName"] = $premierAddOnName
        }

        if($PSBoundParameters.Keys -icontains 'sku')
        {
            $resource.properties["sku"] = $sku
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'marketplaceOffer')
        {
            $resource.properties["marketplaceOffer"] = $marketplaceOffer
        }

        if($PSBoundParameters.Keys -icontains 'vendor')
        {
            $resource.properties["vendor"] = $vendor
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppAzureStorageAccountsSlot
{
    [Alias('azure_native_web_webappazurestorageaccountsslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will update the Azure storage account configurations for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Azure storage accounts.)')]
        [AzureStorageInfoValue]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppAzureStorageAccountsSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppRelayServiceConnectionSlot
{
    [Alias('azure_native_web_webapprelayserviceconnectionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $resourceConnectionString,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $resourceType,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $biztalkUri,
        [parameter(mandatory=$False,HelpMessage=')')]
        [int]
        $port,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $hostname,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $entityConnectionString,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid connection for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $entityName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppRelayServiceConnectionSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'resourceConnectionString')
        {
            $resource.properties["resourceConnectionString"] = $resourceConnectionString
        }

        if($PSBoundParameters.Keys -icontains 'resourceType')
        {
            $resource.properties["resourceType"] = $resourceType
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'biztalkUri')
        {
            $resource.properties["biztalkUri"] = $biztalkUri
        }

        if($PSBoundParameters.Keys -icontains 'port')
        {
            $resource.properties["port"] = $port
        }

        if($PSBoundParameters.Keys -icontains 'hostname')
        {
            $resource.properties["hostname"] = $hostname
        }

        if($PSBoundParameters.Keys -icontains 'entityConnectionString')
        {
            $resource.properties["entityConnectionString"] = $entityConnectionString
        }

        if($PSBoundParameters.Keys -icontains 'entityName')
        {
            $resource.properties["entityName"] = $entityName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppHybridConnection
{
    [Alias('azure_native_web_webapphybridconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus key which has Send permissions. This is used to authenticate to Service Bus.)')]
        [string]
        $sendKeyName,
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus relay.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The ARM URI to the Service Bus relay.)')]
        [string]
        $relayArmUri,
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus namespace.)')]
        [string]
        $serviceBusNamespace,
        [parameter(mandatory=$False,HelpMessage='The port of the endpoint.)')]
        [int]
        $port,
        [parameter(mandatory=$False,HelpMessage='The hostname of the endpoint.)')]
        [string]
        $hostname,
        [parameter(mandatory=$False,HelpMessage='The namespace for this hybrid connection.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The suffix for the service bus endpoint. By default this is .servicebus.windows.net)')]
        [string]
        $serviceBusSuffix,
        [parameter(mandatory=$False,HelpMessage='The name of the web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The value of the Service Bus key. This is used to authenticate to Service Bus. In ARM this key will not be returned
normally, use the POST /listKeys API instead.)'
)]
        [string]
        $sendKeyValue,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppHybridConnection")

        $resource.properties["name"] = $name
        $resource.properties["namespaceName"] = $namespaceName
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'sendKeyName')
        {
            $resource.properties["sendKeyName"] = $sendKeyName
        }

        if($PSBoundParameters.Keys -icontains 'relayName')
        {
            $resource.properties["relayName"] = $relayName
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'relayArmUri')
        {
            $resource.properties["relayArmUri"] = $relayArmUri
        }

        if($PSBoundParameters.Keys -icontains 'serviceBusNamespace')
        {
            $resource.properties["serviceBusNamespace"] = $serviceBusNamespace
        }

        if($PSBoundParameters.Keys -icontains 'port')
        {
            $resource.properties["port"] = $port
        }

        if($PSBoundParameters.Keys -icontains 'hostname')
        {
            $resource.properties["hostname"] = $hostname
        }

        if($PSBoundParameters.Keys -icontains 'serviceBusSuffix')
        {
            $resource.properties["serviceBusSuffix"] = $serviceBusSuffix
        }

        if($PSBoundParameters.Keys -icontains 'sendKeyValue')
        {
            $resource.properties["sendKeyValue"] = $sendKeyValue
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSwiftVirtualNetworkConnectionSlot
{
    [Alias('azure_native_web_webappswiftvirtualnetworkconnectionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Virtual Network subnet''s resource ID. This is the subnet that this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined first.)')]
        [string]
        $subnetResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='A flag that specifies if the scale unit this Web App is on supports Swift integration.)')]
        [bool]
        $swiftSupported,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will add or update connections for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSwiftVirtualNetworkConnectionSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'subnetResourceId')
        {
            $resource.properties["subnetResourceId"] = $subnetResourceId
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'swiftSupported')
        {
            $resource.properties["swiftSupported"] = $swiftSupported
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppConnectionStrings
{
    [Alias('azure_native_web_webappconnectionstrings')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Connection strings.)')]
        [ConnStringValueTypePair]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppConnectionStrings")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppHybridConnectionSlot
{
    [Alias('azure_native_web_webapphybridconnectionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus namespace.)')]
        [string]
        $serviceBusNamespace,
        [parameter(mandatory=$False,HelpMessage='The hostname of the endpoint.)')]
        [string]
        $hostname,
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus relay.)')]
        [string]
        $relayName,
        [parameter(mandatory=$False,HelpMessage='The ARM URI to the Service Bus relay.)')]
        [string]
        $relayArmUri,
        [parameter(mandatory=$False,HelpMessage='The name of the slot for the web app.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='The suffix for the service bus endpoint. By default this is .servicebus.windows.net)')]
        [string]
        $serviceBusSuffix,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The port of the endpoint.)')]
        [int]
        $port,
        [parameter(mandatory=$False,HelpMessage='The namespace for this hybrid connection.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The value of the Service Bus key. This is used to authenticate to Service Bus. In ARM this key will not be returned
normally, use the POST /listKeys API instead.)'
)]
        [string]
        $sendKeyValue,
        [parameter(mandatory=$False,HelpMessage='The name of the Service Bus key which has Send permissions. This is used to authenticate to Service Bus.)')]
        [string]
        $sendKeyName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppHybridConnectionSlot")

        $resource.properties["name"] = $name
        $resource.properties["namespaceName"] = $namespaceName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'serviceBusNamespace')
        {
            $resource.properties["serviceBusNamespace"] = $serviceBusNamespace
        }

        if($PSBoundParameters.Keys -icontains 'hostname')
        {
            $resource.properties["hostname"] = $hostname
        }

        if($PSBoundParameters.Keys -icontains 'relayName')
        {
            $resource.properties["relayName"] = $relayName
        }

        if($PSBoundParameters.Keys -icontains 'relayArmUri')
        {
            $resource.properties["relayArmUri"] = $relayArmUri
        }

        if($PSBoundParameters.Keys -icontains 'serviceBusSuffix')
        {
            $resource.properties["serviceBusSuffix"] = $serviceBusSuffix
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'port')
        {
            $resource.properties["port"] = $port
        }

        if($PSBoundParameters.Keys -icontains 'sendKeyValue')
        {
            $resource.properties["sendKeyValue"] = $sendKeyValue
        }

        if($PSBoundParameters.Keys -icontains 'sendKeyName')
        {
            $resource.properties["sendKeyName"] = $sendKeyName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppSourceControl
{
    [Alias('azure_native_web_webappsourcecontrol')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='If GitHub Action is selected, than the associated configuration.)')]
        [GitHubActionConfiguration]
        $gitHubActionConfiguration,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if this is deployed via GitHub action.)')]
        [bool]
        $isGitHubAction,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to limit to manual integration; <code>false</code> to enable continuous integration (which configures webhooks into online repos like GitHub).)')]
        [bool]
        $isManualIntegration,
        [parameter(mandatory=$False,HelpMessage='Name of branch to use for deployment.)')]
        [string]
        $branch,
        [parameter(mandatory=$False,HelpMessage='Repository or source control URL.)')]
        [string]
        $repoUrl,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> for a Mercurial repository; <code>false</code> for a Git repository.)')]
        [bool]
        $isMercurial,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to enable deployment rollback; otherwise, <code>false</code>.)')]
        [bool]
        $deploymentRollbackEnabled,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppSourceControl")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'gitHubActionConfiguration')
        {
            $resource.properties["gitHubActionConfiguration"] = $gitHubActionConfiguration
        }

        if($PSBoundParameters.Keys -icontains 'isGitHubAction')
        {
            $resource.properties["isGitHubAction"] = $isGitHubAction
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'isManualIntegration')
        {
            $resource.properties["isManualIntegration"] = $isManualIntegration
        }

        if($PSBoundParameters.Keys -icontains 'branch')
        {
            $resource.properties["branch"] = $branch
        }

        if($PSBoundParameters.Keys -icontains 'repoUrl')
        {
            $resource.properties["repoUrl"] = $repoUrl
        }

        if($PSBoundParameters.Keys -icontains 'isMercurial')
        {
            $resource.properties["isMercurial"] = $isMercurial
        }

        if($PSBoundParameters.Keys -icontains 'deploymentRollbackEnabled')
        {
            $resource.properties["deploymentRollbackEnabled"] = $deploymentRollbackEnabled
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ConnectionError
{
    [string] $code
    [string] $message
    [object] $tags
    [string] $etag
    [string] $location
}
function New-AzureNativeTypeWebConnectionError
{
    param (
        [parameter(mandatory=$False,HelpMessage='Code of the status)')]
        [string]
        $code,
        [parameter(mandatory=$False,HelpMessage='Description of the status)')]
        [string]
        $message,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Resource ETag)')]
        [string]
        $etag,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location
    )

    process
    {
        return $([ConnectionError]$PSBoundParameters)
    }
}
class ConnectionStatusDefinition
{
    [string] $status
    [ConnectionError] $error
    [string] $target
}
function New-AzureNativeTypeWebConnectionStatusDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The gateway status)')]
        [string]
        $status,
        [parameter(mandatory=$False,HelpMessage='Connection error)')]
        [ConnectionError]
        $error,
        [parameter(mandatory=$False,HelpMessage='Target of the error)')]
        [string]
        $target
    )

    process
    {
        return $([ConnectionStatusDefinition]$PSBoundParameters)
    }
}
class ApiReference
{
    [object] $swagger
    [string] $type
    [string] $brandColor
    [string] $iconUri
    [string] $description
    [string] $displayName
    [string] $name
    [string] $id
}
function New-AzureNativeTypeWebApiReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The JSON representation of the swagger)')]
        $swagger,
        [parameter(mandatory=$False,HelpMessage='Resource reference type)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Brand color)')]
        [string]
        $brandColor,
        [parameter(mandatory=$False,HelpMessage='The icon URI)')]
        [string]
        $iconUri,
        [parameter(mandatory=$False,HelpMessage='The custom API description)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The display name)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The name of the API)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Resource reference id)')]
        [string]
        $id
    )

    process
    {
        return $([ApiReference]$PSBoundParameters)
    }
}
class ApiConnectionTestLink
{
    [string] $requestUri
    [string] $method
}
function New-AzureNativeTypeWebApiConnectionTestLink
{
    param (
        [parameter(mandatory=$False,HelpMessage='Test link request URI)')]
        [string]
        $requestUri,
        [parameter(mandatory=$False,HelpMessage='HTTP Method)')]
        [string]
        $method
    )

    process
    {
        return $([ApiConnectionTestLink]$PSBoundParameters)
    }
}
class ApiConnectionDefinitionProperties
{
    [string] $changedTime
    [object] $parameterValues
    [ConnectionStatusDefinition[]] $statuses
    [string] $displayName
    [ApiReference] $api
    [string] $createdTime
    [object] $customParameterValues
    [object] $nonSecretParameterValues
    [ApiConnectionTestLink[]] $testLinks
}
function New-AzureNativeTypeWebApiConnectionDefinitionProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Timestamp of last connection change)')]
        [string]
        $changedTime,
        [parameter(mandatory=$False,HelpMessage='Dictionary of parameter values)')]
        [hashtable]
        $parameterValues,
        [parameter(mandatory=$False,HelpMessage='Status of the connection)')]
        $statuses,
        [parameter(mandatory=$False,HelpMessage='Display name)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [ApiReference]
        $api,
        [parameter(mandatory=$False,HelpMessage='Timestamp of the connection creation)')]
        [string]
        $createdTime,
        [parameter(mandatory=$False,HelpMessage='Dictionary of custom parameter values)')]
        [hashtable]
        $customParameterValues,
        [parameter(mandatory=$False,HelpMessage='Dictionary of nonsecret parameter values)')]
        [hashtable]
        $nonSecretParameterValues,
        [parameter(mandatory=$False,HelpMessage='Links to test the API connection)')]
        $testLinks
    )

    process
    {
        return $([ApiConnectionDefinitionProperties]$PSBoundParameters)
    }
}
function New-AzureNativeWebConnection
{
    [Alias('azure_native_web_connection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Subscription Id)')]
        [string]
        $subscriptionId,
        [parameter(mandatory=$False,HelpMessage=')')]
        [ApiConnectionDefinitionProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Connection name)')]
        [string]
        $connectionName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:Connection")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'subscriptionId')
        {
            $resource.properties["subscriptionId"] = $subscriptionId
        }

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'connectionName')
        {
            $resource.properties["connectionName"] = $connectionName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppPublicCertificateSlot
{
    [Alias('azure_native_web_webapppubliccertificateslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Public certificate name.)')]
        [string]
        $publicCertificateName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Public Certificate Location)')]
        $publicCertificateLocation,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Public Certificate byte array)')]
        [string]
        $blob,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will create a binding for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppPublicCertificateSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'publicCertificateName')
        {
            $resource.properties["publicCertificateName"] = $publicCertificateName
        }

        if($PSBoundParameters.Keys -icontains 'publicCertificateLocation')
        {
            $resource.properties["publicCertificateLocation"] = $publicCertificateLocation
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'blob')
        {
            $resource.properties["blob"] = $blob
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebStaticSiteUserProvidedFunctionAppForStaticSiteBuild
{
    [Alias('azure_native_web_staticsiteuserprovidedfunctionappforstaticsitebuild')]
    param (
        [parameter(mandatory=$False,HelpMessage='The region of the function app registered with the static site)')]
        [string]
        $functionAppRegion,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The stage site identifier.)')]
        [string]
        $environmentName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Specify <code>true</code> to force the update of the auth configuration on the function app even if an AzureStaticWebApps provider is already configured on the function app. The default is <code>false</code>.)')]
        [bool]
        $isForced,
        [parameter(mandatory=$False,HelpMessage='The resource id of the function app registered with the static site)')]
        [string]
        $functionAppResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the function app to register with the static site build.)')]
        [string]
        $functionAppName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:StaticSiteUserProvidedFunctionAppForStaticSiteBuild")

        $resource.properties["environmentName"] = $environmentName
        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'functionAppRegion')
        {
            $resource.properties["functionAppRegion"] = $functionAppRegion
        }

        if($PSBoundParameters.Keys -icontains 'isForced')
        {
            $resource.properties["isForced"] = $isForced
        }

        if($PSBoundParameters.Keys -icontains 'functionAppResourceId')
        {
            $resource.properties["functionAppResourceId"] = $functionAppResourceId
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'functionAppName')
        {
            $resource.properties["functionAppName"] = $functionAppName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebStaticSiteCustomDomain
{
    [Alias('azure_native_web_staticsitecustomdomain')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The custom domain to create.)')]
        [string]
        $domainName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Validation method for adding a custom domain)')]
        [string]
        $validationMethod,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:StaticSiteCustomDomain")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'domainName')
        {
            $resource.properties["domainName"] = $domainName
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'validationMethod')
        {
            $resource.properties["validationMethod"] = $validationMethod
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppVnetConnectionSlot
{
    [Alias('azure_native_web_webappvnetconnectionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Flag that is used to denote if this is VNET injection)')]
        [bool]
        $isSwift,
        [parameter(mandatory=$False,HelpMessage='The Virtual Network''s resource ID.)')]
        [string]
        $vnetResourceId,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='A certificate file (.cer) blob containing the public key of the private key used to authenticate a
Point-To-Site VPN connection.)'
)]
        [string]
        $certBlob,
        [parameter(mandatory=$False,HelpMessage='DNS servers to be used by this Virtual Network. This should be a comma-separated list of IP addresses.)')]
        [string]
        $dnsServers,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will add or update connections for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of an existing Virtual Network.)')]
        [string]
        $vnetName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppVnetConnectionSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'isSwift')
        {
            $resource.properties["isSwift"] = $isSwift
        }

        if($PSBoundParameters.Keys -icontains 'vnetResourceId')
        {
            $resource.properties["vnetResourceId"] = $vnetResourceId
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'certBlob')
        {
            $resource.properties["certBlob"] = $certBlob
        }

        if($PSBoundParameters.Keys -icontains 'dnsServers')
        {
            $resource.properties["dnsServers"] = $dnsServers
        }

        if($PSBoundParameters.Keys -icontains 'vnetName')
        {
            $resource.properties["vnetName"] = $vnetName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppPublicCertificate
{
    [Alias('azure_native_web_webapppubliccertificate')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Public certificate name.)')]
        [string]
        $publicCertificateName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Public Certificate Location)')]
        $publicCertificateLocation,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Public Certificate byte array)')]
        [string]
        $blob,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppPublicCertificate")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'publicCertificateName')
        {
            $resource.properties["publicCertificateName"] = $publicCertificateName
        }

        if($PSBoundParameters.Keys -icontains 'publicCertificateLocation')
        {
            $resource.properties["publicCertificateLocation"] = $publicCertificateLocation
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'blob')
        {
            $resource.properties["blob"] = $blob
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppApplicationSettings
{
    [Alias('azure_native_web_webappapplicationsettings')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Settings.)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppApplicationSettings")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebStaticSiteUserProvidedFunctionAppForStaticSite
{
    [Alias('azure_native_web_staticsiteuserprovidedfunctionappforstaticsite')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the static site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Specify <code>true</code> to force the update of the auth configuration on the function app even if an AzureStaticWebApps provider is already configured on the function app. The default is <code>false</code>.)')]
        [bool]
        $isForced,
        [parameter(mandatory=$False,HelpMessage='Name of the function app to register with the static site.)')]
        [string]
        $functionAppName,
        [parameter(mandatory=$False,HelpMessage='The region of the function app registered with the static site)')]
        [string]
        $functionAppRegion,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The resource id of the function app registered with the static site)')]
        [string]
        $functionAppResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:StaticSiteUserProvidedFunctionAppForStaticSite")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'isForced')
        {
            $resource.properties["isForced"] = $isForced
        }

        if($PSBoundParameters.Keys -icontains 'functionAppName')
        {
            $resource.properties["functionAppName"] = $functionAppName
        }

        if($PSBoundParameters.Keys -icontains 'functionAppRegion')
        {
            $resource.properties["functionAppRegion"] = $functionAppRegion
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'functionAppResourceId')
        {
            $resource.properties["functionAppResourceId"] = $functionAppResourceId
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppAuthSettingsV2
{
    [Alias('azure_native_web_webappauthsettingsv2')]
    param (
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the platform of App Service Authentication/Authorization.)')]
        [AuthPlatform]
        $platform,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The configuration settings that determines the validation flow of users using App Service Authentication/Authorization.)')]
        [GlobalValidation]
        $globalValidation,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of each of the identity providers used to configure App Service Authentication/Authorization.)')]
        [IdentityProviders]
        $identityProviders,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the HTTP requests for authentication and authorization requests made against App Service Authentication/Authorization.)')]
        [HttpSettings]
        $httpSettings,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The configuration settings of the login flow of users using App Service Authentication/Authorization.)')]
        [Login]
        $login,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppAuthSettingsV2")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'platform')
        {
            $resource.properties["platform"] = $platform
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'globalValidation')
        {
            $resource.properties["globalValidation"] = $globalValidation
        }

        if($PSBoundParameters.Keys -icontains 'identityProviders')
        {
            $resource.properties["identityProviders"] = $identityProviders
        }

        if($PSBoundParameters.Keys -icontains 'httpSettings')
        {
            $resource.properties["httpSettings"] = $httpSettings
        }

        if($PSBoundParameters.Keys -icontains 'login')
        {
            $resource.properties["login"] = $login
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppMetadata
{
    [Alias('azure_native_web_webappmetadata')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Settings.)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppMetadata")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'properties')
        {
            $resource.properties["properties"] = $properties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class StaticSiteTemplateOptions
{
    [string] $description
    [bool] $isPrivate
    [string] $templateRepositoryUrl
    [string] $owner
    [string] $repositoryName
}
function New-AzureNativeTypeWebStaticSiteTemplateOptions
{
    param (
        [parameter(mandatory=$False,HelpMessage='Description of the newly generated repository.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Whether or not the newly generated repository is a private repository. Defaults to false (i.e. public).)')]
        [bool]
        $isPrivate,
        [parameter(mandatory=$False,HelpMessage='URL of the template repository. The newly generated repository will be based on this one.)')]
        [string]
        $templateRepositoryUrl,
        [parameter(mandatory=$False,HelpMessage='Owner of the newly generated repository.)')]
        [string]
        $owner,
        [parameter(mandatory=$False,HelpMessage='Name of the newly generated repository.)')]
        [string]
        $repositoryName
    )

    process
    {
        return $([StaticSiteTemplateOptions]$PSBoundParameters)
    }
}
class StaticSiteBuildProperties
{
    [string] $githubActionSecretNameOverride
    [string] $appBuildCommand
    [string] $appLocation
    [string] $apiLocation
    [string] $outputLocation
    [bool] $skipGithubActionWorkflowGeneration
    [string] $apiBuildCommand
    [string] $appArtifactLocation
}
function New-AzureNativeTypeWebStaticSiteBuildProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Github Action secret name override.)')]
        [string]
        $githubActionSecretNameOverride,
        [parameter(mandatory=$False,HelpMessage='A custom command to run during deployment of the static content application.)')]
        [string]
        $appBuildCommand,
        [parameter(mandatory=$False,HelpMessage='The path to the app code within the repository.)')]
        [string]
        $appLocation,
        [parameter(mandatory=$False,HelpMessage='The path to the api code within the repository.)')]
        [string]
        $apiLocation,
        [parameter(mandatory=$False,HelpMessage='The output path of the app after building.)')]
        [string]
        $outputLocation,
        [parameter(mandatory=$False,HelpMessage='Skip Github Action workflow generation.)')]
        [bool]
        $skipGithubActionWorkflowGeneration,
        [parameter(mandatory=$False,HelpMessage='A custom command to run during deployment of the Azure Functions API application.)')]
        [string]
        $apiBuildCommand,
        [parameter(mandatory=$False,HelpMessage='Deprecated: The path of the app artifacts after building (deprecated in favor of OutputLocation))')]
        [string]
        $appArtifactLocation
    )

    process
    {
        return $([StaticSiteBuildProperties]$PSBoundParameters)
    }
}
function New-AzureNativeWebStaticSite
{
    [Alias('azure_native_web_staticsite')]
    param (
        [parameter(mandatory=$False,HelpMessage='URL for the repository of the static site.)')]
        [string]
        $repositoryUrl,
        [parameter(mandatory=$False,HelpMessage='<code>false</code> if config file is locked for this static web app; otherwise, <code>true</code>.)')]
        [bool]
        $allowConfigFileUpdates,
        [parameter(mandatory=$False,HelpMessage='State indicating whether staging environments are allowed or not allowed for a static web app.)')]
        $stagingEnvironmentPolicy,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Template options for generating a new repository.)')]
        [StaticSiteTemplateOptions]
        $templateProperties,
        [parameter(mandatory=$False,HelpMessage='Managed service identity.)')]
        [ManagedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The target branch in the repository.)')]
        [string]
        $branch,
        [parameter(mandatory=$False,HelpMessage='Resource Location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Name of the static site to create or update.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Build properties to configure on the repository.)')]
        [StaticSiteBuildProperties]
        $buildProperties,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='A user''s github repository token. This is used to setup the Github Actions workflow file and API secrets.)')]
        [string]
        $repositoryToken,
        [parameter(mandatory=$False,HelpMessage='Description of a SKU for a scalable resource.)')]
        [SkuDescription]
        $sku,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:StaticSite")

        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'repositoryUrl')
        {
            $resource.properties["repositoryUrl"] = $repositoryUrl
        }

        if($PSBoundParameters.Keys -icontains 'allowConfigFileUpdates')
        {
            $resource.properties["allowConfigFileUpdates"] = $allowConfigFileUpdates
        }

        if($PSBoundParameters.Keys -icontains 'stagingEnvironmentPolicy')
        {
            $resource.properties["stagingEnvironmentPolicy"] = $stagingEnvironmentPolicy
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'templateProperties')
        {
            $resource.properties["templateProperties"] = $templateProperties
        }

        if($PSBoundParameters.Keys -icontains 'identity')
        {
            $resource.properties["identity"] = $identity
        }

        if($PSBoundParameters.Keys -icontains 'branch')
        {
            $resource.properties["branch"] = $branch
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'name')
        {
            $resource.properties["name"] = $name
        }

        if($PSBoundParameters.Keys -icontains 'buildProperties')
        {
            $resource.properties["buildProperties"] = $buildProperties
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'repositoryToken')
        {
            $resource.properties["repositoryToken"] = $repositoryToken
        }

        if($PSBoundParameters.Keys -icontains 'sku')
        {
            $resource.properties["sku"] = $sku
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class AzureBlobStorageHttpLogsConfig
{
    [string] $sasUrl
    [int] $retentionInDays
    [bool] $enabled
}
function New-AzureNativeTypeWebAzureBlobStorageHttpLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='SAS url to a azure blob container with read/write/list/delete permissions.)')]
        [string]
        $sasUrl,
        [parameter(mandatory=$False,HelpMessage='Retention in days.
Remove blobs older than X days.
0 or lower means no retention.)'
)]
        [int]
        $retentionInDays,
        [parameter(mandatory=$False,HelpMessage='True if configuration is enabled, false if it is disabled and null if configuration is not set.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([AzureBlobStorageHttpLogsConfig]$PSBoundParameters)
    }
}
class FileSystemHttpLogsConfig
{
    [int] $retentionInDays
    [int] $retentionInMb
    [bool] $enabled
}
function New-AzureNativeTypeWebFileSystemHttpLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Retention in days.
Remove files older than X days.
0 or lower means no retention.)'
)]
        [int]
        $retentionInDays,
        [parameter(mandatory=$False,HelpMessage='Maximum size in megabytes that http log files can use.
When reached old log files will be removed to make space for new ones.
Value can range between 25 and 100.)'
)]
        [int]
        $retentionInMb,
        [parameter(mandatory=$False,HelpMessage='True if configuration is enabled, false if it is disabled and null if configuration is not set.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([FileSystemHttpLogsConfig]$PSBoundParameters)
    }
}
class HttpLogsConfig
{
    [AzureBlobStorageHttpLogsConfig] $azureBlobStorage
    [FileSystemHttpLogsConfig] $fileSystem
}
function New-AzureNativeTypeWebHttpLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Http logs to azure blob storage configuration.)')]
        [AzureBlobStorageHttpLogsConfig]
        $azureBlobStorage,
        [parameter(mandatory=$False,HelpMessage='Http logs to file system configuration.)')]
        [FileSystemHttpLogsConfig]
        $fileSystem
    )

    process
    {
        return $([HttpLogsConfig]$PSBoundParameters)
    }
}
class EnabledConfig
{
    [bool] $enabled
}
function New-AzureNativeTypeWebEnabledConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='True if configuration is enabled, false if it is disabled and null if configuration is not set.)')]
        [bool]
        $enabled
    )

    process
    {
        return $([EnabledConfig]$PSBoundParameters)
    }
}
class AzureBlobStorageApplicationLogsConfig
{
    [string] $sasUrl
    [int] $retentionInDays
    [ValidateSet('Off', 'Verbose', 'Information', 'Warning', 'Error')]
    [object] $level
}
function New-AzureNativeTypeWebAzureBlobStorageApplicationLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='SAS url to a azure blob container with read/write/list/delete permissions.)')]
        [string]
        $sasUrl,
        [parameter(mandatory=$False,HelpMessage='Retention in days.
Remove blobs older than X days.
0 or lower means no retention.)'
)]
        [int]
        $retentionInDays,
        [parameter(mandatory=$False,HelpMessage='Log level.)')]
        $level
    )

    process
    {
        return $([AzureBlobStorageApplicationLogsConfig]$PSBoundParameters)
    }
}
class AzureTableStorageApplicationLogsConfig
{
    [ValidateSet('Off', 'Verbose', 'Information', 'Warning', 'Error')]
    [object] $level
    [ValidateSet('Off', 'Verbose', 'Information', 'Warning', 'Error')]
    [string] $sasUrl
}
function New-AzureNativeTypeWebAzureTableStorageApplicationLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Log level.)')]
        $level,
        [parameter(mandatory=$False,HelpMessage='SAS URL to an Azure table with add/query/delete permissions.)')]
        [string]
        $sasUrl
    )

    process
    {
        return $([AzureTableStorageApplicationLogsConfig]$PSBoundParameters)
    }
}
class FileSystemApplicationLogsConfig
{
    [ValidateSet('Off', 'Verbose', 'Information', 'Warning', 'Error')]
    [object] $level
}
function New-AzureNativeTypeWebFileSystemApplicationLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Log level.)')]
        $level
    )

    process
    {
        return $([FileSystemApplicationLogsConfig]$PSBoundParameters)
    }
}
class ApplicationLogsConfig
{
    [AzureBlobStorageApplicationLogsConfig] $azureBlobStorage
    [AzureTableStorageApplicationLogsConfig] $azureTableStorage
    [FileSystemApplicationLogsConfig] $fileSystem
}
function New-AzureNativeTypeWebApplicationLogsConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Application logs to blob storage configuration.)')]
        [AzureBlobStorageApplicationLogsConfig]
        $azureBlobStorage,
        [parameter(mandatory=$False,HelpMessage='Application logs to azure table storage configuration.)')]
        [AzureTableStorageApplicationLogsConfig]
        $azureTableStorage,
        [parameter(mandatory=$False,HelpMessage='Application logs to file system configuration.)')]
        [FileSystemApplicationLogsConfig]
        $fileSystem
    )

    process
    {
        return $([ApplicationLogsConfig]$PSBoundParameters)
    }
}
function New-AzureNativeWebWebAppDiagnosticLogsConfiguration
{
    [Alias('azure_native_web_webappdiagnosticlogsconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='HTTP logs configuration.)')]
        [HttpLogsConfig]
        $httpLogs,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Detailed error messages configuration.)')]
        [EnabledConfig]
        $detailedErrorMessages,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Application logs configuration.)')]
        [ApplicationLogsConfig]
        $applicationLogs,
        [parameter(mandatory=$False,HelpMessage='Failed requests tracing configuration.)')]
        [EnabledConfig]
        $failedRequestsTracing,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppDiagnosticLogsConfiguration")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'httpLogs')
        {
            $resource.properties["httpLogs"] = $httpLogs
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'detailedErrorMessages')
        {
            $resource.properties["detailedErrorMessages"] = $detailedErrorMessages
        }

        if($PSBoundParameters.Keys -icontains 'applicationLogs')
        {
            $resource.properties["applicationLogs"] = $applicationLogs
        }

        if($PSBoundParameters.Keys -icontains 'failedRequestsTracing')
        {
            $resource.properties["failedRequestsTracing"] = $failedRequestsTracing
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppPrivateEndpointConnectionSlot
{
    [Alias('azure_native_web_webappprivateendpointconnectionslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the site.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The state of a private link connection)')]
        [PrivateLinkConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppPrivateEndpointConnectionSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'privateEndpointConnectionName')
        {
            $resource.properties["privateEndpointConnectionName"] = $privateEndpointConnectionName
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'privateLinkServiceConnectionState')
        {
            $resource.properties["privateLinkServiceConnectionState"] = $privateLinkServiceConnectionState
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppAuthSettingsSlot
{
    [Alias('azure_native_web_webappauthsettingsslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='The ConfigVersion of the Authentication / Authorization feature in use for the current app.
The setting in this value can control the behavior of the control plane for Authentication / Authorization.)'
)]
        [string]
        $configVersion,
        [parameter(mandatory=$False,HelpMessage='Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such.)')]
        [bool]
        $validateIssuer,
        [parameter(mandatory=$False,HelpMessage='The Client Id of the GitHub app used for login.
This setting is required for enabling Github login)'
)]
        [string]
        $gitHubClientId,
        [parameter(mandatory=$False,HelpMessage='The App Secret of the Facebook app used for Facebook Login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login)'
)]
        [string]
        $facebookAppSecret,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 client secret that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm)'
)]
        [string]
        $microsoftAccountClientSecret,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='"true" if the auth config settings should be read from a file,
"false" otherwise)'
)]
        [string]
        $isAuthFromFile,
        [parameter(mandatory=$False,HelpMessage='Gets a JSON string containing the Azure AD Acl settings.)')]
        [string]
        $aadClaimsAuthorization,
        [parameter(mandatory=$False,HelpMessage='An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
a replacement for the Client Secret. It is also optional.)'
)]
        [string]
        $clientSecretCertificateThumbprint,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
 The default is <code>false</code>.)'
)]
        [bool]
        $tokenStoreEnabled,
        [parameter(mandatory=$False,HelpMessage='The number of hours after session token expiration that a session token can be used to
call the token refresh API. The default is 72 hours.)'
)]
        [int]
        $tokenRefreshExtensionHours,
        [parameter(mandatory=$False,HelpMessage='The App ID of the Facebook app used for login.
This setting is required for enabling Facebook Login.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login)'
)]
        [string]
        $facebookAppId,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
This setting is optional. If not specified, "wl.basic" is used as the default scope.
Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx)'
)]
        [string[]]
        $microsoftAccountOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='The path of the config file containing auth settings.
If the path is relative, base will the site''s root directory.)'
)]
        [string]
        $authFilePath,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
This setting is optional)'
)]
        [string[]]
        $gitHubOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='Allowed audience values to consider when validating JWTs issued by
Azure Active Directory. Note that the <code>ClientID</code> value is always considered an
allowed audience, regardless of this setting.)'
)]
        [string[]]
        $allowedAudiences,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret of the relying party application.)')]
        [string]
        $clientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The Client ID of this relying party application, known as the client_id.
This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
other 3rd party OpenID Connect providers.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html)'
)]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='The client secret associated with the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/)'
)]
        [string]
        $googleClientSecret,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the app secret used for Facebook Login.)')]
        [string]
        $facebookAppSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The Client Secret of the GitHub app used for Github Login.
This setting is required for enabling Github login.)'
)]
        [string]
        $gitHubClientSecret,
        [parameter(mandatory=$False,HelpMessage='The OpenID Connect Client ID for the Google web application.
This setting is required for enabling Google Sign-In.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/)'
)]
        [string]
        $googleClientId,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret associated with
the Google web application.)'
)]
        [string]
        $googleClientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='<code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>.)')]
        [bool]
        $enabled,
        [parameter(mandatory=$False,HelpMessage='Name of web app slot. If not specified then will default to production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
This URI is a case-sensitive identifier for the token issuer.
More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html)'
)]
        [string]
        $issuer,
        [parameter(mandatory=$False,HelpMessage='The OAuth 1.0a consumer key of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in)'
)]
        [string]
        $twitterConsumerKey,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
This setting is optional.
Facebook Login documentation: https://developers.facebook.com/docs/facebook-login)'
)]
        [string[]]
        $facebookOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/)'
)]
        [string[]]
        $googleOAuthScopes,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The app setting name containing the OAuth 2.0 client secret that was created for the
app used for authentication.)'
)]
        [string]
        $microsoftAccountClientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The action to take when an unauthenticated client attempts to access the app.)')]
        $unauthenticatedClientAction,
        [parameter(mandatory=$False,HelpMessage='The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
The setting in this value can control the behavior of certain features in the Authentication / Authorization module.)'
)]
        [string]
        $runtimeVersion,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the client secret of the Github
app used for GitHub Login.)'
)]
        [string]
        $gitHubClientSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The default authentication provider to use when multiple providers are configured.
This setting is only needed if multiple providers are configured and the unauthenticated client
action is set to "RedirectToLoginPage".)'
)]
        $defaultProvider,
        [parameter(mandatory=$False,HelpMessage='Name of web app.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
application used for sign-in.)'
)]
        [string]
        $twitterConsumerSecretSettingName,
        [parameter(mandatory=$False,HelpMessage='The OAuth 2.0 client ID that was created for the app used for authentication.
This setting is required for enabling Microsoft Account authentication.
Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm)'
)]
        [string]
        $microsoftAccountClientId,
        [parameter(mandatory=$False,HelpMessage='External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
This is an advanced setting typically only needed by Windows Store application backends.
Note that URLs within the current domain are always implicitly allowed.)'
)]
        [string[]]
        $allowedExternalRedirectUrls,
        [parameter(mandatory=$False,HelpMessage='The Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html)'
)]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='Login parameters to send to the OpenID Connect authorization endpoint when
a user logs in. Each parameter must be in the form "key=value".)'
)]
        [string[]]
        $additionalLoginParams,
        [parameter(mandatory=$False,HelpMessage='The OAuth 1.0a consumer secret of the Twitter application used for sign-in.
This setting is required for enabling Twitter Sign-In.
Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in)'
)]
        [string]
        $twitterConsumerSecret,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppAuthSettingsSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'configVersion')
        {
            $resource.properties["configVersion"] = $configVersion
        }

        if($PSBoundParameters.Keys -icontains 'validateIssuer')
        {
            $resource.properties["validateIssuer"] = $validateIssuer
        }

        if($PSBoundParameters.Keys -icontains 'gitHubClientId')
        {
            $resource.properties["gitHubClientId"] = $gitHubClientId
        }

        if($PSBoundParameters.Keys -icontains 'facebookAppSecret')
        {
            $resource.properties["facebookAppSecret"] = $facebookAppSecret
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountClientSecret')
        {
            $resource.properties["microsoftAccountClientSecret"] = $microsoftAccountClientSecret
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'isAuthFromFile')
        {
            $resource.properties["isAuthFromFile"] = $isAuthFromFile
        }

        if($PSBoundParameters.Keys -icontains 'aadClaimsAuthorization')
        {
            $resource.properties["aadClaimsAuthorization"] = $aadClaimsAuthorization
        }

        if($PSBoundParameters.Keys -icontains 'clientSecretCertificateThumbprint')
        {
            $resource.properties["clientSecretCertificateThumbprint"] = $clientSecretCertificateThumbprint
        }

        if($PSBoundParameters.Keys -icontains 'tokenStoreEnabled')
        {
            $resource.properties["tokenStoreEnabled"] = $tokenStoreEnabled
        }

        if($PSBoundParameters.Keys -icontains 'tokenRefreshExtensionHours')
        {
            $resource.properties["tokenRefreshExtensionHours"] = $tokenRefreshExtensionHours
        }

        if($PSBoundParameters.Keys -icontains 'facebookAppId')
        {
            $resource.properties["facebookAppId"] = $facebookAppId
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountOAuthScopes')
        {
            $resource.properties["microsoftAccountOAuthScopes"] = $microsoftAccountOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'authFilePath')
        {
            $resource.properties["authFilePath"] = $authFilePath
        }

        if($PSBoundParameters.Keys -icontains 'gitHubOAuthScopes')
        {
            $resource.properties["gitHubOAuthScopes"] = $gitHubOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'allowedAudiences')
        {
            $resource.properties["allowedAudiences"] = $allowedAudiences
        }

        if($PSBoundParameters.Keys -icontains 'clientSecretSettingName')
        {
            $resource.properties["clientSecretSettingName"] = $clientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'clientId')
        {
            $resource.properties["clientId"] = $clientId
        }

        if($PSBoundParameters.Keys -icontains 'googleClientSecret')
        {
            $resource.properties["googleClientSecret"] = $googleClientSecret
        }

        if($PSBoundParameters.Keys -icontains 'facebookAppSecretSettingName')
        {
            $resource.properties["facebookAppSecretSettingName"] = $facebookAppSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'gitHubClientSecret')
        {
            $resource.properties["gitHubClientSecret"] = $gitHubClientSecret
        }

        if($PSBoundParameters.Keys -icontains 'googleClientId')
        {
            $resource.properties["googleClientId"] = $googleClientId
        }

        if($PSBoundParameters.Keys -icontains 'googleClientSecretSettingName')
        {
            $resource.properties["googleClientSecretSettingName"] = $googleClientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'enabled')
        {
            $resource.properties["enabled"] = $enabled
        }

        if($PSBoundParameters.Keys -icontains 'issuer')
        {
            $resource.properties["issuer"] = $issuer
        }

        if($PSBoundParameters.Keys -icontains 'twitterConsumerKey')
        {
            $resource.properties["twitterConsumerKey"] = $twitterConsumerKey
        }

        if($PSBoundParameters.Keys -icontains 'facebookOAuthScopes')
        {
            $resource.properties["facebookOAuthScopes"] = $facebookOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'googleOAuthScopes')
        {
            $resource.properties["googleOAuthScopes"] = $googleOAuthScopes
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountClientSecretSettingName')
        {
            $resource.properties["microsoftAccountClientSecretSettingName"] = $microsoftAccountClientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'unauthenticatedClientAction')
        {
            $resource.properties["unauthenticatedClientAction"] = $unauthenticatedClientAction
        }

        if($PSBoundParameters.Keys -icontains 'runtimeVersion')
        {
            $resource.properties["runtimeVersion"] = $runtimeVersion
        }

        if($PSBoundParameters.Keys -icontains 'gitHubClientSecretSettingName')
        {
            $resource.properties["gitHubClientSecretSettingName"] = $gitHubClientSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'defaultProvider')
        {
            $resource.properties["defaultProvider"] = $defaultProvider
        }

        if($PSBoundParameters.Keys -icontains 'twitterConsumerSecretSettingName')
        {
            $resource.properties["twitterConsumerSecretSettingName"] = $twitterConsumerSecretSettingName
        }

        if($PSBoundParameters.Keys -icontains 'microsoftAccountClientId')
        {
            $resource.properties["microsoftAccountClientId"] = $microsoftAccountClientId
        }

        if($PSBoundParameters.Keys -icontains 'allowedExternalRedirectUrls')
        {
            $resource.properties["allowedExternalRedirectUrls"] = $allowedExternalRedirectUrls
        }

        if($PSBoundParameters.Keys -icontains 'clientSecret')
        {
            $resource.properties["clientSecret"] = $clientSecret
        }

        if($PSBoundParameters.Keys -icontains 'additionalLoginParams')
        {
            $resource.properties["additionalLoginParams"] = $additionalLoginParams
        }

        if($PSBoundParameters.Keys -icontains 'twitterConsumerSecret')
        {
            $resource.properties["twitterConsumerSecret"] = $twitterConsumerSecret
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebWebAppDomainOwnershipIdentifierSlot
{
    [Alias('azure_native_web_webappdomainownershipidentifierslot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of domain ownership identifier.)')]
        [string]
        $domainOwnershipIdentifierName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group to which the resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Kind of resource.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the deployment slot. If a slot is not specified, the API will delete the binding for the production slot.)')]
        [string]
        $slot,
        [parameter(mandatory=$False,HelpMessage='String representation of the identity.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Name of the app.)')]
        [string]
        $name,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:web:WebAppDomainOwnershipIdentifierSlot")

        $resource.properties["name"] = $name
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["slot"] = $slot

        if($PSBoundParameters.Keys -icontains 'domainOwnershipIdentifierName')
        {
            $resource.properties["domainOwnershipIdentifierName"] = $domainOwnershipIdentifierName
        }

        if($PSBoundParameters.Keys -icontains 'kind')
        {
            $resource.properties["kind"] = $kind
        }

        if($PSBoundParameters.Keys -icontains 'value')
        {
            $resource.properties["value"] = $value
        }

        $global:pulumiresources += $resource
        return $resource
    }
}