pspulumiyaml.azurenative.avs.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkVMGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='NSX VM Group identifier. Generally the same as the VM Group''s display name)')]
        [string]
        $vmGroupId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["vmGroupId"] = $vmGroupId

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkVMGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetScriptExecutionLogs
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the user-invoked script execution resource)')]
        [string]
        $scriptExecutionName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["scriptExecutionName"] = $scriptExecutionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getScriptExecutionLogs -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkPublicIP
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='NSX Public IP Block identifier. Generally the same as the Public IP Block''s display name)')]
        [string]
        $publicIPId,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["publicIPId"] = $publicIPId
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkPublicIP -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkPortMirroring
{
    param (
        [parameter(mandatory=$False,HelpMessage='NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name)')]
        [string]
        $portMirroringId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["portMirroringId"] = $portMirroringId
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkPortMirroring -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetCluster
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the cluster in the private cloud)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getCluster -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetScriptExecution
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the user-invoked script execution resource)')]
        [string]
        $scriptExecutionName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["scriptExecutionName"] = $scriptExecutionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getScriptExecution -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetGlobalReachConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the global reach connection in the private cloud)')]
        [string]
        $globalReachConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["globalReachConnectionName"] = $globalReachConnectionName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getGlobalReachConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsListPrivateCloudAdminCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:listPrivateCloudAdminCredentials -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkSegment
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='NSX Segment identifier. Generally the same as the Segment''s display name)')]
        [string]
        $segmentId
    )

    process
    {
        $arguments = @{}
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["segmentId"] = $segmentId

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkSegment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkDnsService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='NSX DNS Service identifier. Generally the same as the DNS Service''s display name)')]
        [string]
        $dnsServiceId,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["dnsServiceId"] = $dnsServiceId
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkDnsService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetDatastore
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the cluster in the private cloud)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='Name of the datastore in the private cloud cluster)')]
        [string]
        $datastoreName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["datastoreName"] = $datastoreName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getDatastore -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetCloudLink
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Name of the cloud link resource)')]
        [string]
        $cloudLinkName
    )

    process
    {
        $arguments = @{}
        $arguments["cloudLinkName"] = $cloudLinkName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getCloudLink -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetHcxEnterpriseSite
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Name of the HCX Enterprise Site in the private cloud)')]
        [string]
        $hcxEnterpriseSiteName
    )

    process
    {
        $arguments = @{}
        $arguments["hcxEnterpriseSiteName"] = $hcxEnterpriseSiteName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getHcxEnterpriseSite -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkDhcp
{
    param (
        [parameter(mandatory=$False,HelpMessage='NSX DHCP identifier. Generally the same as the DHCP display name)')]
        [string]
        $dhcpId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["dhcpId"] = $dhcpId
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkDhcp -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetPlacementPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the cluster in the private cloud)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the VMware vSphere Distributed Resource Scheduler (DRS) placement policy)')]
        [string]
        $placementPolicyName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["placementPolicyName"] = $placementPolicyName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getPlacementPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetAddon
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the addon for the private cloud)')]
        [string]
        $addonName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["addonName"] = $addonName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getAddon -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetPrivateCloud
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getPrivateCloud -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetAuthorization
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the ExpressRoute Circuit Authorization in the private cloud)')]
        [string]
        $authorizationName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationName"] = $authorizationName
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getAuthorization -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAvsGetWorkloadNetworkDnsZone
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='NSX DNS Zone identifier. Generally the same as the DNS Zone''s display name)')]
        [string]
        $dnsZoneId,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName
    )

    process
    {
        $arguments = @{}
        $arguments["dnsZoneId"] = $dnsZoneId
        $arguments["privateCloudName"] = $privateCloudName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:avs:getWorkloadNetworkDnsZone -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeAvsWorkloadNetworkPortMirroring
{
    [Alias('azure_native_avs_workloadnetworkportmirroring')]
    param (
        [parameter(mandatory=$False,HelpMessage='Source VM Group.)')]
        [string]
        $source,
        [parameter(mandatory=$False,HelpMessage='Destination VM Group.)')]
        [string]
        $destination,
        [parameter(mandatory=$False,HelpMessage='NSX Port Mirroring identifier. Generally the same as the Port Mirroring display name)')]
        [string]
        $portMirroringId,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Display name of the port mirroring profile.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Direction of port mirroring profile.)')]
        [string]
        [ValidateSet('INGRESS, EGRESS, BIDIRECTIONAL')]
        $direction,
        [parameter(mandatory=$False,HelpMessage='NSX revision number.)')]
        [int]
        $revision,
        [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:avs:WorkloadNetworkPortMirroring")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsHcxEnterpriseSite
{
    [Alias('azure_native_avs_hcxenterprisesite')]
    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 private cloud.)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Name of the HCX Enterprise Site in the private cloud)')]
        [string]
        $hcxEnterpriseSiteName,
        [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:avs:HcxEnterpriseSite")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsWorkloadNetworkDnsZone
{
    [Alias('azure_native_avs_workloadnetworkdnszone')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='NSX DNS Zone identifier. Generally the same as the DNS Zone''s display name)')]
        [string]
        $dnsZoneId,
        [parameter(mandatory=$False,HelpMessage='NSX revision number.)')]
        [int]
        $revision,
        [parameter(mandatory=$False,HelpMessage='Display name of the DNS Zone.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Source IP of the DNS Zone.)')]
        [string]
        $sourceIp,
        [parameter(mandatory=$False,HelpMessage='DNS Server IP array of the DNS Zone.)')]
        [string[]]
        $dnsServerIps,
        [parameter(mandatory=$False,HelpMessage='Number of DNS Services using the DNS zone.)')]
        [int]
        $dnsServices,
        [parameter(mandatory=$False,HelpMessage='Domain names of the DNS Zone.)')]
        [string[]]
        $domain,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [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:avs:WorkloadNetworkDnsZone")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsGlobalReachConnection
{
    [Alias('azure_native_avs_globalreachconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the global reach connection in the private cloud)')]
        [string]
        $globalReachConnectionName,
        [parameter(mandatory=$False,HelpMessage='Authorization key from the peer express route used for the global reach connection)')]
        [string]
        $authorizationKey,
        [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 private cloud.)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the ExpressRoute Circuit to peer with in the global reach connection)')]
        [string]
        $peerExpressRouteCircuit,
        [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:avs:GlobalReachConnection")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class WorkloadNetworkSegmentSubnet
{
    [string] $gatewayAddress
    [string[]] $dhcpRanges
}
function New-AzureNativeTypeAvsWorkloadNetworkSegmentSubnet
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gateway address.)')]
        [string]
        $gatewayAddress,
        [parameter(mandatory=$False,HelpMessage='DHCP Range assigned for subnet.)')]
        [string[]]
        $dhcpRanges
    )

    process
    {
        return $([WorkloadNetworkSegmentSubnet]$PSBoundParameters)
    }
}
function New-AzureNativeAvsWorkloadNetworkSegment
{
    [Alias('azure_native_avs_workloadnetworksegment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Gateway which to connect segment to.)')]
        [string]
        $connectedGateway,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Display name of the segment.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Subnet which to connect segment to.)')]
        [WorkloadNetworkSegmentSubnet]
        $subnet,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='NSX revision number.)')]
        [int]
        $revision,
        [parameter(mandatory=$False,HelpMessage='NSX Segment identifier. Generally the same as the Segment''s display name)')]
        [string]
        $segmentId,
        [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:avs:WorkloadNetworkSegment")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Sku
{
    [string] $name
}
function New-AzureNativeTypeAvsSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the SKU.)')]
        [string]
        $name
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
function New-AzureNativeAvsCluster
{
    [Alias('azure_native_avs_cluster')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the cluster in the private cloud)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The cluster size)')]
        [int]
        $clusterSize,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The cluster SKU)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The name of the private cloud.)')]
        [string]
        $privateCloudName,
        [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:avs:Cluster")

        $resource.properties["clusterSize"] = $clusterSize
        $resource.properties["privateCloudName"] = $privateCloudName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sku"] = $sku

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsScriptExecution
{
    [Alias('azure_native_avs_scriptexecution')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Parameters the script will accept)')]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='Time limit for execution)')]
        [string]
        $timeout,
        [parameter(mandatory=$False,HelpMessage='A reference to the script cmdlet resource if user is running a AVS script)')]
        [string]
        $scriptCmdletId,
        [parameter(mandatory=$False,HelpMessage='Standard output stream from the powershell execution)')]
        [string[]]
        $output,
        [parameter(mandatory=$False,HelpMessage='Time to live for the resource. If not provided, will be available for 60 days)')]
        [string]
        $retention,
        [parameter(mandatory=$False,HelpMessage='Name of the user-invoked script execution resource)')]
        [string]
        $scriptExecutionName,
        [parameter(mandatory=$False,HelpMessage='Parameters that will be hidden/not visible to ARM, such as passwords and credentials)')]
        $hiddenParameters,
        [parameter(mandatory=$False,HelpMessage='The name of the private cloud.)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='User-defined dictionary.)')]
        [object]
        $namedOutputs,
        [parameter(mandatory=$False,HelpMessage='Error message if the script was able to run, but if the script itself had errors or powershell threw an exception)')]
        [string]
        $failureReason,
        [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:avs:ScriptExecution")

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsAddon
{
    [Alias('azure_native_avs_addon')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private cloud.)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Name of the addon for the private cloud)')]
        [string]
        $addonName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The type of private cloud addon)')]
        [string]
        [ValidateSet('SRM', 'VR')]
        $addonType,
        [parameter(mandatory=$False,HelpMessage='The SRM license)')]
        [string]
        $licenseKey,
        [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:avs:Addon")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class DiskPoolVolume
{
    [string] $lunName
    [string[]] $endpoints
}
function New-AzureNativeTypeAvsDiskPoolVolume
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the LUN to be used)')]
        [string]
        $lunName,
        [parameter(mandatory=$False,HelpMessage='iSCSI provider target IP address list)')]
        [string[]]
        $endpoints
    )

    process
    {
        return $([DiskPoolVolume]$PSBoundParameters)
    }
}
class NetAppVolume
{
    [string] $nfsProviderIp
    [string] $nfsFilePath
}
function New-AzureNativeTypeAvsNetAppVolume
{
    param (
        [parameter(mandatory=$False,HelpMessage='IP address of the NFS provider)')]
        [string]
        $nfsProviderIp,
        [parameter(mandatory=$False,HelpMessage='File path through which the NFS volume is exposed by the provider)')]
        [string]
        $nfsFilePath
    )

    process
    {
        return $([NetAppVolume]$PSBoundParameters)
    }
}
function New-AzureNativeAvsDatastore
{
    [Alias('azure_native_avs_datastore')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the cluster in the private cloud)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='An iSCSI volume)')]
        [DiskPoolVolume]
        $diskPoolVolume,
        [parameter(mandatory=$False,HelpMessage='Name of the datastore in the private cloud cluster)')]
        [string]
        $datastoreName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='An Azure NetApp Files volume)')]
        [NetAppVolume]
        $netAppVolume,
        [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:avs:Datastore")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsWorkloadNetworkDhcp
{
    [Alias('azure_native_avs_workloadnetworkdhcp')]
    param (
        [parameter(mandatory=$False,HelpMessage='NSX DHCP identifier. Generally the same as the DHCP display name)')]
        [string]
        $dhcpId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Display name of the DHCP entity.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Type of DHCP: SERVER or RELAY.)')]
        [string]
        [ValidateSet('SERVER, RELAY')]
        $dhcpType,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='NSX revision number.)')]
        [int]
        $revision,
        [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:avs:WorkloadNetworkDhcp")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsWorkloadNetworkVMGroup
{
    [Alias('azure_native_avs_workloadnetworkvmgroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='NSX VM Group identifier. Generally the same as the VM Group''s display name)')]
        [string]
        $vmGroupId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Display name of the VM group.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Virtual machine members of this group.)')]
        [string[]]
        $members,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='NSX revision number.)')]
        [int]
        $revision,
        [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:avs:WorkloadNetworkVMGroup")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsWorkloadNetworkPublicIP
{
    [Alias('azure_native_avs_workloadnetworkpublicip')]
    param (
        [parameter(mandatory=$False,HelpMessage='Display name of the Public IP Block.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Number of Public IPs requested.)')]
        [int]
        $numberOfPublicIPs,
        [parameter(mandatory=$False,HelpMessage='NSX Public IP Block identifier. Generally the same as the Public IP Block''s display name)')]
        [string]
        $publicIPId,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [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
    )

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsAuthorization
{
    [Alias('azure_native_avs_authorization')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the ExpressRoute Circuit Authorization in the private cloud)')]
        [string]
        $authorizationName,
        [parameter(mandatory=$False,HelpMessage='The name of the private cloud.)')]
        [string]
        $privateCloudName,
        [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:avs:Authorization")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class VmVmPlacementPolicyProperties
{
    [ValidateSet('Affinity', 'AntiAffinity')]
    [string] $affinityType
    [ValidateSet('Affinity', 'AntiAffinity')]
    [string] $displayName
    [ValidateSet('Affinity', 'AntiAffinity')]
    [string] $type
    [ValidateSet('Affinity', 'AntiAffinity')]
    [string[]] $vmMembers
    [ValidateSet('Enabled', 'Disabled')]
    [string] $state
}
function New-AzureNativeTypeAvsVmVmPlacementPolicyProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='placement policy affinity type)')]
        [string]
        [ValidateSet('Affinity', 'AntiAffinity')]
        $affinityType,
        [parameter(mandatory=$False,HelpMessage='Display name of the placement policy)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='placement policy type
Expected value is ''VmVm''.)'
)]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Virtual machine members list)')]
        [string[]]
        $vmMembers,
        [parameter(mandatory=$False,HelpMessage='Whether the placement policy is enabled or disabled)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $state
    )

    process
    {
        return $([VmVmPlacementPolicyProperties]$PSBoundParameters)
    }
}
function New-AzureNativeAvsPlacementPolicy
{
    [Alias('azure_native_avs_placementpolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the cluster in the private cloud)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the VMware vSphere Distributed Resource Scheduler (DRS) placement policy)')]
        [string]
        $placementPolicyName,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='placement policy properties)')]
        [VmVmPlacementPolicyProperties]
        $properties,
        [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:avs:PlacementPolicy")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ManagementCluster
{
    [int] $clusterSize
}
function New-AzureNativeTypeAvsManagementCluster
{
    param (
        [parameter(mandatory=$False,HelpMessage='The cluster size)')]
        [int]
        $clusterSize
    )

    process
    {
        return $([ManagementCluster]$PSBoundParameters)
    }
}
function New-AzureNativeAvsPrivateCloud
{
    [Alias('azure_native_avs_privatecloud')]
    param (
        [parameter(mandatory=$False,HelpMessage='Optionally, set the NSX-T Manager password when the private cloud is created)')]
        [string]
        $nsxtPassword,
        [parameter(mandatory=$False,HelpMessage='vCenter Single Sign On Identity Sources)')]
        $identitySources,
        [parameter(mandatory=$False,HelpMessage='The block of addresses should be unique across VNet in your subscription as well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where A,B,C,D are between 0 and 255, and X is between 0 and 22)')]
        [string]
        $networkBlock,
        [parameter(mandatory=$False,HelpMessage='Connectivity to internet is enabled or disabled)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $internet,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The default cluster used for management)')]
        [ManagementCluster]
        $managementCluster,
        [parameter(mandatory=$False,HelpMessage='The private cloud SKU)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Optionally, set the vCenter admin password when the private cloud is created)')]
        [string]
        $vcenterPassword,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [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:avs:PrivateCloud")

        $resource.properties["managementCluster"] = $managementCluster
        $resource.properties["networkBlock"] = $networkBlock
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["sku"] = $sku

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

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

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

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

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

        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-AzureNativeAvsWorkloadNetworkDnsService
{
    [Alias('azure_native_avs_workloadnetworkdnsservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='DNS service IP of the DNS Service.)')]
        [string]
        $dnsServiceIp,
        [parameter(mandatory=$False,HelpMessage='FQDN zones of the DNS Service.)')]
        [string[]]
        $fqdnZones,
        [parameter(mandatory=$False,HelpMessage='NSX DNS Service identifier. Generally the same as the DNS Service''s display name)')]
        [string]
        $dnsServiceId,
        [parameter(mandatory=$False,HelpMessage='Default DNS zone of the DNS Service.)')]
        [string]
        $defaultDnsZone,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Display name of the DNS Service.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='NSX revision number.)')]
        [int]
        $revision,
        [parameter(mandatory=$False,HelpMessage='DNS Service log level.)')]
        [string]
        [ValidateSet('DEBUG', 'INFO', 'WARNING', 'ERROR', 'FATAL')]
        $logLevel,
        [parameter(mandatory=$False,HelpMessage='Name of the private cloud)')]
        [string]
        $privateCloudName,
        [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:avs:WorkloadNetworkDnsService")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeAvsCloudLink
{
    [Alias('azure_native_avs_cloudlink')]
    param (
        [parameter(mandatory=$False,HelpMessage='Identifier of the other private cloud participating in the link.)')]
        [string]
        $linkedCloud,
        [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 private cloud.)')]
        [string]
        $privateCloudName,
        [parameter(mandatory=$False,HelpMessage='Name of the cloud link resource)')]
        [string]
        $cloudLinkName,
        [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:avs:CloudLink")

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

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

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

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