pspulumiyaml.azurenative.kubernetesconfiguration.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionKubernetesconfigurationGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure Arc PrivateLinkScope resource.)')]
        [string]
        $scopeName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:kubernetesconfiguration:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKubernetesconfigurationGetFluxConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the kubernetes cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).)')]
        [string]
        $clusterRp,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the Flux Configuration.)')]
        [string]
        $fluxConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).)')]
        [string]
        $clusterResourceName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["clusterResourceName"] = $clusterResourceName
        $arguments["clusterRp"] = $clusterRp
        $arguments["fluxConfigurationName"] = $fluxConfigurationName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kubernetesconfiguration:getFluxConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKubernetesconfigurationGetPrivateLinkScope
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure Arc PrivateLinkScope resource.)')]
        [string]
        $scopeName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:kubernetesconfiguration:getPrivateLinkScope -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKubernetesconfigurationGetSourceControlConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the kubernetes cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).)')]
        [string]
        $clusterRp,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the Source Control Configuration.)')]
        [string]
        $sourceControlConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).)')]
        [string]
        $clusterResourceName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["clusterResourceName"] = $clusterResourceName
        $arguments["clusterRp"] = $clusterRp
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sourceControlConfigurationName"] = $sourceControlConfigurationName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kubernetesconfiguration:getSourceControlConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionKubernetesconfigurationGetExtension
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the kubernetes cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).)')]
        [string]
        $clusterRp,
        [parameter(mandatory=$False,HelpMessage='Name of an instance of the Extension.)')]
        [string]
        $extensionInstanceName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).)')]
        [string]
        $clusterResourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["clusterName"] = $clusterName
        $arguments["clusterResourceName"] = $clusterResourceName
        $arguments["clusterRp"] = $clusterRp
        $arguments["extensionInstanceName"] = $extensionInstanceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:kubernetesconfiguration:getExtension -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class RepositoryRefDefinition
{
    [string] $commit
    [string] $semver
    [string] $tag
    [string] $branch
}
function New-AzureNativeTypeKubernetesconfigurationRepositoryRefDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver.)')]
        [string]
        $commit,
        [parameter(mandatory=$False,HelpMessage='The semver range used to match against git repository tags. This takes precedence over tag.)')]
        [string]
        $semver,
        [parameter(mandatory=$False,HelpMessage='The git repository tag name to checkout. This takes precedence over branch.)')]
        [string]
        $tag,
        [parameter(mandatory=$False,HelpMessage='The git repository branch name to checkout.)')]
        [string]
        $branch
    )

    process
    {
        return $([RepositoryRefDefinition]$PSBoundParameters)
    }
}
class GitRepositoryDefinition
{
    [string] $sshKnownHosts
    [int] $syncIntervalInSeconds
    [string] $localAuthRef
    [int] $timeoutInSeconds
    [string] $url
    [string] $httpsUser
    [string] $httpsCAFile
    [RepositoryRefDefinition] $repositoryRef
}
function New-AzureNativeTypeKubernetesconfigurationGitRepositoryDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH)')]
        [string]
        $sshKnownHosts,
        [parameter(mandatory=$False,HelpMessage='The interval at which to re-reconcile the cluster git repository source with the remote.)')]
        [int]
        $syncIntervalInSeconds,
        [parameter(mandatory=$False,HelpMessage='Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.)')]
        [string]
        $localAuthRef,
        [parameter(mandatory=$False,HelpMessage='The maximum time to attempt to reconcile the cluster git repository source with the remote.)')]
        [int]
        $timeoutInSeconds,
        [parameter(mandatory=$False,HelpMessage='The URL to sync for the flux configuration git repository.)')]
        [string]
        $url,
        [parameter(mandatory=$False,HelpMessage='Base64-encoded HTTPS username used to access private git repositories over HTTPS)')]
        [string]
        $httpsUser,
        [parameter(mandatory=$False,HelpMessage='Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS)')]
        [string]
        $httpsCAFile,
        [parameter(mandatory=$False,HelpMessage='The source reference for the GitRepository object.)')]
        [RepositoryRefDefinition]
        $repositoryRef
    )

    process
    {
        return $([GitRepositoryDefinition]$PSBoundParameters)
    }
}
class DependsOnDefinition
{
    [string] $kustomizationName
}
function New-AzureNativeTypeKubernetesconfigurationDependsOnDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the kustomization to claim dependency on)')]
        [string]
        $kustomizationName
    )

    process
    {
        return $([DependsOnDefinition]$PSBoundParameters)
    }
}
class KustomizationDefinition
{
    [int] $syncIntervalInSeconds
    [DependsOnDefinition[]] $dependsOn
    [bool] $force
    [bool] $prune
    [string] $path
    [int] $timeoutInSeconds
    [int] $retryIntervalInSeconds
    [ValidateSet('none', 'client', 'server')]
    [string] $validation
}
function New-AzureNativeTypeKubernetesconfigurationKustomizationDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The interval at which to re-reconcile the Kustomization on the cluster.)')]
        [int]
        $syncIntervalInSeconds,
        [parameter(mandatory=$False,HelpMessage='Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.)')]
        $dependsOn,
        [parameter(mandatory=$False,HelpMessage='Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.)')]
        [bool]
        $force,
        [parameter(mandatory=$False,HelpMessage='Enable/disable garbage collections of Kubernetes objects created by this Kustomization.)')]
        [bool]
        $prune,
        [parameter(mandatory=$False,HelpMessage='The path in the source reference to reconcile on the cluster.)')]
        [string]
        $path,
        [parameter(mandatory=$False,HelpMessage='The maximum time to attempt to reconcile the Kustomization on the cluster.)')]
        [int]
        $timeoutInSeconds,
        [parameter(mandatory=$False,HelpMessage='The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.)')]
        [int]
        $retryIntervalInSeconds,
        [parameter(mandatory=$False,HelpMessage='Specify whether to validate the Kubernetes objects referenced in the Kustomization before applying them to the cluster.)')]
        [string]
        [ValidateSet('none', 'client', 'server')]
        $validation
    )

    process
    {
        return $([KustomizationDefinition]$PSBoundParameters)
    }
}
function New-AzureNativeKubernetesconfigurationFluxConfiguration
{
    [Alias('azure_native_kubernetesconfiguration_fluxconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of the Flux Configuration.)')]
        [string]
        $fluxConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).)')]
        [string]
        $clusterResourceName,
        [parameter(mandatory=$False,HelpMessage='Parameters to reconcile to the GitRepository source kind type.)')]
        [GitRepositoryDefinition]
        $gitRepository,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).)')]
        [string]
        $clusterRp,
        [parameter(mandatory=$False,HelpMessage='The name of the kubernetes cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='Key-value pairs of protected configuration settings for the configuration)')]
        [hashtable]
        $configurationProtectedSettings,
        [parameter(mandatory=$False,HelpMessage='Scope at which the operator will be installed.)')]
        [string]
        [ValidateSet('cluster', 'namespace')]
        $scope,
        [parameter(mandatory=$False,HelpMessage='The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.)')]
        [string]
        $namespace,
        [parameter(mandatory=$False,HelpMessage='Source Kind to pull the configuration data from.)')]
        [string]
        [ValidateSet('GitRepository')]
        $sourceKind,
        [parameter(mandatory=$False,HelpMessage='Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.)')]
        [KustomizationDefinition]
        $kustomizations,
        [parameter(mandatory=$False,HelpMessage='Whether this configuration should suspend its reconciliation of its kustomizations and sources.)')]
        [bool]
        $suspend,
        [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:kubernetesconfiguration:FluxConfiguration")

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["clusterResourceName"] = $clusterResourceName
        $resource.properties["clusterRp"] = $clusterRp
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class HelmOperatorProperties
{
    [string] $chartVersion
    [string] $chartValues
}
function New-AzureNativeTypeKubernetesconfigurationHelmOperatorProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Version of the operator Helm chart.)')]
        [string]
        $chartVersion,
        [parameter(mandatory=$False,HelpMessage='Values override for the operator Helm chart.)')]
        [string]
        $chartValues
    )

    process
    {
        return $([HelmOperatorProperties]$PSBoundParameters)
    }
}
function New-AzureNativeKubernetesconfigurationSourceControlConfiguration
{
    [Alias('azure_native_kubernetesconfiguration_sourcecontrolconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='Url of the SourceControl Repository.)')]
        [string]
        $repositoryUrl,
        [parameter(mandatory=$False,HelpMessage='Name-value pairs of protected configuration settings for the configuration)')]
        [hashtable]
        $configurationProtectedSettings,
        [parameter(mandatory=$False,HelpMessage='Name of the Source Control Configuration.)')]
        [string]
        $sourceControlConfigurationName,
        [parameter(mandatory=$False,HelpMessage='Scope at which the operator will be installed.)')]
        [string]
        [ValidateSet('cluster', 'namespace')]
        $operatorScope,
        [parameter(mandatory=$False,HelpMessage='The name of the kubernetes cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='Option to enable Helm Operator for this git configuration.)')]
        [bool]
        $enableHelmOperator,
        [parameter(mandatory=$False,HelpMessage='Any Parameters for the Operator instance in string format.)')]
        [string]
        $operatorParams,
        [parameter(mandatory=$False,HelpMessage='The namespace to which this operator is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.)')]
        [string]
        $operatorNamespace,
        [parameter(mandatory=$False,HelpMessage='Instance name of the operator - identifying the specific configuration.)')]
        [string]
        $operatorInstanceName,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).)')]
        [string]
        $clusterRp,
        [parameter(mandatory=$False,HelpMessage='Base64-encoded known_hosts contents containing public SSH keys required to access private Git instances)')]
        [string]
        $sshKnownHostsContents,
        [parameter(mandatory=$False,HelpMessage='Properties for Helm operator.)')]
        [HelmOperatorProperties]
        $helmOperatorProperties,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).)')]
        [string]
        $clusterResourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Type of the operator)')]
        [string]
        [ValidateSet('Flux')]
        $operatorType,
        [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:kubernetesconfiguration:SourceControlConfiguration")

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["clusterResourceName"] = $clusterResourceName
        $resource.properties["clusterRp"] = $clusterRp
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ConfigurationIdentity
{
    [ValidateSet('SystemAssigned', 'None')]
    [object] $type
}
function New-AzureNativeTypeKubernetesconfigurationConfigurationIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of identity used for the configuration. Type ''SystemAssigned'' will use an implicitly created identity. Type ''None'' will not use Managed Identity for the configuration.)')]
        $type
    )

    process
    {
        return $([ConfigurationIdentity]$PSBoundParameters)
    }
}
class ScopeNamespace
{
    [string] $targetNamespace
}
function New-AzureNativeTypeKubernetesconfigurationScopeNamespace
{
    param (
        [parameter(mandatory=$False,HelpMessage='Namespace where the extensionInstance will be created for an Namespace scoped extensionInstance. If this namespace does not exist, it will be created)')]
        [string]
        $targetNamespace
    )

    process
    {
        return $([ScopeNamespace]$PSBoundParameters)
    }
}
class ScopeCluster
{
    [string] $releaseNamespace
}
function New-AzureNativeTypeKubernetesconfigurationScopeCluster
{
    param (
        [parameter(mandatory=$False,HelpMessage='Namespace where the extension Release must be placed, for a Cluster scoped extensionInstance. If this namespace does not exist, it will be created)')]
        [string]
        $releaseNamespace
    )

    process
    {
        return $([ScopeCluster]$PSBoundParameters)
    }
}
class Scope
{
    [ScopeNamespace] $namespace
    [ScopeCluster] $cluster
}
function New-AzureNativeTypeKubernetesconfigurationScope
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies that the scope of the extensionInstance is Namespace)')]
        [ScopeNamespace]
        $namespace,
        [parameter(mandatory=$False,HelpMessage='Specifies that the scope of the extensionInstance is Cluster)')]
        [ScopeCluster]
        $cluster
    )

    process
    {
        return $([Scope]$PSBoundParameters)
    }
}
function New-AzureNativeKubernetesconfigurationExtension
{
    [Alias('azure_native_kubernetesconfiguration_extension')]
    param (
        [parameter(mandatory=$False,HelpMessage='Configuration settings that are sensitive, as name-value pairs for configuring this instance of the extension.)')]
        [hashtable]
        $configurationProtectedSettings,
        [parameter(mandatory=$False,HelpMessage='The name of the kubernetes cluster.)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The identity of the configuration.)')]
        [ConfigurationIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Version of the extension for this extension instance, if it is ''pinned'' to a specific version. autoUpgradeMinorVersion must be ''false''.)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster RP - either Microsoft.ContainerService (for AKS clusters) or Microsoft.Kubernetes (for OnPrem K8S clusters).)')]
        [string]
        $clusterRp,
        [parameter(mandatory=$False,HelpMessage='Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types registered with Microsoft.KubernetesConfiguration by the Extension publisher.)')]
        [string]
        $extensionType,
        [parameter(mandatory=$False,HelpMessage='Configuration settings, as name-value pairs for configuring this instance of the extension.)')]
        [hashtable]
        $configurationSettings,
        [parameter(mandatory=$False,HelpMessage='Flag to note if this instance participates in auto upgrade of minor version, or not.)')]
        [bool]
        $autoUpgradeMinorVersion,
        [parameter(mandatory=$False,HelpMessage='The Kubernetes cluster resource name - either managedClusters (for AKS clusters) or connectedClusters (for OnPrem K8S clusters).)')]
        [string]
        $clusterResourceName,
        [parameter(mandatory=$False,HelpMessage='Name of an instance of the Extension.)')]
        [string]
        $extensionInstanceName,
        [parameter(mandatory=$False,HelpMessage='Scope at which the extension instance is installed.)')]
        [Scope]
        $scope,
        [parameter(mandatory=$False,HelpMessage='ReleaseTrain this extension instance participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is ''true''.)')]
        [string]
        $releaseTrain,
        [parameter(mandatory=$False,HelpMessage='Status from this instance of the extension.)')]
        $statuses,
        [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:kubernetesconfiguration:Extension")

        $resource.properties["clusterName"] = $clusterName
        $resource.properties["clusterResourceName"] = $clusterResourceName
        $resource.properties["clusterRp"] = $clusterRp
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class KubernetesConfigurationPrivateLinkScopeProperties
{
    [string] $clusterResourceId
    [ValidateSet('Enabled', 'Disabled')]
    [string] $publicNetworkAccess
}
function New-AzureNativeTypeKubernetesconfigurationKubernetesConfigurationPrivateLinkScopeProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Managed Cluster ARM ID for the private link scope (Required))')]
        [string]
        $clusterResourceId,
        [parameter(mandatory=$False,HelpMessage='Indicates whether machines associated with the private link scope can also use public Azure Arc service endpoints.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $publicNetworkAccess
    )

    process
    {
        return $([KubernetesConfigurationPrivateLinkScopeProperties]$PSBoundParameters)
    }
}
function New-AzureNativeKubernetesconfigurationPrivateLinkScope
{
    [Alias('azure_native_kubernetesconfiguration_privatelinkscope')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure Arc PrivateLinkScope resource.)')]
        [string]
        $scopeName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Properties that define a Azure Arc PrivateLinkScope resource.)')]
        [KubernetesConfigurationPrivateLinkScopeProperties]
        $properties,
        [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:kubernetesconfiguration:PrivateLinkScope")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $description
    [string] $actionsRequired
    [ValidateSet('Pending', 'Approved', 'Rejected')]
    [string] $status
}
function New-AzureNativeTypeKubernetesconfigurationPrivateLinkServiceConnectionState
{
    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-AzureNativeKubernetesconfigurationPrivateEndpointConnection
{
    [Alias('azure_native_kubernetesconfiguration_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure Arc PrivateLinkScope resource.)')]
        [string]
        $scopeName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [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,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:kubernetesconfiguration:PrivateEndpointConnection")

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

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

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