pspulumiyaml.azurenative.visualstudio.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionVisualstudioGetAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:visualstudio:getAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionVisualstudioGetExtension
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the extension.)')]
        [string]
        $extensionResourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Visual Studio Team Services account resource.)')]
        [string]
        $accountResourceName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["accountResourceName"] = $accountResourceName
        $arguments["extensionResourceName"] = $extensionResourceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:visualstudio:getExtension -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class ExtensionResourcePlan
{
    [string] $version
    [string] $publisher
    [string] $promotionCode
    [string] $name
    [string] $product
}
function New-AzureNativeTypeVisualstudioExtensionResourcePlan
{
    param (
        [parameter(mandatory=$False,HelpMessage='A string that uniquely identifies the plan version.)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='Name of the extension publisher.)')]
        [string]
        $publisher,
        [parameter(mandatory=$False,HelpMessage='Optional: the promotion code associated with the plan.)')]
        [string]
        $promotionCode,
        [parameter(mandatory=$False,HelpMessage='Name of the plan.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Product name.)')]
        [string]
        $product
    )

    process
    {
        return $([ExtensionResourcePlan]$PSBoundParameters)
    }
}
function New-AzureNativeVisualstudioExtension
{
    [Alias('azure_native_visualstudio_extension')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Visual Studio Team Services account resource.)')]
        [string]
        $accountResourceName,
        [parameter(mandatory=$False,HelpMessage='Extended information about the plan being purchased for this extension resource.)')]
        [ExtensionResourcePlan]
        $plan,
        [parameter(mandatory=$False,HelpMessage='A dictionary of extended properties. This property is currently unused.)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='A dictionary of user-defined tags to be stored with the extension resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the extension.)')]
        [string]
        $extensionResourceName,
        [parameter(mandatory=$False,HelpMessage='The Azure region of the Visual Studio account associated with this request (i.e ''southcentralus''.))')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeVisualstudioAccount
{
    [Alias('azure_native_visualstudio_account')]
    param (
        [parameter(mandatory=$False,HelpMessage='The account name.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='Name of the resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The custom properties of the resource.)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The type of the operation.)')]
        [string]
        [ValidateSet('unknown', 'create', 'update', 'link')]
        $operationType,
        [parameter(mandatory=$False,HelpMessage='The custom tags of the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The Azure instance location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

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

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