pspulumiyaml.azurenative.datalakestore.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionDatalakestoreGetTrustedIdProvider
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the trusted identity provider to retrieve.)')]
        [string]
        $trustedIdProviderName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["trustedIdProviderName"] = $trustedIdProviderName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datalakestore:getTrustedIdProvider -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatalakestoreGetAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:datalakestore:getAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatalakestoreGetVirtualNetworkRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the virtual network rule to retrieve.)')]
        [string]
        $virtualNetworkRuleName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["virtualNetworkRuleName"] = $virtualNetworkRuleName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datalakestore:getVirtualNetworkRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatalakestoreGetFirewallRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the firewall rule to retrieve.)')]
        [string]
        $firewallRuleName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName
    )

    process
    {
        $arguments = @{}
        $arguments["accountName"] = $accountName
        $arguments["firewallRuleName"] = $firewallRuleName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:datalakestore:getFirewallRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeDatalakestoreTrustedIdProvider
{
    [Alias('azure_native_datalakestore_trustedidprovider')]
    param (
        [parameter(mandatory=$False,HelpMessage='The URL of this trusted identity provider.)')]
        [string]
        $idProvider,
        [parameter(mandatory=$False,HelpMessage='The name of the trusted identity provider. This is used for differentiation of providers in the account.)')]
        [string]
        $trustedIdProviderName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName,
        [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:datalakestore:TrustedIdProvider")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatalakestoreFirewallRule
{
    [Alias('azure_native_datalakestore_firewallrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The end IP address for the firewall rule. This can be either ipv4 or ipv6. Start and End should be in the same protocol.)')]
        [string]
        $endIpAddress,
        [parameter(mandatory=$False,HelpMessage='The start IP address for the firewall rule. This can be either ipv4 or ipv6. Start and End should be in the same protocol.)')]
        [string]
        $startIpAddress,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the firewall rule to create or update.)')]
        [string]
        $firewallRuleName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName,
        [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:datalakestore:FirewallRule")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeDatalakestoreVirtualNetworkRule
{
    [Alias('azure_native_datalakestore_virtualnetworkrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource identifier for the subnet.)')]
        [string]
        $subnetId,
        [parameter(mandatory=$False,HelpMessage='The name of the virtual network rule to create or update.)')]
        [string]
        $virtualNetworkRuleName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName,
        [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:datalakestore:VirtualNetworkRule")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class KeyVaultMetaInfo
{
    [string] $keyVaultResourceId
    [string] $encryptionKeyName
    [string] $encryptionKeyVersion
}
function New-AzureNativeTypeDatalakestoreKeyVaultMetaInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource identifier for the user managed Key Vault being used to encrypt.)')]
        [string]
        $keyVaultResourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the user managed encryption key.)')]
        [string]
        $encryptionKeyName,
        [parameter(mandatory=$False,HelpMessage='The version of the user managed encryption key.)')]
        [string]
        $encryptionKeyVersion
    )

    process
    {
        return $([KeyVaultMetaInfo]$PSBoundParameters)
    }
}
class EncryptionConfig
{
    [ArgumentCompletions('UserManaged', 'ServiceManaged')]
    [object] $type
    [KeyVaultMetaInfo] $keyVaultMetaInfo
}
function New-AzureNativeTypeDatalakestoreEncryptionConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of encryption configuration being used. Currently the only supported types are ''UserManaged'' and ''ServiceManaged''.)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The Key Vault information for connecting to user managed encryption keys.)')]
        [KeyVaultMetaInfo]
        $keyVaultMetaInfo
    )

    process
    {
        return $([EncryptionConfig]$PSBoundParameters)
    }
}
class EncryptionIdentity
{
    [ArgumentCompletions('SystemAssigned')]
    [object] $type
}
function New-AzureNativeTypeDatalakestoreEncryptionIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of encryption being used. Currently the only supported type is ''SystemAssigned''.)')]
        $type
    )

    process
    {
        return $([EncryptionIdentity]$PSBoundParameters)
    }
}
function New-AzureNativeDatalakestoreAccount
{
    [Alias('azure_native_datalakestore_account')]
    param (
        [parameter(mandatory=$False,HelpMessage='The list of virtual network rules associated with this Data Lake Store account.)')]
        $virtualNetworkRules,
        [parameter(mandatory=$False,HelpMessage='The current state of encryption for this Data Lake Store account.)')]
        $encryptionState,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The list of trusted identity providers associated with this Data Lake Store account.)')]
        $trustedIdProviders,
        [parameter(mandatory=$False,HelpMessage='The name of the Data Lake Store account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The current state of allowing or disallowing IPs originating within Azure through the firewall. If the firewall is disabled, this is not enforced.)')]
        $firewallAllowAzureIps,
        [parameter(mandatory=$False,HelpMessage='The Key Vault encryption configuration.)')]
        [EncryptionConfig]
        $encryptionConfig,
        [parameter(mandatory=$False,HelpMessage='The commitment tier to use for next month.)')]
        $newTier,
        [parameter(mandatory=$False,HelpMessage='The list of firewall rules associated with this Data Lake Store account.)')]
        $firewallRules,
        [parameter(mandatory=$False,HelpMessage='The default owner group for all new folders and files created in the Data Lake Store account.)')]
        [string]
        $defaultGroup,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Key Vault encryption identity, if any.)')]
        [EncryptionIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The current state of the IP address firewall for this Data Lake Store account.)')]
        $firewallState,
        [parameter(mandatory=$False,HelpMessage='The current state of the trusted identity provider feature for this Data Lake Store account.)')]
        $trustedIdProviderState,
        [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:datalakestore: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 'virtualNetworkRules')
        {
            $resource.properties["virtualNetworkRules"] = $virtualNetworkRules
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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