pspulumiyaml.azurenative.scvmm.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionScvmmGetVirtualNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the VirtualNetwork.)')]
        [string]
        $virtualNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getVirtualNetwork -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionScvmmGetInventoryItem
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the inventoryItem.)')]
        [string]
        $inventoryItemName,
        [parameter(mandatory=$False,HelpMessage='Name of the VMMServer.)')]
        [string]
        $vmmServerName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getInventoryItem -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionScvmmGetVirtualMachine
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the VirtualMachine.)')]
        [string]
        $virtualMachineName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getVirtualMachine -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionScvmmGetVmmServer
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the VMMServer.)')]
        [string]
        $vmmServerName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getVmmServer -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionScvmmGetCloud
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the Cloud.)')]
        [string]
        $cloudName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getCloud -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionScvmmGetAvailabilitySet
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the AvailabilitySet.)')]
        [string]
        $availabilitySetName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getAvailabilitySet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionScvmmGetVirtualMachineTemplate
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the VirtualMachineTemplate.)')]
        [string]
        $virtualMachineTemplateName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:scvmm:getVirtualMachineTemplate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class ExtendedLocation
{
    [string] $name
    [string] $type
}
function New-AzureNativeTypeScvmmExtendedLocation
{
    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-AzureNativeScvmmVirtualNetwork
{
    [Alias('azure_native_scvmm_virtualnetwork')]
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the resource.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='The extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Unique ID of the virtual network.)')]
        [string]
        $uuid,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the vmmServer resource in which this resource resides.)')]
        [string]
        $vmmServerId,
        [parameter(mandatory=$False,HelpMessage='Name of the VirtualNetwork.)')]
        [string]
        $virtualNetworkName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:scvmm:VirtualNetwork")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeScvmmCloud
{
    [Alias('azure_native_scvmm_cloud')]
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the resource.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='The extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Unique ID of the cloud.)')]
        [string]
        $uuid,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the vmmServer resource in which this resource resides.)')]
        [string]
        $vmmServerId,
        [parameter(mandatory=$False,HelpMessage='Name of the Cloud.)')]
        [string]
        $cloudName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:scvmm:Cloud")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class VMMServerPropertiesCredentials
{
    [string] $username
    [string] $password
}
function New-AzureNativeTypeScvmmVMMServerPropertiesCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='Username to use to connect to VMMServer.)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='Credentials to use to connect to VMMServer.)')]
        [string]
        $password
    )

    process
    {
        return $([VMMServerPropertiesCredentials]$PSBoundParameters)
    }
}
function New-AzureNativeScvmmVmmServer
{
    [Alias('azure_native_scvmm_vmmserver')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Credentials to connect to VMMServer.)')]
        [VMMServerPropertiesCredentials]
        $credentials,
        [parameter(mandatory=$False,HelpMessage='The extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Fqdn is the hostname/ip of the vmmServer.)')]
        [string]
        $fqdn,
        [parameter(mandatory=$False,HelpMessage='Name of the VMMServer.)')]
        [string]
        $vmmServerName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Port is the port on which the vmmServer is listening.)')]
        [int]
        $port,
        [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:scvmm:VmmServer")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeScvmmVirtualMachineTemplate
{
    [Alias('azure_native_scvmm_virtualmachinetemplate')]
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the resource.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='The extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Unique ID of the virtual machine template.)')]
        [string]
        $uuid,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Name of the VirtualMachineTemplate.)')]
        [string]
        $virtualMachineTemplateName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the vmmServer resource in which this resource resides.)')]
        [string]
        $vmmServerId,
        [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:scvmm:VirtualMachineTemplate")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class StorageQoSPolicyDetails
{
    [string] $id
    [string] $name
}
function New-AzureNativeTypeScvmmStorageQoSPolicyDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='The ID of the QoS policy.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='The name of the policy.)')]
        [string]
        $name
    )

    process
    {
        return $([StorageQoSPolicyDetails]$PSBoundParameters)
    }
}
class VirtualDisk
{
    [StorageQoSPolicyDetails] $storageQoSPolicy
    [string] $templateDiskId
    [string] $vhdType
    [string] $busType
    [int] $bus
    [int] $lun
    [int] $diskSizeGB
    [ValidateSet('false', 'true')]
    [string] $createDiffDisk
    [ValidateSet('false', 'true')]
    [string] $name
    [ValidateSet('false', 'true')]
    [string] $diskId
}
function New-AzureNativeTypeScvmmVirtualDisk
{
    param (
        [parameter(mandatory=$False,HelpMessage='The QoS policy for the disk.)')]
        [StorageQoSPolicyDetails]
        $storageQoSPolicy,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk id in the template.)')]
        [string]
        $templateDiskId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk vhd type.)')]
        [string]
        $vhdType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk bus type.)')]
        [string]
        $busType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk bus.)')]
        [int]
        $bus,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk lun.)')]
        [int]
        $lun,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk total size.)')]
        [int]
        $diskSizeGB,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a value indicating diff disk.)')]
        [string]
        [ValidateSet('false', 'true')]
        $createDiffDisk,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the name of the disk.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the disk id.)')]
        [string]
        $diskId
    )

    process
    {
        return $([VirtualDisk]$PSBoundParameters)
    }
}
class StorageProfile
{
    [VirtualDisk[]] $disks
}
function New-AzureNativeTypeScvmmStorageProfile
{
    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] $dynamicMemoryMaxMB
    [string] $isHighlyAvailable
    [int] $dynamicMemoryMinMB
    [int] $cpuCount
    [ValidateSet('false', 'true')]
    [string] $dynamicMemoryEnabled
    [ValidateSet('false', 'true')]
    [string] $limitCpuForMigration
    [ValidateSet('false', 'true')]
    [int] $memoryMB
}
function New-AzureNativeTypeScvmmHardwareProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the max dynamic memory for the vm.)')]
        [int]
        $dynamicMemoryMaxMB,
        [parameter(mandatory=$False,HelpMessage='Gets highly available property.)')]
        [string]
        $isHighlyAvailable,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the min dynamic memory for the vm.)')]
        [int]
        $dynamicMemoryMinMB,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the number of vCPUs for the vm.)')]
        [int]
        $cpuCount,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a value indicating whether to enable dynamic memory or not.)')]
        [string]
        [ValidateSet('false', 'true')]
        $dynamicMemoryEnabled,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a value indicating whether to enable processor compatibility mode for live migration of VMs.)')]
        [string]
        [ValidateSet('false', 'true')]
        $limitCpuForMigration,
        [parameter(mandatory=$False,HelpMessage='MemoryMB is the size of a virtual machine''s memory, in MB.)')]
        [int]
        $memoryMB
    )

    process
    {
        return $([HardwareProfile]$PSBoundParameters)
    }
}
class OsProfile
{
    [string] $adminPassword
    [string] $computerName
}
function New-AzureNativeTypeScvmmOsProfile
{
    param (
        [parameter(mandatory=$False,HelpMessage='Admin password of the virtual machine.)')]
        [string]
        $adminPassword,
        [parameter(mandatory=$False,HelpMessage='Gets or sets computer name.)')]
        [string]
        $computerName
    )

    process
    {
        return $([OsProfile]$PSBoundParameters)
    }
}
class NetworkInterfaces
{
    [ValidateSet('Dynamic', 'Static')]
    [string] $ipv6AddressType
    [ValidateSet('Dynamic', 'Static')]
    [string] $macAddress
    [ValidateSet('Dynamic', 'Static')]
    [string] $virtualNetworkId
    [ValidateSet('Dynamic', 'Static')]
    [string] $nicId
    [ValidateSet('Dynamic', 'Static')]
    [string] $macAddressType
    [ValidateSet('Dynamic', 'Static')]
    [string] $name
    [ValidateSet('Dynamic', 'Static')]
    [string] $ipv4AddressType
}
function New-AzureNativeTypeScvmmNetworkInterfaces
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ipv6 address type.)')]
        [string]
        [ValidateSet('Dynamic', 'Static')]
        $ipv6AddressType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the nic MAC address.)')]
        [string]
        $macAddress,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ARM Id of the Microsoft.ScVmm/virtualNetwork resource to connect the nic.)')]
        [string]
        $virtualNetworkId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the nic id.)')]
        [string]
        $nicId,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the mac address type.)')]
        [string]
        [ValidateSet('Dynamic', 'Static')]
        $macAddressType,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the name of the network interface.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the ipv4 address type.)')]
        [string]
        [ValidateSet('Dynamic', 'Static')]
        $ipv4AddressType
    )

    process
    {
        return $([NetworkInterfaces]$PSBoundParameters)
    }
}
class NetworkProfile
{
    [NetworkInterfaces[]] $networkInterfaces
}
function New-AzureNativeTypeScvmmNetworkProfile
{
    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-AzureNativeScvmmVirtualMachine
{
    [Alias('azure_native_scvmm_virtualmachine')]
    param (
        [parameter(mandatory=$False,HelpMessage='ARM Id of the cloud resource to use for deploying the vm.)')]
        [string]
        $cloudId,
        [parameter(mandatory=$False,HelpMessage='Unique ID of the virtual machine.)')]
        [string]
        $uuid,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the generation for the vm.)')]
        [int]
        $generation,
        [parameter(mandatory=$False,HelpMessage='Type of checkpoint supported for the vm.)')]
        [string]
        $checkpointType,
        [parameter(mandatory=$False,HelpMessage='Storage properties.)')]
        [StorageProfile]
        $storageProfile,
        [parameter(mandatory=$False,HelpMessage='Hardware properties.)')]
        [HardwareProfile]
        $hardwareProfile,
        [parameter(mandatory=$False,HelpMessage='OS properties.)')]
        [OsProfile]
        $osProfile,
        [parameter(mandatory=$False,HelpMessage='The extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='Network properties.)')]
        [NetworkProfile]
        $networkProfile,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the template resource to use for deploying the vm.)')]
        [string]
        $templateId,
        [parameter(mandatory=$False,HelpMessage='VMName is the name of VM on the SCVMM server.)')]
        [string]
        $vmName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the inventory Item ID for the resource.)')]
        [string]
        $inventoryItemId,
        [parameter(mandatory=$False,HelpMessage='Availability Sets in vm.)')]
        $availabilitySets,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the vmmServer resource in which this resource resides.)')]
        [string]
        $vmmServerId,
        [parameter(mandatory=$False,HelpMessage='Checkpoints in the vm.)')]
        $checkpoints,
        [parameter(mandatory=$False,HelpMessage='Name of the VirtualMachine.)')]
        [string]
        $virtualMachineName,
        [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:scvmm:VirtualMachine")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeScvmmInventoryItem
{
    [Alias('azure_native_scvmm_inventoryitem')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the inventoryItem.)')]
        [string]
        $inventoryItemName,
        [parameter(mandatory=$False,HelpMessage='They inventory type.)')]
        [string]
        [ValidateSet('Cloud', 'VirtualNetwork', 'VirtualMachineTemplate', 'VirtualMachine')]
        $inventoryType,
        [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 VMMServer.)')]
        [string]
        $vmmServerName,
        [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:scvmm:InventoryItem")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeScvmmAvailabilitySet
{
    [Alias('azure_native_scvmm_availabilityset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the availability set.)')]
        [string]
        $availabilitySetName,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the vmmServer resource in which this resource resides.)')]
        [string]
        $vmmServerId,
        [parameter(mandatory=$False,HelpMessage='The extended location.)')]
        [ExtendedLocation]
        $extendedLocation,
        [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:scvmm:AvailabilitySet")

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

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

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

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

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

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

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