pspulumiyaml.azurenative.workloads.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionWorkloadsGetSAPSizingRecommendations
{
    param (
        [parameter(mandatory=$False,HelpMessage='The database memory configuration.)')]
        [int]
        $dbMemory,
        [parameter(mandatory=$False,HelpMessage='Defines the environment type - Production/Non Production.)')]
        [string]
        [ValidateSet('NonProd', 'Prod')]
        $environment,
        [parameter(mandatory=$False,HelpMessage='The database type.)')]
        [string]
        [ValidateSet('HANA', 'DB2')]
        $databaseType,
        [parameter(mandatory=$False,HelpMessage='The SAP Application Performance Standard measurement.)')]
        [int]
        $saps,
        [parameter(mandatory=$False,HelpMessage='The high availability type.)')]
        [string]
        [ValidateSet('AvailabilitySet', 'AvailabilityZone')]
        $highAvailabilityType,
        [parameter(mandatory=$False,HelpMessage='Defines the SAP Product type.)')]
        [string]
        [ValidateSet('ECC', 'S4HANA', 'Other')]
        $sapProduct,
        [parameter(mandatory=$False,HelpMessage='The name of Azure region.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The DB scale method.)')]
        [string]
        [ValidateSet('ScaleUp')]
        $dbScaleMethod,
        [parameter(mandatory=$False,HelpMessage='The deployment type. Eg: SingleServer/ThreeTier)')]
        [string]
        [ValidateSet('SingleServer', 'ThreeTier')]
        $deploymentType,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource is to be created.)')]
        [string]
        $appLocation
    )

    process
    {
        $arguments = @{}
        $arguments["appLocation"] = $appLocation
        $arguments["databaseType"] = $databaseType
        $arguments["dbMemory"] = $dbMemory
        $arguments["deploymentType"] = $deploymentType
        $arguments["environment"] = $environment
        $arguments["location"] = $location
        $arguments["sapProduct"] = $sapProduct
        $arguments["saps"] = $saps

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPSizingRecommendations -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetmonitor
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the SAP monitor resource.)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getmonitor -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPApplicationServerInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of SAP Application Server instance.)')]
        [string]
        $applicationInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["applicationInstanceName"] = $applicationInstanceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sapVirtualInstanceName"] = $sapVirtualInstanceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPApplicationServerInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetProviderInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the SAP monitor resource.)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Name of the provider instance.)')]
        [string]
        $providerInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["providerInstanceName"] = $providerInstanceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getProviderInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetWordpressInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='Php workload name)')]
        [string]
        $phpWorkloadName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getWordpressInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetPhpWorkload
{
    param (
        [parameter(mandatory=$False,HelpMessage='Php workload name)')]
        [string]
        $phpWorkloadName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getPhpWorkload -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPDiskConfigurations
{
    param (
        [parameter(mandatory=$False,HelpMessage='Defines the SAP Product type.)')]
        [string]
        [ValidateSet('ECC', 'S4HANA', 'Other')]
        $sapProduct,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the SAP resources will be created.)')]
        [string]
        $appLocation,
        [parameter(mandatory=$False,HelpMessage='The name of Azure region.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The VM SKU for database instance.)')]
        [string]
        $dbVmSku,
        [parameter(mandatory=$False,HelpMessage='Defines the environment type - Production/Non Production.)')]
        [string]
        [ValidateSet('NonProd', 'Prod')]
        $environment,
        [parameter(mandatory=$False,HelpMessage='The database type. Eg: HANA, DB2, etc)')]
        [string]
        [ValidateSet('HANA', 'DB2')]
        $databaseType,
        [parameter(mandatory=$False,HelpMessage='The deployment type. Eg: SingleServer/ThreeTier)')]
        [string]
        [ValidateSet('SingleServer', 'ThreeTier')]
        $deploymentType
    )

    process
    {
        $arguments = @{}
        $arguments["appLocation"] = $appLocation
        $arguments["databaseType"] = $databaseType
        $arguments["dbVmSku"] = $dbVmSku
        $arguments["deploymentType"] = $deploymentType
        $arguments["environment"] = $environment
        $arguments["location"] = $location
        $arguments["sapProduct"] = $sapProduct

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPDiskConfigurations -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPSupportedSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The high availability type.)')]
        [string]
        [ValidateSet('AvailabilitySet', 'AvailabilityZone')]
        $highAvailabilityType,
        [parameter(mandatory=$False,HelpMessage='Defines the SAP Product type.)')]
        [string]
        [ValidateSet('ECC', 'S4HANA', 'Other')]
        $sapProduct,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource is to be created.)')]
        [string]
        $appLocation,
        [parameter(mandatory=$False,HelpMessage='The name of Azure region.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Defines the environment type - Production/Non Production.)')]
        [string]
        [ValidateSet('NonProd', 'Prod')]
        $environment,
        [parameter(mandatory=$False,HelpMessage='The database type. Eg: HANA, DB2, etc)')]
        [string]
        [ValidateSet('HANA', 'DB2')]
        $databaseType,
        [parameter(mandatory=$False,HelpMessage='The deployment type. Eg: SingleServer/ThreeTier)')]
        [string]
        [ValidateSet('SingleServer', 'ThreeTier')]
        $deploymentType
    )

    process
    {
        $arguments = @{}
        $arguments["appLocation"] = $appLocation
        $arguments["databaseType"] = $databaseType
        $arguments["deploymentType"] = $deploymentType
        $arguments["environment"] = $environment
        $arguments["location"] = $location
        $arguments["sapProduct"] = $sapProduct

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPSupportedSku -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPAvailabilityZoneDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of Azure region.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Defines the SAP Product type.)')]
        [string]
        [ValidateSet('ECC', 'S4HANA', 'Other')]
        $sapProduct,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the SAP resources will be created.)')]
        [string]
        $appLocation,
        [parameter(mandatory=$False,HelpMessage='The database type. Eg: HANA, DB2, etc)')]
        [string]
        [ValidateSet('HANA', 'DB2')]
        $databaseType
    )

    process
    {
        $arguments = @{}
        $arguments["appLocation"] = $appLocation
        $arguments["databaseType"] = $databaseType
        $arguments["location"] = $location
        $arguments["sapProduct"] = $sapProduct

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPAvailabilityZoneDetails -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPVirtualInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPVirtualInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPDatabaseInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='Database Instance string modeled as parameter for auto generation to work correctly.)')]
        [string]
        $databaseInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["databaseInstanceName"] = $databaseInstanceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sapVirtualInstanceName"] = $sapVirtualInstanceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPDatabaseInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWorkloadsGetSAPCentralInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='Central Instance name string modeled as parameter for auto generation to work correctly.)')]
        [string]
        $centralInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["centralInstanceName"] = $centralInstanceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sapVirtualInstanceName"] = $sapVirtualInstanceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:workloads:getSAPCentralInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class DiskInfo
{
    [ArgumentCompletions('Premium_LRS', 'Standard_LRS', 'StandardSSD_LRS')]
    [object] $storageType
    [int] $sizeInGB
}
function New-AzureNativeTypeWorkloadsDiskInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='Storage type)')]
        $storageType,
        [parameter(mandatory=$False,HelpMessage='Disk size in GB)')]
        [int]
        $sizeInGB
    )

    process
    {
        return $([DiskInfo]$PSBoundParameters)
    }
}
class OsImageProfile
{
    [ArgumentCompletions('latest')]
    [string] $version
    [ArgumentCompletions('Canonical')]
    [string] $publisher
    [ArgumentCompletions('UbuntuServer')]
    [string] $offer
    [ArgumentCompletions('18.04-LTS', '16.04-LTS')]
    [string] $sku
}
function New-AzureNativeTypeWorkloadsOsImageProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='OS image version)')]
        [string]
        [ValidateSet('latest')]
        $version,
        [parameter(mandatory=$False,HelpMessage='OS image publisher)')]
        [string]
        [ValidateSet('Canonical')]
        $publisher,
        [parameter(mandatory=$False,HelpMessage='OS image offer)')]
        [string]
        [ValidateSet('UbuntuServer')]
        $offer,
        [parameter(mandatory=$False,HelpMessage='OS image sku)')]
        [string]
        [ValidateSet('18.04-LTS', '16.04-LTS')]
        $sku
    )

    process
    {
        return $([OsImageProfile]$PSBoundParameters)
    }
}
class NodeProfile
{
    [DiskInfo[]] $dataDisks
    [OsImageProfile] $osImage
    [DiskInfo] $osDisk
    [string] $name
    [string] $nodeSku
}
function New-AzureNativeTypeWorkloadsNodeProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Data disks details. This property is not in use right now)')]
        $dataDisks,
        [parameter(mandatory=$False,HelpMessage='OS image used for creating the nodes)')]
        [OsImageProfile]
        $osImage,
        [parameter(mandatory=$False,HelpMessage='OS disk details)')]
        [DiskInfo]
        $osDisk,
        [parameter(mandatory=$False,HelpMessage='VM or VMSS name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='VM SKU for node(s))')]
        [string]
        $nodeSku
    )

    process
    {
        return $([NodeProfile]$PSBoundParameters)
    }
}
class FileshareProfile
{
    [ArgumentCompletions('Standard_LRS', 'Standard_GRS', 'Standard_ZRS', 'Premium_LRS')]
    [string] $storageType
    [ArgumentCompletions('NfsOnController', 'AzureFiles')]
    [string] $shareType
    [int] $shareSizeInGB
}
function New-AzureNativeTypeWorkloadsFileshareProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='File share backing storage type)')]
        [string]
        [ValidateSet('Standard_LRS', 'Standard_GRS', 'Standard_ZRS', 'Premium_LRS')]
        $storageType,
        [parameter(mandatory=$False,HelpMessage='Share type)')]
        [string]
        [ValidateSet('NfsOnController', 'AzureFiles')]
        $shareType,
        [parameter(mandatory=$False,HelpMessage='File share size in GB)')]
        [int]
        $shareSizeInGB
    )

    process
    {
        return $([FileshareProfile]$PSBoundParameters)
    }
}
class BackupProfile
{
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $backupEnabled
}
function New-AzureNativeTypeWorkloadsBackupProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Whether to enable Azure backup for the workload)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $backupEnabled
    )

    process
    {
        return $([BackupProfile]$PSBoundParameters)
    }
}
class ManagedRGConfiguration
{
    [string] $name
}
function New-AzureNativeTypeWorkloadsManagedRGConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Managed resource group name)')]
        [string]
        $name
    )

    process
    {
        return $([ManagedRGConfiguration]$PSBoundParameters)
    }
}
class UserProfile
{
    [string] $sshPublicKey
    [string] $userName
}
function New-AzureNativeTypeWorkloadsUserProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='SSH public key data)')]
        [string]
        $sshPublicKey,
        [parameter(mandatory=$False,HelpMessage='User name)')]
        [string]
        $userName
    )

    process
    {
        return $([UserProfile]$PSBoundParameters)
    }
}
class SearchProfile
{
    [string] $nodeSku
    [DiskInfo] $osDisk
    [OsImageProfile] $osImage
    [ArgumentCompletions('Elastic')]
    [string] $searchType
    [string] $name
    [DiskInfo[]] $dataDisks
}
function New-AzureNativeTypeWorkloadsSearchProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='VM SKU for node(s))')]
        [string]
        $nodeSku,
        [parameter(mandatory=$False,HelpMessage='OS disk details)')]
        [DiskInfo]
        $osDisk,
        [parameter(mandatory=$False,HelpMessage='OS image used for creating the nodes)')]
        [OsImageProfile]
        $osImage,
        [parameter(mandatory=$False,HelpMessage='Search type)')]
        [string]
        [ValidateSet('Elastic')]
        $searchType,
        [parameter(mandatory=$False,HelpMessage='VM or VMSS name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Data disks details. This property is not in use right now)')]
        $dataDisks
    )

    process
    {
        return $([SearchProfile]$PSBoundParameters)
    }
}
class PhpProfile
{
    [ArgumentCompletions('7.2', '7.3', '7.4')]
    [string] $version
}
function New-AzureNativeTypeWorkloadsPhpProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='PHP version)')]
        [string]
        [ValidateSet('7.2', '7.3', '7.4')]
        $version
    )

    process
    {
        return $([PhpProfile]$PSBoundParameters)
    }
}
class PhpWorkloadResourceIdentity
{
    [ArgumentCompletions('None', 'UserAssigned')]
    [string] $type
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeWorkloadsPhpWorkloadResourceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of manage identity)')]
        [string]
        [ValidateSet('None', 'UserAssigned')]
        $type,
        [parameter(mandatory=$False,HelpMessage='User assigned identities dictionary)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([PhpWorkloadResourceIdentity]$PSBoundParameters)
    }
}
class DatabaseProfile
{
    [ArgumentCompletions('MySql')]
    [string] $type
    [int] $storageIops
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $sslEnforcementEnabled
    [int] $storageInGB
    [ArgumentCompletions('Burstable', 'GeneralPurpose', 'MemoryOptimized')]
    [object] $tier
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $haEnabled
    [string] $sku
    [string] $version
    [string] $storageSku
    [string] $serverName
    [int] $backupRetentionDays
}
function New-AzureNativeTypeWorkloadsDatabaseProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Database type)')]
        [string]
        [ValidateSet('MySql')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Storage IOPS for the server)')]
        [int]
        $storageIops,
        [parameter(mandatory=$False,HelpMessage='Whether to enable SSL enforcement on the database)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $sslEnforcementEnabled,
        [parameter(mandatory=$False,HelpMessage='Database storage size in GB)')]
        [int]
        $storageInGB,
        [parameter(mandatory=$False,HelpMessage='Tier of the server SKU)')]
        $tier,
        [parameter(mandatory=$False,HelpMessage='Whether to enable HA for the server)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $haEnabled,
        [parameter(mandatory=$False,HelpMessage='The name of the server SKU, e.g. Standard_D32s_v4)')]
        [string]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Database version)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='SKU name for database storage)')]
        [string]
        $storageSku,
        [parameter(mandatory=$False,HelpMessage='Database server name)')]
        [string]
        $serverName,
        [parameter(mandatory=$False,HelpMessage='Backup retention days for the server)')]
        [int]
        $backupRetentionDays
    )

    process
    {
        return $([DatabaseProfile]$PSBoundParameters)
    }
}
class Sku
{
    [string] $size
    [string] $family
    [ArgumentCompletions('Free', 'Basic', 'Standard', 'Premium')]
    [object] $tier
    [string] $name
    [int] $capacity
}
function New-AzureNativeTypeWorkloadsSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. )')]
        [string]
        $size,
        [parameter(mandatory=$False,HelpMessage='If the service has different generations of hardware, for the same SKU, then that can be captured here.)')]
        [string]
        $family,
        [parameter(mandatory=$False,HelpMessage='This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.)')]
        $tier,
        [parameter(mandatory=$False,HelpMessage='The name of the SKU. Ex - P3. It is typically a letter+number code)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.)')]
        [int]
        $capacity
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
class CacheProfile
{
    [string] $skuName
    [ArgumentCompletions('C', 'P')]
    [string] $family
    [string] $name
    [int] $capacity
}
function New-AzureNativeTypeWorkloadsCacheProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Cache SKU name)')]
        [string]
        $skuName,
        [parameter(mandatory=$False,HelpMessage='Cache family)')]
        [string]
        [ValidateSet('C', 'P')]
        $family,
        [parameter(mandatory=$False,HelpMessage='Cache name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Cache capacity)')]
        [int]
        $capacity
    )

    process
    {
        return $([CacheProfile]$PSBoundParameters)
    }
}
class VmssNodesProfile
{
    [string] $nodeSku
    [int] $autoScaleMaxCount
    [DiskInfo] $osDisk
    [OsImageProfile] $osImage
    [string] $name
    [DiskInfo[]] $dataDisks
    [int] $autoScaleMinCount
}
function New-AzureNativeTypeWorkloadsVmssNodesProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='VM SKU for node(s))')]
        [string]
        $nodeSku,
        [parameter(mandatory=$False,HelpMessage='Maximum number of nodes for autoscale)')]
        [int]
        $autoScaleMaxCount,
        [parameter(mandatory=$False,HelpMessage='OS disk details)')]
        [DiskInfo]
        $osDisk,
        [parameter(mandatory=$False,HelpMessage='OS image used for creating the nodes)')]
        [OsImageProfile]
        $osImage,
        [parameter(mandatory=$False,HelpMessage='VM or VMSS name)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Data disks details. This property is not in use right now)')]
        $dataDisks,
        [parameter(mandatory=$False,HelpMessage='Minimum number of nodes for autoscale)')]
        [int]
        $autoScaleMinCount
    )

    process
    {
        return $([VmssNodesProfile]$PSBoundParameters)
    }
}
class SiteProfile
{
    [string] $domainName
}
function New-AzureNativeTypeWorkloadsSiteProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Domain name for the application site URL)')]
        [string]
        $domainName
    )

    process
    {
        return $([SiteProfile]$PSBoundParameters)
    }
}
class NetworkProfile
{
    [ArgumentCompletions('ApplicationGateway', 'LoadBalancer')]
    [string] $loadBalancerType
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $azureFrontDoorEnabled
    [string] $loadBalancerTier
    [string] $loadBalancerSku
    [int] $capacity
}
function New-AzureNativeTypeWorkloadsNetworkProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Load balancer type)')]
        [string]
        [ValidateSet('ApplicationGateway', 'LoadBalancer')]
        $loadBalancerType,
        [parameter(mandatory=$False,HelpMessage='Whether to enable Azure front door)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $azureFrontDoorEnabled,
        [parameter(mandatory=$False,HelpMessage='Load balancer tier)')]
        [string]
        $loadBalancerTier,
        [parameter(mandatory=$False,HelpMessage='Load balancer SKU)')]
        [string]
        $loadBalancerSku,
        [parameter(mandatory=$False,HelpMessage='Capacity, applicable only for Application Gateway)')]
        [int]
        $capacity
    )

    process
    {
        return $([NetworkProfile]$PSBoundParameters)
    }
}
function New-AzureNativeWorkloadsPhpWorkload
{
    [Alias('azure_native_workloads_phpworkload')]
    param (
        [parameter(mandatory=$False,HelpMessage='Controller VM profile)')]
        [NodeProfile]
        $controllerProfile,
        [parameter(mandatory=$False,HelpMessage='File share profile)')]
        [FileshareProfile]
        $fileshareProfile,
        [parameter(mandatory=$False,HelpMessage='Indicates which kind of php workload this resource represent e.g WordPress)')]
        [string]
        [ValidateSet('WordPress')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Php workload name)')]
        [string]
        $phpWorkloadName,
        [parameter(mandatory=$False,HelpMessage='Backup profile)')]
        [BackupProfile]
        $backupProfile,
        [parameter(mandatory=$False,HelpMessage='Managed resource group configuration of the workload)')]
        [ManagedRGConfiguration]
        $managedResourceGroupConfiguration,
        [parameter(mandatory=$False,HelpMessage='Admin user profile used for VM and VMSS)')]
        [UserProfile]
        $adminUserProfile,
        [parameter(mandatory=$False,HelpMessage='Search profile)')]
        [SearchProfile]
        $searchProfile,
        [parameter(mandatory=$False,HelpMessage='The infra resources for PHP workload will be created in this location)')]
        [string]
        $appLocation,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='PHP profile)')]
        [PhpProfile]
        $phpProfile,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Identity for the resource. Currently not supported)')]
        [PhpWorkloadResourceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Database profile)')]
        [DatabaseProfile]
        $databaseProfile,
        [parameter(mandatory=$False,HelpMessage='Php workloads SKU)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Cache profile)')]
        [CacheProfile]
        $cacheProfile,
        [parameter(mandatory=$False,HelpMessage='VMSS web nodes profile)')]
        [VmssNodesProfile]
        $webNodesProfile,
        [parameter(mandatory=$False,HelpMessage='Site profile)')]
        [SiteProfile]
        $siteProfile,
        [parameter(mandatory=$False,HelpMessage='Network profile)')]
        [NetworkProfile]
        $networkProfile,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["adminUserProfile"] = $adminUserProfile
        $resource.properties["appLocation"] = $appLocation
        $resource.properties["controllerProfile"] = $controllerProfile
        $resource.properties["databaseProfile"] = $databaseProfile
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["webNodesProfile"] = $webNodesProfile

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWorkloadsSAPApplicationServerInstance
{
    [Alias('azure_native_workloads_sapapplicationserverinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of SAP Application Server instance.)')]
        [string]
        $applicationInstanceName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sapVirtualInstanceName"] = $sapVirtualInstanceName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWorkloadsSAPCentralInstance
{
    [Alias('azure_native_workloads_sapcentralinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='Central Instance name string modeled as parameter for auto generation to work correctly.)')]
        [string]
        $centralInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sapVirtualInstanceName"] = $sapVirtualInstanceName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class SapNetWeaverProviderInstanceProperties
{
    [string] $sapPortNumber
    [string] $sapPasswordUri
    [string] $sapHostname
    [string] $sapClientId
    [string] $sapInstanceNr
    [string] $sapPassword
    [string] $sapSslCertificateUri
    [string] $sapSid
    [string] $providerType
    [string[]] $sapHostFileEntries
    [string] $sapUsername
}
function New-AzureNativeTypeWorkloadsSapNetWeaverProviderInstanceProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SAP HTTP port number.)')]
        [string]
        $sapPortNumber,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the key vault URI to secret with the SAP password.)')]
        [string]
        $sapPasswordUri,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the target virtual machine IP Address/FQDN.)')]
        [string]
        $sapHostname,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SAP Client ID.)')]
        [string]
        $sapClientId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the instance number of SAP NetWeaver.)')]
        [string]
        $sapInstanceNr,
        [parameter(mandatory=$False,HelpMessage='Sets the SAP password.)')]
        [string]
        $sapPassword,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the blob URI to SSL certificate for the SAP system.)')]
        [string]
        $sapSslCertificateUri,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SAP System Identifier)')]
        [string]
        $sapSid,
        [parameter(mandatory=$False,HelpMessage='The provider type. For example, the value can be SapHana.
Expected value is ''SapNetWeaver''.)'
)]
        [string]
        $providerType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the list of HostFile Entries)')]
        [string[]]
        $sapHostFileEntries,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SAP user name.)')]
        [string]
        $sapUsername
    )

    process
    {
        return $([SapNetWeaverProviderInstanceProperties]$PSBoundParameters)
    }
}
class UserAssignedServiceIdentity
{
    [ArgumentCompletions('None', 'UserAssigned')]
    [string] $type
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeWorkloadsUserAssignedServiceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of manage identity)')]
        [string]
        [ValidateSet('None', 'UserAssigned')]
        $type,
        [parameter(mandatory=$False,HelpMessage='User assigned identities dictionary)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([UserAssignedServiceIdentity]$PSBoundParameters)
    }
}
function New-AzureNativeWorkloadsProviderInstance
{
    [Alias('azure_native_workloads_providerinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the SAP monitor resource.)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Defines the provider instance errors.)')]
        [SapNetWeaverProviderInstanceProperties]
        $providerSettings,
        [parameter(mandatory=$False,HelpMessage='Managed service identity (user assigned identities))')]
        [UserAssignedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Name of the provider instance.)')]
        [string]
        $providerInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["monitorName"] = $monitorName
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class DiscoveryConfiguration
{
    [string] $centralServerVmId
    [string] $configurationType
}
function New-AzureNativeTypeWorkloadsDiscoveryConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The virtual machine ID of the Central Server.)')]
        [string]
        $centralServerVmId,
        [parameter(mandatory=$False,HelpMessage='The configuration Type.
Expected value is ''Discovery''.)'
)]
        [string]
        $configurationType
    )

    process
    {
        return $([DiscoveryConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeWorkloadsSAPVirtualInstance
{
    [Alias('azure_native_workloads_sapvirtualinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='Managed resource group configuration)')]
        [ManagedRGConfiguration]
        $managedResourceGroupConfiguration,
        [parameter(mandatory=$False,HelpMessage='Defines the environment type - Production/Non Production.)')]
        [string]
        [ValidateSet('NonProd', 'Prod')]
        $environment,
        [parameter(mandatory=$False,HelpMessage='Managed service identity (user assigned identities))')]
        [UserAssignedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Defines the SAP Product type.)')]
        [string]
        [ValidateSet('ECC', 'S4HANA', 'Other')]
        $sapProduct,
        [parameter(mandatory=$False,HelpMessage='Defines if an existing SAP system is being registered or a new SAP system is being created)')]
        [DiscoveryConfiguration]
        $configuration,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["configuration"] = $configuration
        $resource.properties["environment"] = $environment
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sapProduct"] = $sapProduct

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWorkloadsSAPDatabaseInstance
{
    [Alias('azure_native_workloads_sapdatabaseinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='Database Instance string modeled as parameter for auto generation to work correctly.)')]
        [string]
        $databaseInstanceName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the Virtual Instances for SAP.)')]
        [string]
        $sapVirtualInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sapVirtualInstanceName"] = $sapVirtualInstanceName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWorkloadsWordpressInstance
{
    [Alias('azure_native_workloads_wordpressinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='Php workload name)')]
        [string]
        $phpWorkloadName,
        [parameter(mandatory=$False,HelpMessage='Database name used by the application)')]
        [string]
        $databaseName,
        [parameter(mandatory=$False,HelpMessage='Application version)')]
        [string]
        [ValidateSet('5.4.3', '5.4.2', '5.4.1', '5.4')]
        $version,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='User name used by the application to connect to database)')]
        [string]
        $databaseUser,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["phpWorkloadName"] = $phpWorkloadName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["version"] = $version

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWorkloadsMonitor
{
    [Alias('azure_native_workloads_monitor')]
    param (
        [parameter(mandatory=$False,HelpMessage='Managed resource group configuration)')]
        [ManagedRGConfiguration]
        $managedResourceGroupConfiguration,
        [parameter(mandatory=$False,HelpMessage='The subnet which the SAP monitor will be deployed in)')]
        [string]
        $monitorSubnet,
        [parameter(mandatory=$False,HelpMessage='Managed service identity (user assigned identities))')]
        [UserAssignedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The ARM ID of the Log Analytics Workspace that is used for SAP monitoring.)')]
        [string]
        $logAnalyticsWorkspaceArmId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Name of the SAP monitor resource.)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Sets the routing preference of the SAP monitor. By default only RFC1918 traffic is routed to the customer VNET.)')]
        [string]
        [ValidateSet('Default', 'RouteAll')]
        $routingPreference,
        [parameter(mandatory=$False,HelpMessage='The SAP monitor resources will be deployed in the SAP monitoring region. The subnet region should be same as the SAP monitoring region.)')]
        [string]
        $appLocation,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}