pspulumiyaml.azurenative.aad.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionAadGetDomainService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group within the user''s subscription. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the domain service.)')]
        [string]
        $domainServiceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:aad:getDomainService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAadGetOuContainer
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group within the user''s subscription. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the OuContainer.)')]
        [string]
        $ouContainerName,
        [parameter(mandatory=$False,HelpMessage='The name of the domain service.)')]
        [string]
        $domainServiceName
    )

    process
    {
        $arguments = @{}
        $arguments["domainServiceName"] = $domainServiceName
        $arguments["ouContainerName"] = $ouContainerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:aad:getOuContainer -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeAadOuContainer
{
    [Alias('azure_native_aad_oucontainer')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the OuContainer.)')]
        [string]
        $ouContainerName,
        [parameter(mandatory=$False,HelpMessage='The account spn)')]
        [string]
        $spn,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group within the user''s subscription. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the domain service.)')]
        [string]
        $domainServiceName,
        [parameter(mandatory=$False,HelpMessage='The account password)')]
        [string]
        $password,
        [parameter(mandatory=$False,HelpMessage='The account name)')]
        [string]
        $accountName,
        [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:aad:OuContainer")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class NotificationSettings
{
    [ValidateSet('Enabled', 'Disabled')]
    [string] $notifyGlobalAdmins
    [ValidateSet('Enabled', 'Disabled')]
    [string[]] $additionalRecipients
    [ValidateSet('Enabled', 'Disabled')]
    [string] $notifyDcAdmins
}
function New-AzureNativeTypeAadNotificationSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Should global admins be notified)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $notifyGlobalAdmins,
        [parameter(mandatory=$False,HelpMessage='The list of additional recipients)')]
        [string[]]
        $additionalRecipients,
        [parameter(mandatory=$False,HelpMessage='Should domain controller admins be notified)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $notifyDcAdmins
    )

    process
    {
        return $([NotificationSettings]$PSBoundParameters)
    }
}
class ForestTrust
{
    [string] $trustPassword
    [string] $trustDirection
    [string] $trustedDomainFqdn
    [string] $remoteDnsIps
    [string] $friendlyName
}
function New-AzureNativeTypeAadForestTrust
{
    param (
        [parameter(mandatory=$False,HelpMessage='Trust Password)')]
        [string]
        $trustPassword,
        [parameter(mandatory=$False,HelpMessage='Trust Direction)')]
        [string]
        $trustDirection,
        [parameter(mandatory=$False,HelpMessage='Trusted Domain FQDN)')]
        [string]
        $trustedDomainFqdn,
        [parameter(mandatory=$False,HelpMessage='Remote Dns ips)')]
        [string]
        $remoteDnsIps,
        [parameter(mandatory=$False,HelpMessage='Friendly Name)')]
        [string]
        $friendlyName
    )

    process
    {
        return $([ForestTrust]$PSBoundParameters)
    }
}
class ResourceForestSettings
{
    [ForestTrust[]] $settings
    [string] $resourceForest
}
function New-AzureNativeTypeAadResourceForestSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='List of settings for Resource Forest)')]
        $settings,
        [parameter(mandatory=$False,HelpMessage='Resource Forest)')]
        [string]
        $resourceForest
    )

    process
    {
        return $([ResourceForestSettings]$PSBoundParameters)
    }
}
class DomainSecuritySettings
{
    [ValidateSet('Enabled', 'Disabled')]
    [string] $syncKerberosPasswords
    [ValidateSet('Enabled', 'Disabled')]
    [string] $syncOnPremPasswords
    [ValidateSet('Enabled', 'Disabled')]
    [string] $kerberosArmoring
    [ValidateSet('Enabled', 'Disabled')]
    [string] $ntlmV1
    [ValidateSet('Enabled', 'Disabled')]
    [string] $syncNtlmPasswords
    [ValidateSet('Enabled', 'Disabled')]
    [string] $kerberosRc4Encryption
    [ValidateSet('Enabled', 'Disabled')]
    [string] $tlsV1
}
function New-AzureNativeTypeAadDomainSecuritySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not SyncKerberosPasswords is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $syncKerberosPasswords,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not SyncOnPremPasswords is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $syncOnPremPasswords,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not KerberosArmoring is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $kerberosArmoring,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not NtlmV1 is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $ntlmV1,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not SyncNtlmPasswords is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $syncNtlmPasswords,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not KerberosRc4Encryption is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $kerberosRc4Encryption,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not TlsV1 is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $tlsV1
    )

    process
    {
        return $([DomainSecuritySettings]$PSBoundParameters)
    }
}
class LdapsSettings
{
    [string] $pfxCertificatePassword
    [ValidateSet('Enabled', 'Disabled')]
    [string] $externalAccess
    [ValidateSet('Enabled', 'Disabled')]
    [string] $ldaps
    [ValidateSet('Enabled', 'Disabled')]
    [string] $pfxCertificate
}
function New-AzureNativeTypeAadLdapsSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The password to decrypt the provided Secure LDAP certificate pfx file.)')]
        [string]
        $pfxCertificatePassword,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not Secure LDAP access over the internet is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $externalAccess,
        [parameter(mandatory=$False,HelpMessage='A flag to determine whether or not Secure LDAP is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $ldaps,
        [parameter(mandatory=$False,HelpMessage='The certificate required to configure Secure LDAP. The parameter passed here should be a base64encoded representation of the certificate pfx file.)')]
        [string]
        $pfxCertificate
    )

    process
    {
        return $([LdapsSettings]$PSBoundParameters)
    }
}
function New-AzureNativeAadDomainService
{
    [Alias('azure_native_aad_domainservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='Sku Type)')]
        [string]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Notification Settings)')]
        [NotificationSettings]
        $notificationSettings,
        [parameter(mandatory=$False,HelpMessage='The name of the domain service.)')]
        [string]
        $domainServiceName,
        [parameter(mandatory=$False,HelpMessage='List of ReplicaSets)')]
        $replicaSets,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Resource Forest Settings)')]
        [ResourceForestSettings]
        $resourceForestSettings,
        [parameter(mandatory=$False,HelpMessage='Domain Configuration Type)')]
        [string]
        $domainConfigurationType,
        [parameter(mandatory=$False,HelpMessage='Enabled or Disabled flag to turn on Group-based filtered sync)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $filteredSync,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group within the user''s subscription. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='DomainSecurity Settings)')]
        [DomainSecuritySettings]
        $domainSecuritySettings,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure domain that the user would like to deploy Domain Services to.)')]
        [string]
        $domainName,
        [parameter(mandatory=$False,HelpMessage='Secure LDAP Settings)')]
        [LdapsSettings]
        $ldapsSettings,
        [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:aad:DomainService")

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

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

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

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

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

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

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

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

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

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

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

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

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

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