pspulumiyaml.azurenative.connectedvmwarevsphere.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetDatastore
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the datastore.)')]
        [string]
        $datastoreName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getDatastore -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetVirtualNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the virtual network resource.)')]
        [string]
        $virtualNetworkName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getVirtualNetwork -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetVCenter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the vCenter.)')]
        [string]
        $vcenterName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getVCenter -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetHybridIdentityMetadatum
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the vm.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the HybridIdentityMetadata.)')]
        [string]
        $metadataName
    )

    process
    {
        $arguments = @{}
        $arguments["metadataName"] = $metadataName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["virtualMachineName"] = $virtualMachineName

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getHybridIdentityMetadatum -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetGuestAgent
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the vm.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the GuestAgent.)')]
        [string]
        $name
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getGuestAgent -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetCluster
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the cluster.)')]
        [string]
        $clusterName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getCluster -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetResourcePool
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the resourcePool.)')]
        [string]
        $resourcePoolName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getResourcePool -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetMachineExtension
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the machine containing the extension.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The name of the machine extension.)')]
        [string]
        $extensionName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getMachineExtension -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetInventoryItem
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the vCenter.)')]
        [string]
        $vcenterName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the inventoryItem.)')]
        [string]
        $inventoryItemName
    )

    process
    {
        $arguments = @{}
        $arguments["inventoryItemName"] = $inventoryItemName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["vcenterName"] = $vcenterName

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getInventoryItem -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetVirtualMachine
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the virtual machine resource.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getVirtualMachine -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetVirtualMachineTemplate
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the virtual machine template resource.)')]
        [string]
        $virtualMachineTemplateName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getVirtualMachineTemplate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionConnectedvmwarevsphereGetHost
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the host.)')]
        [string]
        $hostName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:connectedvmwarevsphere:getHost -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeConnectedvmwarevsphereMachineExtension
{
    [Alias('azure_native_connectedvmwarevsphere_machineextension')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the machine extension.)')]
        [string]
        $extensionName,
        [parameter(mandatory=$False,HelpMessage='The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.)')]
        $protectedSettings,
        [parameter(mandatory=$False,HelpMessage='Specifies the version of the script handler.)')]
        [string]
        $typeHandlerVersion,
        [parameter(mandatory=$False,HelpMessage='The name of the extension handler publisher.)')]
        [string]
        $publisher,
        [parameter(mandatory=$False,HelpMessage='Specifies the type of the extension; an example is "CustomScriptExtension".)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Json formatted public settings for the extension.)')]
        $settings,
        [parameter(mandatory=$False,HelpMessage='Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.)')]
        [bool]
        $autoUpgradeMinorVersion,
        [parameter(mandatory=$False,HelpMessage='The name of the machine where the extension should be created or updated.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='How the extension handler should be forced to update even if the extension configuration has not changed.)')]
        [string]
        $forceUpdateTag,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:MachineExtension")

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class HttpProxyConfiguration
{
    [string] $httpsProxy
}
function New-AzureNativeTypeConnectedvmwarevsphereHttpProxyConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets httpsProxy url.)')]
        [string]
        $httpsProxy
    )

    process
    {
        return $([HttpProxyConfiguration]$PSBoundParameters)
    }
}
class GuestCredential
{
    [string] $username
    [string] $password
}
function New-AzureNativeTypeConnectedvmwarevsphereGuestCredential
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets username to connect with the guest.)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the password to connect with the guest.)')]
        [string]
        $password
    )

    process
    {
        return $([GuestCredential]$PSBoundParameters)
    }
}
function New-AzureNativeConnectedvmwarevsphereGuestAgent
{
    [Alias('azure_native_connectedvmwarevsphere_guestagent')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the guestAgents.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='HTTP Proxy configuration for the VM.)')]
        [HttpProxyConfiguration]
        $httpProxyConfig,
        [parameter(mandatory=$False,HelpMessage='Name of the vm.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the guest agent provisioning action.)')]
        [string]
        [ValidateSet('install', 'uninstall', 'repair')]
        $provisioningAction,
        [parameter(mandatory=$False,HelpMessage='Username / Password Credentials to provision guest agent.)')]
        [GuestCredential]
        $credentials,
        [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:connectedvmwarevsphere:GuestAgent")

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

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

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

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

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

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

    process
    {
        return $([ExtendedLocation]$PSBoundParameters)
    }
}
function New-AzureNativeConnectedvmwarevsphereVirtualNetwork
{
    [Alias('azure_native_connectedvmwarevsphere_virtualnetwork')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this template resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the virtual network.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual network.)')]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Name of the virtual network resource.)')]
        [string]
        $virtualNetworkName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:VirtualNetwork")

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

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

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

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

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

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

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

        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-AzureNativeConnectedvmwarevsphereHost
{
    [Alias('azure_native_connectedvmwarevsphere_host')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this host resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the host.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the host.)')]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of the host.)')]
        [string]
        $hostName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:Host")

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeConnectedvmwarevsphereCluster
{
    [Alias('azure_native_connectedvmwarevsphere_cluster')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this cluster resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the cluster.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the cluster.)')]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:Cluster")

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

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

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

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

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

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

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

        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-AzureNativeConnectedvmwarevsphereDatastore
{
    [Alias('azure_native_connectedvmwarevsphere_datastore')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this datastore resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the datastore.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the datastore.)')]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Name of the datastore.)')]
        [string]
        $datastoreName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:Datastore")

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

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

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

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

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

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

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

        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-AzureNativeConnectedvmwarevsphereResourcePool
{
    [Alias('azure_native_connectedvmwarevsphere_resourcepool')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the resource pool.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the resource pool.)')]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of the resourcePool.)')]
        [string]
        $resourcePoolName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:ResourcePool")

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Identity
{
    [ValidateSet('None', 'SystemAssigned')]
    [string] $type
}
function New-AzureNativeTypeConnectedvmwarevsphereIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of managed service identity.)')]
        [string]
        [ValidateSet('None', 'SystemAssigned')]
        $type
    )

    process
    {
        return $([Identity]$PSBoundParameters)
    }
}
class PlacementProfile
{
    [string] $hostId
    [string] $datastoreId
    [string] $clusterId
    [string] $resourcePoolId
}
function New-AzureNativeTypeConnectedvmwarevspherePlacementProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the host resource on which this virtual machine will deploy.)')]
        [string]
        $hostId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the datastore resource on which the data for the virtual machine will be kept.)')]
        [string]
        $datastoreId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the cluster resource on which this virtual machine will deploy.)')]
        [string]
        $clusterId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the resourcePool resource on which this virtual machine will deploy.)')]
        [string]
        $resourcePoolId
    )

    process
    {
        return $([PlacementProfile]$PSBoundParameters)
    }
}
class VirtualDisk
{
    [ValidateSet('persistent', 'independent_persistent', 'independent_nonpersistent')]
    [string] $diskMode
    [ValidateSet('persistent', 'independent_persistent', 'independent_nonpersistent')]
    [int] $diskSizeGB
    [ValidateSet('persistent', 'independent_persistent', 'independent_nonpersistent')]
    [int] $controllerKey
    [ValidateSet('flat', 'pmem', 'rawphysical', 'rawvirtual', 'sparse', 'sesparse', 'unknown')]
    [string] $diskType
    [ValidateSet('flat', 'pmem', 'rawphysical', 'rawvirtual', 'sparse', 'sesparse', 'unknown')]
    [string] $name
    [ValidateSet('flat', 'pmem', 'rawphysical', 'rawvirtual', 'sparse', 'sesparse', 'unknown')]
    [int] $unitNumber
    [ValidateSet('flat', 'pmem', 'rawphysical', 'rawvirtual', 'sparse', 'sesparse', 'unknown')]
    [string] $deviceName
    [ValidateSet('flat', 'pmem', 'rawphysical', 'rawvirtual', 'sparse', 'sesparse', 'unknown')]
    [int] $deviceKey
}
function New-AzureNativeTypeConnectedvmwarevsphereVirtualDisk
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk mode.)')]
        [string]
        [ValidateSet('persistent', 'independent_persistent', 'independent_nonpersistent')]
        $diskMode,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk total size.)')]
        [int]
        $diskSizeGB,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the controller id.)')]
        [int]
        $controllerKey,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk backing type.)')]
        [string]
        [ValidateSet('flat', 'pmem', 'rawphysical', 'rawvirtual', 'sparse', 'sesparse', 'unknown')]
        $diskType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the name of the virtual disk.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the unit number of the disk on the controller.)')]
        [int]
        $unitNumber,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the device name.)')]
        [string]
        $deviceName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the device key value.)')]
        [int]
        $deviceKey
    )

    process
    {
        return $([VirtualDisk]$PSBoundParameters)
    }
}
class StorageProfile
{
    [VirtualDisk[]] $disks
}
function New-AzureNativeTypeConnectedvmwarevsphereStorageProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the list of virtual disks associated with the virtual machine.)')]
        $disks
    )

    process
    {
        return $([StorageProfile]$PSBoundParameters)
    }
}
class HardwareProfile
{
    [int] $numCoresPerSocket
    [int] $memorySizeMB
    [int] $numCPUs
}
function New-AzureNativeTypeConnectedvmwarevsphereHardwareProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the number of cores per socket for the vm. Defaults to 1 if unspecified.)')]
        [int]
        $numCoresPerSocket,
        [parameter(mandatory=$False,HelpMessage='Gets or sets memory size in MBs for the vm.)')]
        [int]
        $memorySizeMB,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the number of vCPUs for the vm.)')]
        [int]
        $numCPUs
    )

    process
    {
        return $([HardwareProfile]$PSBoundParameters)
    }
}
class OsProfile
{
    [ValidateSet('Windows', 'Linux', 'Other')]
    [string] $osType
    [ValidateSet('Windows', 'Linux', 'Other')]
    [string] $adminUsername
    [ValidateSet('Windows', 'Linux', 'Other')]
    [string] $adminPassword
    [ValidateSet('Windows', 'Linux', 'Other')]
    [string] $computerName
}
function New-AzureNativeTypeConnectedvmwarevsphereOsProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the type of the os.)')]
        [string]
        [ValidateSet('Windows', 'Linux', 'Other')]
        $osType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets administrator username.)')]
        [string]
        $adminUsername,
        [parameter(mandatory=$False,HelpMessage='Gets or sets administrator password.)')]
        [string]
        $adminPassword,
        [parameter(mandatory=$False,HelpMessage='Gets or sets computer name.)')]
        [string]
        $computerName
    )

    process
    {
        return $([OsProfile]$PSBoundParameters)
    }
}
class NicIPSettings
{
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [string[]] $dnsServers
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [string[]] $gateway
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [string] $ipAddress
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [string] $subnetMask
    [ValidateSet('unset', 'dynamic', 'static', 'linklayer', 'random', 'other')]
    [string] $allocationMethod
}
function New-AzureNativeTypeConnectedvmwarevsphereNicIPSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the dns servers.)')]
        [string[]]
        $dnsServers,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the gateway.)')]
        [string[]]
        $gateway,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ip address for the nic.)')]
        [string]
        $ipAddress,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the mask.)')]
        [string]
        $subnetMask,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the nic allocation method.)')]
        [string]
        [ValidateSet('unset', 'dynamic', 'static', 'linklayer', 'random', 'other')]
        $allocationMethod
    )

    process
    {
        return $([NicIPSettings]$PSBoundParameters)
    }
}
class NetworkInterface
{
    [string] $name
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [string] $nicType
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [int] $deviceKey
    [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
    [NicIPSettings] $ipSettings
    [ValidateSet('enabled', 'disabled')]
    [string] $powerOnBoot
    [ValidateSet('enabled', 'disabled')]
    [string] $networkId
}
function New-AzureNativeTypeConnectedvmwarevsphereNetworkInterface
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the name of the network interface.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='NIC type)')]
        [string]
        [ValidateSet('vmxnet3', 'vmxnet2', 'vmxnet', 'e1000', 'e1000e', 'pcnet32')]
        $nicType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the device key value.)')]
        [int]
        $deviceKey,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ipsettings.)')]
        [NicIPSettings]
        $ipSettings,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the power on boot.)')]
        [string]
        [ValidateSet('enabled', 'disabled')]
        $powerOnBoot,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the network resource to connect the virtual machine.)')]
        [string]
        $networkId
    )

    process
    {
        return $([NetworkInterface]$PSBoundParameters)
    }
}
class NetworkProfile
{
    [NetworkInterface[]] $networkInterfaces
}
function New-AzureNativeTypeConnectedvmwarevsphereNetworkProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the list of network interfaces associated with the virtual machine.)')]
        $networkInterfaces
    )

    process
    {
        return $([NetworkProfile]$PSBoundParameters)
    }
}
function New-AzureNativeConnectedvmwarevsphereVirtualMachine
{
    [Alias('azure_native_connectedvmwarevsphere_virtualmachine')]
    param (
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the virtual machine resource.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='The identity of the resource.)')]
        [Identity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Placement properties.)')]
        [PlacementProfile]
        $placementProfile,
        [parameter(mandatory=$False,HelpMessage='Storage properties.)')]
        [StorageProfile]
        $storageProfile,
        [parameter(mandatory=$False,HelpMessage='Firmware type)')]
        [string]
        [ValidateSet('bios', 'efi')]
        $firmwareType,
        [parameter(mandatory=$False,HelpMessage='Hardware properties.)')]
        [HardwareProfile]
        $hardwareProfile,
        [parameter(mandatory=$False,HelpMessage='OS properties.)')]
        [OsProfile]
        $osProfile,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Network properties.)')]
        [NetworkProfile]
        $networkProfile,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the template resource to deploy the virtual machine.)')]
        [string]
        $templateId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the virtual machine.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the resourcePool resource on which this virtual machine will
