pspulumiyaml.azurenative.powerplatform.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionPowerplatformGetEnterprisePolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The EnterprisePolicy name.)')]
        [string]
        $enterprisePolicyName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:powerplatform:getEnterprisePolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPowerplatformGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='EnterprisePolicy for the Microsoft Azure subscription.)')]
        [string]
        $enterprisePolicyName
    )

    process
    {
        $arguments = @{}
        $arguments["enterprisePolicyName"] = $enterprisePolicyName
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:powerplatform:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPowerplatformGetAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:powerplatform:getAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $description
    [string] $actionsRequired
    [ValidateSet('Pending', 'Approved', 'Rejected')]
    [string] $status
}
function New-AzureNativeTypePowerplatformPrivateLinkServiceConnectionState
{
    param (
        [parameter(mandatory=$False,HelpMessage='The reason for approval/rejection of the connection.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='A message indicating if changes on the service provider require any updates on the consumer.)')]
        [string]
        $actionsRequired,
        [parameter(mandatory=$False,HelpMessage='Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.)')]
        [string]
        [ValidateSet('Pending', 'Approved', 'Rejected')]
        $status
    )

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativePowerplatformPrivateEndpointConnection
{
    [Alias('azure_native_powerplatform_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='EnterprisePolicy for the Microsoft Azure subscription.)')]
        [string]
        $enterprisePolicyName,
        [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:powerplatform:PrivateEndpointConnection")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePowerplatformAccount
{
    [Alias('azure_native_powerplatform_account')]
    param (
        [parameter(mandatory=$False,HelpMessage='The description of the account.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Name of the account.)')]
        [string]
        $accountName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [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:powerplatform:Account")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PropertiesLockbox
{
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [string] $state
}
function New-AzureNativeTypePowerplatformPropertiesLockbox
{
    param (
        [parameter(mandatory=$False,HelpMessage='lockbox configuration)')]
        [string]
        [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
        $state
    )

    process
    {
        return $([PropertiesLockbox]$PSBoundParameters)
    }
}
class EnterprisePolicyIdentity
{
    [ValidateSet('SystemAssigned', 'None')]
    [object] $type
}
function New-AzureNativeTypePowerplatformEnterprisePolicyIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of identity used for the EnterprisePolicy. Currently, the only supported type is ''SystemAssigned'', which implicitly creates an identity.)')]
        $type
    )

    process
    {
        return $([EnterprisePolicyIdentity]$PSBoundParameters)
    }
}
class KeyProperties
{
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [string] $name
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [string] $version
}
function New-AzureNativeTypePowerplatformKeyProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The identifier of the key vault key used to encrypt data.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The version of the identity which will be used to access key vault.)')]
        [string]
        $version
    )

    process
    {
        return $([KeyProperties]$PSBoundParameters)
    }
}
class KeyVaultProperties
{
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [string] $id
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [KeyProperties] $key
}
function New-AzureNativeTypePowerplatformKeyVaultProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Uri of KeyVault)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Identity of the secret that includes name and version.)')]
        [KeyProperties]
        $key
    )

    process
    {
        return $([KeyVaultProperties]$PSBoundParameters)
    }
}
class PropertiesEncryption
{
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [string] $state
    [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
    [KeyVaultProperties] $keyVault
}
function New-AzureNativeTypePowerplatformPropertiesEncryption
{
    param (
        [parameter(mandatory=$False,HelpMessage='The state of onboarding, which only appears in the response.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled', 'NotConfigured')]
        $state,
        [parameter(mandatory=$False,HelpMessage='Key vault properties.)')]
        [KeyVaultProperties]
        $keyVault
    )

    process
    {
        return $([PropertiesEncryption]$PSBoundParameters)
    }
}
class SubnetProperties
{
    [string] $name
}
function New-AzureNativeTypePowerplatformSubnetProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Subnet name.)')]
        [string]
        $name
    )

    process
    {
        return $([SubnetProperties]$PSBoundParameters)
    }
}
class VirtualNetworkProperties
{
    [string] $id
    [SubnetProperties] $subnet
}
function New-AzureNativeTypePowerplatformVirtualNetworkProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Uri of the virtual network.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Properties of a subnet.)')]
        [SubnetProperties]
        $subnet
    )

    process
    {
        return $([VirtualNetworkProperties]$PSBoundParameters)
    }
}
class VirtualNetworkPropertiesList
{
    [string] $nextLink
    [VirtualNetworkProperties[]] $value
}
function New-AzureNativeTypePowerplatformVirtualNetworkPropertiesList
{
    param (
        [parameter(mandatory=$False,HelpMessage='Next page link if any.)')]
        [string]
        $nextLink,
        [parameter(mandatory=$False,HelpMessage='Array of virtual networks.)')]
        $value
    )

    process
    {
        return $([VirtualNetworkPropertiesList]$PSBoundParameters)
    }
}
class PropertiesNetworkInjection
{
    [VirtualNetworkPropertiesList] $virtualNetworks
}
function New-AzureNativeTypePowerplatformPropertiesNetworkInjection
{
    param (
        [parameter(mandatory=$False,HelpMessage='Network injection configuration)')]
        [VirtualNetworkPropertiesList]
        $virtualNetworks
    )

    process
    {
        return $([PropertiesNetworkInjection]$PSBoundParameters)
    }
}
function New-AzureNativePowerplatformEnterprisePolicy
{
    [Alias('azure_native_powerplatform_enterprisepolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Settings concerning lockbox.)')]
        [PropertiesLockbox]
        $lockbox,
        [parameter(mandatory=$False,HelpMessage='The identity of the EnterprisePolicy.)')]
        [EnterprisePolicyIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Name of the EnterprisePolicy.)')]
        [string]
        $enterprisePolicyName,
        [parameter(mandatory=$False,HelpMessage='The kind (type) of Enterprise Policy.)')]
        [string]
        [ValidateSet('Lockbox', 'PrivateEndpoint', 'Encryption', 'NetworkInjection')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The encryption settings for a configuration store.)')]
        [PropertiesEncryption]
        $encryption,
        [parameter(mandatory=$False,HelpMessage='Settings concerning network injection.)')]
        [PropertiesNetworkInjection]
        $networkInjection,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [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:powerplatform:EnterprisePolicy")

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

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

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

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

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

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

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

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

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