pspulumiyaml.azurenative.azurearcdata.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionAzurearcdataGetActiveDirectoryConnector
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Active Directory connector instance)')]
        [string]
        $activeDirectoryConnectorName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the data controller)')]
        [string]
        $dataControllerName
    )

    process
    {
        $arguments = @{}
        $arguments["activeDirectoryConnectorName"] = $activeDirectoryConnectorName
        $arguments["dataControllerName"] = $dataControllerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:azurearcdata:getActiveDirectoryConnector -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAzurearcdataGetSqlServerInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of SQL Server Instance)')]
        [string]
        $sqlServerInstanceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:azurearcdata:getSqlServerInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAzurearcdataGetDataController
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $dataControllerName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:azurearcdata:getDataController -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAzurearcdataGetSqlManagedInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of SQL Managed Instance)')]
        [string]
        $sqlManagedInstanceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:azurearcdata:getSqlManagedInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionAzurearcdataGetPostgresInstance
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Postgres Instance)')]
        [string]
        $postgresInstanceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:azurearcdata:getPostgresInstance -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class SqlServerInstanceProperties
{
    [string] $patchLevel
    [string] $version
    [string] $currentVersion
    [string] $licenseType
    [string] $status
    [string] $tcpStaticPorts
    [string] $productId
    [string] $instanceName
    [string] $containerResourceId
    [string] $vCore
    [string] $edition
    [string] $tcpDynamicPorts
    [string] $collation
}
function New-AzureNativeTypeAzurearcdataSqlServerInstanceProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='SQL Server update level.)')]
        [string]
        $patchLevel,
        [parameter(mandatory=$False,HelpMessage='SQL Server version.)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='SQL Server current version.)')]
        [string]
        $currentVersion,
        [parameter(mandatory=$False,HelpMessage='SQL Server license type.)')]
        [string]
        $licenseType,
        [parameter(mandatory=$False,HelpMessage='The cloud connectivity status.)')]
        [string]
        $status,
        [parameter(mandatory=$False,HelpMessage='Static TCP ports used by SQL Server.)')]
        [string]
        $tcpStaticPorts,
        [parameter(mandatory=$False,HelpMessage='SQL Server product ID.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='SQL Server instance name.)')]
        [string]
        $instanceName,
        [parameter(mandatory=$False,HelpMessage='ARM Resource id of the container resource (Azure Arc for Servers).)')]
        [string]
        $containerResourceId,
        [parameter(mandatory=$False,HelpMessage='The number of logical processors used by the SQL Server instance.)')]
        [string]
        $vCore,
        [parameter(mandatory=$False,HelpMessage='SQL Server edition.)')]
        [string]
        $edition,
        [parameter(mandatory=$False,HelpMessage='Dynamic TCP ports used by SQL Server.)')]
        [string]
        $tcpDynamicPorts,
        [parameter(mandatory=$False,HelpMessage='SQL Server collation.)')]
        [string]
        $collation
    )

    process
    {
        return $([SqlServerInstanceProperties]$PSBoundParameters)
    }
}
function New-AzureNativeAzurearcdataSqlServerInstance
{
    [Alias('azure_native_azurearcdata_sqlserverinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [SqlServerInstanceProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of SQL Server Instance)')]
        [string]
        $sqlServerInstanceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [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:azurearcdata:SqlServerInstance")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ActiveDirectoryConnectorStatus
{
    [string] $state
    [string] $lastUpdateTime
    [int] $observedGeneration
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryConnectorStatus
{
    param (
        [parameter(mandatory=$False,HelpMessage='The state of the AD connector custom resource.)')]
        [string]
        $state,
        [parameter(mandatory=$False,HelpMessage='The time that the custom resource was last updated.)')]
        [string]
        $lastUpdateTime,
        [parameter(mandatory=$False,HelpMessage='The version of the replicaSet associated with the AD connector custom resource.)')]
        [int]
        $observedGeneration
    )

    process
    {
        return $([ActiveDirectoryConnectorStatus]$PSBoundParameters)
    }
}
class ActiveDirectoryDomainController
{
    [string] $hostname
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryDomainController
{
    param (
        [parameter(mandatory=$False,HelpMessage='Fully-qualified domain name of a domain controller in the AD domain.)')]
        [string]
        $hostname
    )

    process
    {
        return $([ActiveDirectoryDomainController]$PSBoundParameters)
    }
}
class ActiveDirectoryDomainControllers
{
    [ActiveDirectoryDomainController[]] $secondaryDomainControllers
    [ActiveDirectoryDomainController] $primaryDomainController
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryDomainControllers
{
    param (
        [parameter(mandatory=$False,HelpMessage='null)')]
        $secondaryDomainControllers,
        [parameter(mandatory=$False,HelpMessage='Information about the Primary Domain Controller (PDC) in the AD domain.)')]
        [ActiveDirectoryDomainController]
        $primaryDomainController
    )

    process
    {
        return $([ActiveDirectoryDomainControllers]$PSBoundParameters)
    }
}
class ActiveDirectoryConnectorDomainDetails
{
    [string] $ouDistinguishedName
    [string] $realm
    [ArgumentCompletions('automatic', 'manual')]
    [string] $serviceAccountProvisioning
    [string] $netbiosDomainName
    [ActiveDirectoryDomainControllers] $domainControllers
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryConnectorDomainDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='The distinguished name of the Active Directory Organizational Unit.)')]
        [string]
        $ouDistinguishedName,
        [parameter(mandatory=$False,HelpMessage='Name (uppercase) of the Active Directory domain that this AD connector will be associated with.)')]
        [string]
        $realm,
        [parameter(mandatory=$False,HelpMessage='The service account provisioning mode for this Active Directory connector.)')]
        [string]
        [ValidateSet('automatic', 'manual')]
        $serviceAccountProvisioning,
        [parameter(mandatory=$False,HelpMessage='NETBIOS name of the Active Directory domain.)')]
        [string]
        $netbiosDomainName,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [ActiveDirectoryDomainControllers]
        $domainControllers
    )

    process
    {
        return $([ActiveDirectoryConnectorDomainDetails]$PSBoundParameters)
    }
}
class ActiveDirectoryConnectorDNSDetails
{
    [string] $domainName
    [bool] $preferK8sDnsForPtrLookups
    [int] $replicas
    [string[]] $nameserverIPAddresses
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryConnectorDNSDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='DNS domain name for which DNS lookups should be forwarded to the Active Directory DNS servers.)')]
        [string]
        $domainName,
        [parameter(mandatory=$False,HelpMessage='Flag indicating whether to prefer Kubernetes DNS server response over AD DNS server response for IP address lookups.)')]
        [bool]
        $preferK8sDnsForPtrLookups,
        [parameter(mandatory=$False,HelpMessage='Replica count for DNS proxy service. Default value is 1.)')]
        [int]
        $replicas,
        [parameter(mandatory=$False,HelpMessage='List of Active Directory DNS server IP addresses.)')]
        [string[]]
        $nameserverIPAddresses
    )

    process
    {
        return $([ActiveDirectoryConnectorDNSDetails]$PSBoundParameters)
    }
}
class ActiveDirectoryConnectorSpec
{
    [ActiveDirectoryConnectorDomainDetails] $activeDirectory
    [ActiveDirectoryConnectorDNSDetails] $dns
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryConnectorSpec
{
    param (
        [parameter(mandatory=$False,HelpMessage='null)')]
        [ActiveDirectoryConnectorDomainDetails]
        $activeDirectory,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [ActiveDirectoryConnectorDNSDetails]
        $dns
    )

    process
    {
        return $([ActiveDirectoryConnectorSpec]$PSBoundParameters)
    }
}
class BasicLoginInformation
{
    [string] $username
    [string] $password
}
function New-AzureNativeTypeAzurearcdataBasicLoginInformation
{
    param (
        [parameter(mandatory=$False,HelpMessage='Login username.)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='Login password.)')]
        [string]
        $password
    )

    process
    {
        return $([BasicLoginInformation]$PSBoundParameters)
    }
}
class ActiveDirectoryConnectorProperties
{
    [ActiveDirectoryConnectorStatus] $status
    [ActiveDirectoryConnectorSpec] $spec
    [BasicLoginInformation] $domainServiceAccountLoginInformation
}
function New-AzureNativeTypeAzurearcdataActiveDirectoryConnectorProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='null)')]
        [ActiveDirectoryConnectorStatus]
        $status,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [ActiveDirectoryConnectorSpec]
        $spec,
        [parameter(mandatory=$False,HelpMessage='Username and password for domain service account authentication.)')]
        [BasicLoginInformation]
        $domainServiceAccountLoginInformation
    )

    process
    {
        return $([ActiveDirectoryConnectorProperties]$PSBoundParameters)
    }
}
function New-AzureNativeAzurearcdataActiveDirectoryConnector
{
    [Alias('azure_native_azurearcdata_activedirectoryconnector')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Active Directory connector instance)')]
        [string]
        $activeDirectoryConnectorName,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [ActiveDirectoryConnectorProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the data controller)')]
        [string]
        $dataControllerName,
        [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:azurearcdata:ActiveDirectoryConnector")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ExtendedLocation
{
    [string] $name
    [ArgumentCompletions('CustomLocation')]
    [string] $type
}
function New-AzureNativeTypeAzurearcdataExtendedLocation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the extended location.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The type of the extended location.)')]
        [string]
        [ValidateSet('CustomLocation')]
        $type
    )

    process
    {
        return $([ExtendedLocation]$PSBoundParameters)
    }
}
class LogAnalyticsWorkspaceConfig
{
    [string] $primaryKey
    [string] $workspaceId
}
function New-AzureNativeTypeAzurearcdataLogAnalyticsWorkspaceConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='Primary key of the workspace)')]
        [string]
        $primaryKey,
        [parameter(mandatory=$False,HelpMessage='Azure Log Analytics workspace ID)')]
        [string]
        $workspaceId
    )

    process
    {
        return $([LogAnalyticsWorkspaceConfig]$PSBoundParameters)
    }
}
class UploadWatermark
{
    [string] $logs
    [string] $metrics
    [string] $usages
}
function New-AzureNativeTypeAzurearcdataUploadWatermark
{
    param (
        [parameter(mandatory=$False,HelpMessage='Last uploaded date for logs from kubernetes cluster. Defaults to current date time)')]
        [string]
        $logs,
        [parameter(mandatory=$False,HelpMessage='Last uploaded date for metrics from kubernetes cluster. Defaults to current date time)')]
        [string]
        $metrics,
        [parameter(mandatory=$False,HelpMessage='Last uploaded date for usages from kubernetes cluster. Defaults to current date time)')]
        [string]
        $usages
    )

    process
    {
        return $([UploadWatermark]$PSBoundParameters)
    }
}
class OnPremiseProperty
{
    [string] $signingCertificateThumbprint
    [string] $publicSigningKey
    [string] $id
}
function New-AzureNativeTypeAzurearcdataOnPremiseProperty
{
    param (
        [parameter(mandatory=$False,HelpMessage='Unique thumbprint returned to customer to verify the certificate being uploaded)')]
        [string]
        $signingCertificateThumbprint,
        [parameter(mandatory=$False,HelpMessage='Certificate that contains the Kubernetes cluster public key used to verify signing)')]
        [string]
        $publicSigningKey,
        [parameter(mandatory=$False,HelpMessage='A globally unique ID identifying the associated Kubernetes cluster)')]
        [string]
        $id
    )

    process
    {
        return $([OnPremiseProperty]$PSBoundParameters)
    }
}
class UploadServicePrincipal
{
    [string] $clientSecret
    [string] $clientId
    [string] $authority
    [string] $tenantId
}
function New-AzureNativeTypeAzurearcdataUploadServicePrincipal
{
    param (
        [parameter(mandatory=$False,HelpMessage='Secret of the service principal)')]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='Client ID of the service principal for uploading data.)')]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='Authority for the service principal. Example: https://login.microsoftonline.com/)')]
        [string]
        $authority,
        [parameter(mandatory=$False,HelpMessage='Tenant ID of the service principal.)')]
        [string]
        $tenantId
    )

    process
    {
        return $([UploadServicePrincipal]$PSBoundParameters)
    }
}
class DataControllerProperties
{
    [string] $lastUploadedDate
    [LogAnalyticsWorkspaceConfig] $logAnalyticsWorkspaceConfig
    [UploadWatermark] $uploadWatermark
    [OnPremiseProperty] $onPremiseProperty
    [BasicLoginInformation] $basicLoginInformation
    [UploadServicePrincipal] $uploadServicePrincipal
    [object] $k8sRaw
}
function New-AzureNativeTypeAzurearcdataDataControllerProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Last uploaded date from Kubernetes cluster. Defaults to current date time)')]
        [string]
        $lastUploadedDate,
        [parameter(mandatory=$False,HelpMessage='Log analytics workspace id and primary key)')]
        [LogAnalyticsWorkspaceConfig]
        $logAnalyticsWorkspaceConfig,
        [parameter(mandatory=$False,HelpMessage='Properties on upload watermark. Mostly timestamp for each upload data type)')]
        [UploadWatermark]
        $uploadWatermark,
        [parameter(mandatory=$False,HelpMessage='Properties from the Kubernetes data controller)')]
        [OnPremiseProperty]
        $onPremiseProperty,
        [parameter(mandatory=$False,HelpMessage='Username and password for basic login authentication.)')]
        [BasicLoginInformation]
        $basicLoginInformation,
        [parameter(mandatory=$False,HelpMessage='Service principal for uploading billing, metrics and logs.)')]
        [UploadServicePrincipal]
        $uploadServicePrincipal,
        [parameter(mandatory=$False,HelpMessage='The raw kubernetes information)')]
        $k8sRaw
    )

    process
    {
        return $([DataControllerProperties]$PSBoundParameters)
    }
}
function New-AzureNativeAzurearcdataDataController
{
    [Alias('azure_native_azurearcdata_datacontroller')]
    param (
        [parameter(mandatory=$False,HelpMessage='The extendedLocation of the resource.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='The data controller''s properties)')]
        [DataControllerProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $dataControllerName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PostgresInstanceProperties
{
    [string] $lastUploadedDate
    [string] $dataControllerId
    [string] $admin
    [BasicLoginInformation] $basicLoginInformation
    [object] $k8sRaw
}
function New-AzureNativeTypeAzurearcdataPostgresInstanceProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Last uploaded date from Kubernetes cluster. Defaults to current date time)')]
        [string]
        $lastUploadedDate,
        [parameter(mandatory=$False,HelpMessage='The data controller id)')]
        [string]
        $dataControllerId,
        [parameter(mandatory=$False,HelpMessage='The instance admin)')]
        [string]
        $admin,
        [parameter(mandatory=$False,HelpMessage='Username and password for basic authentication.)')]
        [BasicLoginInformation]
        $basicLoginInformation,
        [parameter(mandatory=$False,HelpMessage='The raw kubernetes information)')]
        $k8sRaw
    )

    process
    {
        return $([PostgresInstanceProperties]$PSBoundParameters)
    }
}
class PostgresInstanceSku
{
    [string] $size
    [string] $family
    [bool] $dev
    [ArgumentCompletions('Hyperscale')]
    [object] $tier
    [string] $name
    [int] $capacity
}
function New-AzureNativeTypeAzurearcdataPostgresInstanceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. )')]
        [string]
        $size,
        [parameter(mandatory=$False,HelpMessage='If the service has different generations of hardware, for the same SKU, then that can be captured here.)')]
        [string]
        $family,
        [parameter(mandatory=$False,HelpMessage='Whether dev/test is enabled. When the dev field is set to true, the resource is used for dev/test purpose. )')]
        [bool]
        $dev,
        [parameter(mandatory=$False,HelpMessage='This field is required to be implemented by the Resource Provider if the service has more than one tier.)')]
        $tier,
        [parameter(mandatory=$False,HelpMessage='The name of the SKU. It is typically a letter+number code)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.)')]
        [int]
        $capacity
    )

    process
    {
        return $([PostgresInstanceSku]$PSBoundParameters)
    }
}
function New-AzureNativeAzurearcdataPostgresInstance
{
    [Alias('azure_native_azurearcdata_postgresinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='The extendedLocation of the resource.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [PostgresInstanceProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Resource sku.)')]
        [PostgresInstanceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of PostgresInstance)')]
        [string]
        $postgresInstanceName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class SqlManagedInstanceProperties
{
    [string] $lastUploadedDate
    [string] $startTime
    [BasicLoginInformation] $basicLoginInformation
    [string] $endTime
    [string] $admin
    [object] $k8sRaw
    [string] $dataControllerId
}
function New-AzureNativeTypeAzurearcdataSqlManagedInstanceProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Last uploaded date from Kubernetes cluster. Defaults to current date time)')]
        [string]
        $lastUploadedDate,
        [parameter(mandatory=$False,HelpMessage='The instance start time)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='Username and password for basic authentication.)')]
        [BasicLoginInformation]
        $basicLoginInformation,
        [parameter(mandatory=$False,HelpMessage='The instance end time)')]
        [string]
        $endTime,
        [parameter(mandatory=$False,HelpMessage='The instance admin user)')]
        [string]
        $admin,
        [parameter(mandatory=$False,HelpMessage='The raw kubernetes information)')]
        $k8sRaw,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [string]
        $dataControllerId
    )

    process
    {
        return $([SqlManagedInstanceProperties]$PSBoundParameters)
    }
}
class SqlManagedInstanceSku
{
    [string] $size
    [string] $family
    [bool] $dev
    [ArgumentCompletions('GeneralPurpose', 'BusinessCritical')]
    [object] $tier
    [string] $name
    [int] $capacity
}
function New-AzureNativeTypeAzurearcdataSqlManagedInstanceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. )')]
        [string]
        $size,
        [parameter(mandatory=$False,HelpMessage='If the service has different generations of hardware, for the same SKU, then that can be captured here.)')]
        [string]
        $family,
        [parameter(mandatory=$False,HelpMessage='Whether dev/test is enabled. When the dev field is set to true, the resource is used for dev/test purpose. )')]
        [bool]
        $dev,
        [parameter(mandatory=$False,HelpMessage='This field is required to be implemented by the Resource Provider if the service has more than one tier.)')]
        $tier,
        [parameter(mandatory=$False,HelpMessage='The name of the SKU. It is typically a letter+number code)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.)')]
        [int]
        $capacity
    )

    process
    {
        return $([SqlManagedInstanceSku]$PSBoundParameters)
    }
}
function New-AzureNativeAzurearcdataSqlManagedInstance
{
    [Alias('azure_native_azurearcdata_sqlmanagedinstance')]
    param (
        [parameter(mandatory=$False,HelpMessage='The extendedLocation of the resource.)')]
        [ExtendedLocation]
        $extendedLocation,
        [parameter(mandatory=$False,HelpMessage='null)')]
        [SqlManagedInstanceProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Azure resource group)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource sku.)')]
        [SqlManagedInstanceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The name of SQL Managed Instances)')]
        [string]
        $sqlManagedInstanceName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

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