pspulumiyaml.azurenative.elastic.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionElasticListDeploymentInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:elastic:listDeploymentInfo -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticListVMHost
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:elastic:listVMHost -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticGetTagRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Tag Rule Set resource name)')]
        [string]
        $ruleSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["monitorName"] = $monitorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["ruleSetName"] = $ruleSetName

        $functionObject = Invoke-PulumiFunction -Name azure-native:elastic:getTagRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticGetMonitor
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:elastic:getMonitor -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticListMonitoredResource
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:elastic:listMonitoredResource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionElasticListUpgradableVersionDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:elastic:listUpgradableVersionDetails -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class IdentityProperties
{
    [ArgumentCompletions('SystemAssigned')]
    [string] $type
}
function New-AzureNativeTypeElasticIdentityProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Managed identity type.)')]
        [string]
        [ValidateSet('SystemAssigned')]
        $type
    )

    process
    {
        return $([IdentityProperties]$PSBoundParameters)
    }
}
class CompanyInfo
{
    [string] $state
    [string] $employeesNumber
    [string] $domain
    [string] $business
    [string] $country
}
function New-AzureNativeTypeElasticCompanyInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='State of the company location.)')]
        [string]
        $state,
        [parameter(mandatory=$False,HelpMessage='Number of employees in the company)')]
        [string]
        $employeesNumber,
        [parameter(mandatory=$False,HelpMessage='Domain of the company)')]
        [string]
        $domain,
        [parameter(mandatory=$False,HelpMessage='Business of the company)')]
        [string]
        $business,
        [parameter(mandatory=$False,HelpMessage='Country of the company location.)')]
        [string]
        $country
    )

    process
    {
        return $([CompanyInfo]$PSBoundParameters)
    }
}
class UserInfo
{
    [string] $lastName
    [CompanyInfo] $companyInfo
    [string] $firstName
    [string] $companyName
    [string] $emailAddress
}
function New-AzureNativeTypeElasticUserInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='Last name of the user)')]
        [string]
        $lastName,
        [parameter(mandatory=$False,HelpMessage='Company information of the user to be passed to partners.)')]
        [CompanyInfo]
        $companyInfo,
        [parameter(mandatory=$False,HelpMessage='First name of the user)')]
        [string]
        $firstName,
        [parameter(mandatory=$False,HelpMessage='Company name of the user)')]
        [string]
        $companyName,
        [parameter(mandatory=$False,HelpMessage='Email of the user used by Elastic for contacting them if needed)')]
        [string]
        $emailAddress
    )

    process
    {
        return $([UserInfo]$PSBoundParameters)
    }
}
class MonitorProperties
{
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $monitoringStatus
    [UserInfo] $userInfo
    [ArgumentCompletions('Accepted', 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Failed', 'Canceled', 'Deleted', 'NotSpecified')]
    [string] $provisioningState
}
function New-AzureNativeTypeElasticMonitorProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag specifying if the resource monitoring is enabled or disabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $monitoringStatus,
        [parameter(mandatory=$False,HelpMessage='User information.)')]
        [UserInfo]
        $userInfo,
        [parameter(mandatory=$False,HelpMessage='Provisioning state of the monitor resource.)')]
        [string]
        [ValidateSet('Accepted', 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Failed', 'Canceled', 'Deleted', 'NotSpecified')]
        $provisioningState
    )

    process
    {
        return $([MonitorProperties]$PSBoundParameters)
    }
}
class ResourceSku
{
    [string] $name
}
function New-AzureNativeTypeElasticResourceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the SKU.)')]
        [string]
        $name
    )

    process
    {
        return $([ResourceSku]$PSBoundParameters)
    }
}
function New-AzureNativeElasticMonitor
{
    [Alias('azure_native_elastic_monitor')]
    param (
        [parameter(mandatory=$False,HelpMessage='The tags of the monitor resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Identity properties of the monitor resource.)')]
        [IdentityProperties]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Properties of the monitor resource.)')]
        [MonitorProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='SKU of the monitor resource.)')]
        [ResourceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The location of the monitor resource)')]
        [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:elastic:Monitor")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class FilteringTag
{
    [string] $value
    [ArgumentCompletions('Include', 'Exclude')]
    [string] $action
    [string] $name
}
function New-AzureNativeTypeElasticFilteringTag
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value of the tag.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Valid actions for a filtering tag.)')]
        [string]
        [ValidateSet('Include', 'Exclude')]
        $action,
        [parameter(mandatory=$False,HelpMessage='The name (also known as the key) of the tag.)')]
        [string]
        $name
    )

    process
    {
        return $([FilteringTag]$PSBoundParameters)
    }
}
class LogRules
{
    [bool] $sendAadLogs
    [bool] $sendSubscriptionLogs
    [bool] $sendActivityLogs
    [FilteringTag[]] $filteringTags
}
function New-AzureNativeTypeElasticLogRules
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag specifying if AAD logs should be sent for the Monitor resource.)')]
        [bool]
        $sendAadLogs,
        [parameter(mandatory=$False,HelpMessage='Flag specifying if subscription logs should be sent for the Monitor resource.)')]
        [bool]
        $sendSubscriptionLogs,
        [parameter(mandatory=$False,HelpMessage='Flag specifying if activity logs from Azure resources should be sent for the Monitor resource.)')]
        [bool]
        $sendActivityLogs,
        [parameter(mandatory=$False,HelpMessage='List of filtering tags to be used for capturing logs. This only takes effect if SendActivityLogs flag is enabled. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.)')]
        $filteringTags
    )

    process
    {
        return $([LogRules]$PSBoundParameters)
    }
}
class MonitoringTagRulesProperties
{
    [LogRules] $logRules
    [ArgumentCompletions('Accepted', 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Failed', 'Canceled', 'Deleted', 'NotSpecified')]
    [string] $provisioningState
}
function New-AzureNativeTypeElasticMonitoringTagRulesProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Rules for sending logs.)')]
        [LogRules]
        $logRules,
        [parameter(mandatory=$False,HelpMessage='Provisioning state of the monitoring tag rules.)')]
        [string]
        [ValidateSet('Accepted', 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Failed', 'Canceled', 'Deleted', 'NotSpecified')]
        $provisioningState
    )

    process
    {
        return $([MonitoringTagRulesProperties]$PSBoundParameters)
    }
}
function New-AzureNativeElasticTagRule
{
    [Alias('azure_native_elastic_tagrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='Monitor resource name)')]
        [string]
        $monitorName,
        [parameter(mandatory=$False,HelpMessage='Properties of the monitoring tag rules.)')]
        [MonitoringTagRulesProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Tag Rule Set resource name)')]
        [string]
        $ruleSetName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the Elastic resource belongs.)')]
        [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:elastic:TagRule")

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

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

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

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