deploy.)'
)]
        [string]
        $resourcePoolId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this resource pool resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SMBIOS UUID of the vm.)')]
        [string]
        $smbiosUuid,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine.)')]
        [string]
        $moRefId,
        [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:connectedvmwarevsphere:VirtualMachine")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeConnectedvmwarevsphereInventoryItem
{
    [Alias('azure_native_connectedvmwarevsphere_inventoryitem')]
    param (
        [parameter(mandatory=$False,HelpMessage='They inventory type.)')]
        [string]
        [ValidateSet('ResourcePool', 'VirtualMachine', 'VirtualMachineTemplate', 'VirtualNetwork', 'Cluster', 'Datastore', 'Host')]
        $inventoryType,
        [parameter(mandatory=$False,HelpMessage='Name of the vCenter.)')]
        [string]
        $vcenterName,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the MoRef (Managed Object Reference) ID for the inventory item.)')]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter Managed Object name for the inventory item.)')]
        [string]
        $moName,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Name of the inventoryItem.)')]
        [string]
        $inventoryItemName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the tracked resource id corresponding to the inventory resource.)')]
        [string]
        $managedResourceId,
        [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:connectedvmwarevsphere:InventoryItem")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class VICredential
{
    [string] $username
    [string] $password
}
function New-AzureNativeTypeConnectedvmwarevsphereVICredential
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets username to connect with the vCenter.)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the password to connect with the vCenter.)')]
        [string]
        $password
    )

    process
    {
        return $([VICredential]$PSBoundParameters)
    }
}
function New-AzureNativeConnectedvmwarevsphereVCenter
{
    [Alias('azure_native_connectedvmwarevsphere_vcenter')]
    param (
        [parameter(mandatory=$False,HelpMessage='Username / Password Credentials to connect to vcenter.)')]
        [VICredential]
        $credentials,
        [parameter(mandatory=$False,HelpMessage='Name of the vCenter.)')]
        [string]
        $vcenterName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the FQDN/IPAddress of the vCenter.)')]
        [string]
        $fqdn,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the port of the vCenter.)')]
        [int]
        $port,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:VCenter")

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

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

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

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

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

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

        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-AzureNativeConnectedvmwarevsphereHybridIdentityMetadatum
{
    [Alias('azure_native_connectedvmwarevsphere_hybrididentitymetadatum')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the vm.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Vm Id.)')]
        [string]
        $vmId,
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the hybridIdentityMetadata.)')]
        [string]
        $metadataName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Public Key.)')]
        [string]
        $publicKey,
        [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:connectedvmwarevsphere:HybridIdentityMetadatum")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeConnectedvmwarevsphereVirtualMachineTemplate
{
    [Alias('azure_native_connectedvmwarevsphere_virtualmachinetemplate')]
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource Group Name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the vCenter resource in which this template resides.)')]
        [string]
        $vCenterId,
        [parameter(mandatory=$False,HelpMessage='Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the virtual machine template.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the vCenter MoRef (Managed Object Reference) ID for the virtual machine
template.)'
)]
        [string]
        $moRefId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Name of the virtual machine template resource.)')]
        [string]
        $virtualMachineTemplateName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the 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:connectedvmwarevsphere:VirtualMachineTemplate")

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

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

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

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

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

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

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

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

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

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