pspulumiyaml.azurenative.policyinsights.psm1

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getAttestationAtResourceGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsGetRemediationAtManagementGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace for Microsoft Management RP; only "Microsoft.Management" is allowed.)')]
        [string]
        $managementGroupsNamespace,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [parameter(mandatory=$False,HelpMessage='Management group ID.)')]
        [string]
        $managementGroupId
    )

    process
    {
        $arguments = @{}
        $arguments["managementGroupId"] = $managementGroupId
        $arguments["managementGroupsNamespace"] = $managementGroupsNamespace
        $arguments["remediationName"] = $remediationName

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getRemediationAtManagementGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsListRemediationDeploymentsAtManagementGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace for Microsoft Management RP; only "Microsoft.Management" is allowed.)')]
        [string]
        $managementGroupsNamespace,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [parameter(mandatory=$False,HelpMessage='Maximum number of records to return.)')]
        [int]
        $top,
        [parameter(mandatory=$False,HelpMessage='Management group ID.)')]
        [string]
        $managementGroupId
    )

    process
    {
        $arguments = @{}
        $arguments["managementGroupId"] = $managementGroupId
        $arguments["managementGroupsNamespace"] = $managementGroupsNamespace
        $arguments["remediationName"] = $remediationName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:listRemediationDeploymentsAtManagementGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsGetRemediationAtResourceGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getRemediationAtResourceGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsListRemediationDeploymentsAtSubscription
{
    param (
        [parameter(mandatory=$False,HelpMessage='Maximum number of records to return.)')]
        [int]
        $top,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName
    )

    process
    {
        $arguments = @{}
        $arguments["remediationName"] = $remediationName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:listRemediationDeploymentsAtSubscription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsGetRemediationAtResource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [parameter(mandatory=$False,HelpMessage='Resource ID.)')]
        [string]
        $resourceId
    )

    process
    {
        $arguments = @{}
        $arguments["remediationName"] = $remediationName
        $arguments["resourceId"] = $resourceId

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getRemediationAtResource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsListRemediationDeploymentsAtResourceGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Maximum number of records to return.)')]
        [int]
        $top,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName
    )

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:listRemediationDeploymentsAtResourceGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsGetRemediationAtSubscription
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName
    )

    process
    {
        $arguments = @{}
        $arguments["remediationName"] = $remediationName

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getRemediationAtSubscription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsGetAttestationAtSubscription
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the attestation.)')]
        [string]
        $attestationName
    )

    process
    {
        $arguments = @{}
        $arguments["attestationName"] = $attestationName

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getAttestationAtSubscription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsGetAttestationAtResource
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource ID.)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the attestation.)')]
        [string]
        $attestationName
    )

    process
    {
        $arguments = @{}
        $arguments["attestationName"] = $attestationName
        $arguments["resourceId"] = $resourceId

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:getAttestationAtResource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPolicyinsightsListRemediationDeploymentsAtResource
{
    param (
        [parameter(mandatory=$False,HelpMessage='Maximum number of records to return.)')]
        [int]
        $top,
        [parameter(mandatory=$False,HelpMessage='Resource ID.)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName
    )

    process
    {
        $arguments = @{}
        $arguments["remediationName"] = $remediationName
        $arguments["resourceId"] = $resourceId

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:policyinsights:listRemediationDeploymentsAtResource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class RemediationFilters
{
    [string[]] $locations
}
function New-AzureNativeTypePolicyinsightsRemediationFilters
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource locations that will be remediated.)')]
        [string[]]
        $locations
    )

    process
    {
        return $([RemediationFilters]$PSBoundParameters)
    }
}
function New-AzureNativePolicyinsightsRemediationAtResourceGroup
{
    [Alias('azure_native_policyinsights_remediationatresourcegroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that should be remediated.)')]
        [string]
        $policyAssignmentId,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID of the individual definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='Resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The way resources to remediate are discovered. Defaults to ExistingNonCompliant if not specified.)')]
        [string]
        [ValidateSet('ExistingNonCompliant', 'ReEvaluateCompliance')]
        $resourceDiscoveryMode,
        [parameter(mandatory=$False,HelpMessage='The filters that will be applied to determine which resources to remediate.)')]
        [RemediationFilters]
        $filters,
        [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:policyinsights:RemediationAtResourceGroup")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePolicyinsightsAttestationAtResourceGroup
{
    [Alias('azure_native_policyinsights_attestationatresourcegroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Comments describing why this attestation was created.)')]
        [string]
        $comments,
        [parameter(mandatory=$False,HelpMessage='The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.)')]
        [string]
        $owner,
        [parameter(mandatory=$False,HelpMessage='The name of the attestation.)')]
        [string]
        $attestationName,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that the attestation is setting the state for.)')]
        [string]
        $policyAssignmentId,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='The compliance state that should be set on the resource.)')]
        [string]
        [ValidateSet('Compliant', 'NonCompliant', 'Unknown')]
        $complianceState,
        [parameter(mandatory=$False,HelpMessage='The time the compliance state should expire.)')]
        [string]
        $expiresOn,
        [parameter(mandatory=$False,HelpMessage='The evidence supporting the compliance state set in this attestation.)')]
        $evidence,
        [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:policyinsights:AttestationAtResourceGroup")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePolicyinsightsRemediationAtResource
{
    [Alias('azure_native_policyinsights_remediationatresource')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that should be remediated.)')]
        [string]
        $policyAssignmentId,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID of the individual definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='The way resources to remediate are discovered. Defaults to ExistingNonCompliant if not specified.)')]
        [string]
        [ValidateSet('ExistingNonCompliant', 'ReEvaluateCompliance')]
        $resourceDiscoveryMode,
        [parameter(mandatory=$False,HelpMessage='The filters that will be applied to determine which resources to remediate.)')]
        [RemediationFilters]
        $filters,
        [parameter(mandatory=$False,HelpMessage='Resource ID.)')]
        [string]
        $resourceId,
        [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:policyinsights:RemediationAtResource")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePolicyinsightsRemediationAtSubscription
{
    [Alias('azure_native_policyinsights_remediationatsubscription')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that should be remediated.)')]
        [string]
        $policyAssignmentId,
        [parameter(mandatory=$False,HelpMessage='The filters that will be applied to determine which resources to remediate.)')]
        [RemediationFilters]
        $filters,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID of the individual definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='The way resources to remediate are discovered. Defaults to ExistingNonCompliant if not specified.)')]
        [string]
        [ValidateSet('ExistingNonCompliant', 'ReEvaluateCompliance')]
        $resourceDiscoveryMode,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [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:policyinsights:RemediationAtSubscription")


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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePolicyinsightsAttestationAtResource
{
    [Alias('azure_native_policyinsights_attestationatresource')]
    param (
        [parameter(mandatory=$False,HelpMessage='Comments describing why this attestation was created.)')]
        [string]
        $comments,
        [parameter(mandatory=$False,HelpMessage='The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.)')]
        [string]
        $owner,
        [parameter(mandatory=$False,HelpMessage='The name of the attestation.)')]
        [string]
        $attestationName,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that the attestation is setting the state for.)')]
        [string]
        $policyAssignmentId,
        [parameter(mandatory=$False,HelpMessage='Resource ID.)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='The compliance state that should be set on the resource.)')]
        [string]
        [ValidateSet('Compliant', 'NonCompliant', 'Unknown')]
        $complianceState,
        [parameter(mandatory=$False,HelpMessage='The time the compliance state should expire.)')]
        [string]
        $expiresOn,
        [parameter(mandatory=$False,HelpMessage='The evidence supporting the compliance state set in this attestation.)')]
        $evidence,
        [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:policyinsights:AttestationAtResource")

        $resource.properties["policyAssignmentId"] = $policyAssignmentId
        $resource.properties["resourceId"] = $resourceId

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePolicyinsightsAttestationAtSubscription
{
    [Alias('azure_native_policyinsights_attestationatsubscription')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the attestation.)')]
        [string]
        $attestationName,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID from a policy set definition that the attestation is setting the state for. If the policy assignment assigns a policy set definition the attestation can choose a definition within the set definition with this property or omit this and set the state for the entire set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='The time the compliance state should expire.)')]
        [string]
        $expiresOn,
        [parameter(mandatory=$False,HelpMessage='The compliance state that should be set on the resource.)')]
        [string]
        [ValidateSet('Compliant', 'NonCompliant', 'Unknown')]
        $complianceState,
        [parameter(mandatory=$False,HelpMessage='The evidence supporting the compliance state set in this attestation.)')]
        $evidence,
        [parameter(mandatory=$False,HelpMessage='Comments describing why this attestation was created.)')]
        [string]
        $comments,
        [parameter(mandatory=$False,HelpMessage='The person responsible for setting the state of the resource. This value is typically an Azure Active Directory object ID.)')]
        [string]
        $owner,
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that the attestation is setting the state for.)')]
        [string]
        $policyAssignmentId,
        [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:policyinsights:AttestationAtSubscription")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePolicyinsightsRemediationAtManagementGroup
{
    [Alias('azure_native_policyinsights_remediationatmanagementgroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource ID of the policy assignment that should be remediated.)')]
        [string]
        $policyAssignmentId,
        [parameter(mandatory=$False,HelpMessage='The namespace for Microsoft Management RP; only "Microsoft.Management" is allowed.)')]
        [string]
        $managementGroupsNamespace,
        [parameter(mandatory=$False,HelpMessage='The policy definition reference ID of the individual definition that should be remediated. Required when the policy assignment being remediated assigns a policy set definition.)')]
        [string]
        $policyDefinitionReferenceId,
        [parameter(mandatory=$False,HelpMessage='The name of the remediation.)')]
        [string]
        $remediationName,
        [parameter(mandatory=$False,HelpMessage='The way resources to remediate are discovered. Defaults to ExistingNonCompliant if not specified.)')]
        [string]
        [ValidateSet('ExistingNonCompliant', 'ReEvaluateCompliance')]
        $resourceDiscoveryMode,
        [parameter(mandatory=$False,HelpMessage='Management group ID.)')]
        [string]
        $managementGroupId,
        [parameter(mandatory=$False,HelpMessage='The filters that will be applied to determine which resources to remediate.)')]
        [RemediationFilters]
        $filters,
        [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:policyinsights:RemediationAtManagementGroup")

        $resource.properties["managementGroupId"] = $managementGroupId
        $resource.properties["managementGroupsNamespace"] = $managementGroupsNamespace

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

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

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

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

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

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