pspulumiyaml.azurenative.education.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionEducationGetStudent
{
    param (
        [parameter(mandatory=$False,HelpMessage='Student alias.)')]
        [string]
        $studentAlias,
        [parameter(mandatory=$False,HelpMessage='Billing account name.)')]
        [string]
        $billingAccountName,
        [parameter(mandatory=$False,HelpMessage='Billing profile name.)')]
        [string]
        $billingProfileName,
        [parameter(mandatory=$False,HelpMessage='Invoice section name.)')]
        [string]
        $invoiceSectionName
    )

    process
    {
        $arguments = @{}
        $arguments["billingAccountName"] = $billingAccountName
        $arguments["billingProfileName"] = $billingProfileName
        $arguments["invoiceSectionName"] = $invoiceSectionName
        $arguments["studentAlias"] = $studentAlias

        $functionObject = Invoke-PulumiFunction -Name azure-native:education:getStudent -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionEducationGetLab
{
    param (
        [parameter(mandatory=$False,HelpMessage='Billing account name.)')]
        [string]
        $billingAccountName,
        [parameter(mandatory=$False,HelpMessage='Billing profile name.)')]
        [string]
        $billingProfileName,
        [parameter(mandatory=$False,HelpMessage='Invoice section name.)')]
        [string]
        $invoiceSectionName,
        [parameter(mandatory=$False,HelpMessage='May be used to include budget information.)')]
        [bool]
        $includeBudget
    )

    process
    {
        $arguments = @{}
        $arguments["billingAccountName"] = $billingAccountName
        $arguments["billingProfileName"] = $billingProfileName
        $arguments["invoiceSectionName"] = $invoiceSectionName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:education:getLab -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class Amount
{
    [int] $value
    [string] $currency
}
function New-AzureNativeTypeEducationAmount
{
    param (
        [parameter(mandatory=$False,HelpMessage='Amount value.)')]
        [int]
        $value,
        [parameter(mandatory=$False,HelpMessage='The type of currency being used for the value.)')]
        [string]
        $currency
    )

    process
    {
        return $([Amount]$PSBoundParameters)
    }
}
function New-AzureNativeEducationStudent
{
    [Alias('azure_native_education_student')]
    param (
        [parameter(mandatory=$False,HelpMessage='First Name)')]
        [string]
        $firstName,
        [parameter(mandatory=$False,HelpMessage='Student alias.)')]
        [string]
        $studentAlias,
        [parameter(mandatory=$False,HelpMessage='Student Budget)')]
        [Amount]
        $budget,
        [parameter(mandatory=$False,HelpMessage='subscription invite last sent date)')]
        [string]
        $subscriptionInviteLastSentDate,
        [parameter(mandatory=$False,HelpMessage='Invoice section name.)')]
        [string]
        $invoiceSectionName,
        [parameter(mandatory=$False,HelpMessage='Student Email)')]
        [string]
        $email,
        [parameter(mandatory=$False,HelpMessage='Subscription alias)')]
        [string]
        $subscriptionAlias,
        [parameter(mandatory=$False,HelpMessage='Billing profile name.)')]
        [string]
        $billingProfileName,
        [parameter(mandatory=$False,HelpMessage='Last Name)')]
        [string]
        $lastName,
        [parameter(mandatory=$False,HelpMessage='Student Role)')]
        [string]
        [ValidateSet('Student', 'Admin')]
        $role,
        [parameter(mandatory=$False,HelpMessage='Billing account name.)')]
        [string]
        $billingAccountName,
        [parameter(mandatory=$False,HelpMessage='Date this student is set to expire from the lab.)')]
        [string]
        $expirationDate,
        [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:education:Student")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["billingAccountName"] = $billingAccountName
        $resource.properties["billingProfileName"] = $billingProfileName
        $resource.properties["budget"] = $budget
        $resource.properties["email"] = $email
        $resource.properties["expirationDate"] = $expirationDate
        $resource.properties["firstName"] = $firstName
        $resource.properties["invoiceSectionName"] = $invoiceSectionName
        $resource.properties["lastName"] = $lastName
        $resource.properties["role"] = $role

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeEducationLab
{
    [Alias('azure_native_education_lab')]
    param (
        [parameter(mandatory=$False,HelpMessage='Default monetary cap for each student in this lab)')]
        [Amount]
        $budgetPerStudent,
        [parameter(mandatory=$False,HelpMessage='Detail description of this lab)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Amount value.)')]
        [int]
        $value,
        [parameter(mandatory=$False,HelpMessage='Lab Display Name)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Invoice section name.)')]
        [string]
        $invoiceSectionName,
        [parameter(mandatory=$False,HelpMessage='Billing profile name.)')]
        [string]
        $billingProfileName,
        [parameter(mandatory=$False,HelpMessage='The type of currency being used for the value.)')]
        [string]
        $currency,
        [parameter(mandatory=$False,HelpMessage='Billing account name.)')]
        [string]
        $billingAccountName,
        [parameter(mandatory=$False,HelpMessage='Default expiration date for each student in this lab)')]
        [string]
        $expirationDate,
        [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:education:Lab")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["billingAccountName"] = $billingAccountName
        $resource.properties["billingProfileName"] = $billingProfileName
        $resource.properties["budgetPerStudent"] = $budgetPerStudent
        $resource.properties["description"] = $description
        $resource.properties["displayName"] = $displayName
        $resource.properties["expirationDate"] = $expirationDate
        $resource.properties["invoiceSectionName"] = $invoiceSectionName

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

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

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