pspulumiyaml.azurenative.servicebus.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionServicebusGetTopicAuthorizationRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["topicName"] = $topicName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getTopicAuthorizationRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetNamespaceAuthorizationRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getNamespaceAuthorizationRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetNamespace
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getNamespace -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetNamespaceNetworkRuleSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getNamespaceNetworkRuleSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetTopic
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName
    )

    process
    {
        $arguments = @{}
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["topicName"] = $topicName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getTopic -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetDisasterRecoveryConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Disaster Recovery configuration name)')]
        [string]
        $alias
    )

    process
    {
        $arguments = @{}
        $arguments["alias"] = $alias
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getDisasterRecoveryConfig -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusListDisasterRecoveryConfigKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Disaster Recovery configuration name)')]
        [string]
        $alias
    )

    process
    {
        $arguments = @{}
        $arguments["alias"] = $alias
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:listDisasterRecoveryConfigKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusListNamespaceKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:listNamespaceKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetSubscription
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The subscription name.)')]
        [string]
        $subscriptionName,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName
    )

    process
    {
        $arguments = @{}
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["subscriptionName"] = $subscriptionName
        $arguments["topicName"] = $topicName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getSubscription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusListTopicKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["topicName"] = $topicName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:listTopicKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetNamespaceIpFilterRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The IP Filter Rule name.)')]
        [string]
        $ipFilterRuleName
    )

    process
    {
        $arguments = @{}
        $arguments["ipFilterRuleName"] = $ipFilterRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getNamespaceIpFilterRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The PrivateEndpointConnection name)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusListQueueKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The queue name.)')]
        [string]
        $queueName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["queueName"] = $queueName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:listQueueKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetQueue
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The queue name.)')]
        [string]
        $queueName
    )

    process
    {
        $arguments = @{}
        $arguments["namespaceName"] = $namespaceName
        $arguments["queueName"] = $queueName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getQueue -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetNamespaceVirtualNetworkRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Virtual Network Rule name.)')]
        [string]
        $virtualNetworkRuleName
    )

    process
    {
        $arguments = @{}
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["virtualNetworkRuleName"] = $virtualNetworkRuleName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getNamespaceVirtualNetworkRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetMigrationConfig
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The configuration name. Should always be "$default".)')]
        [string]
        $configName
    )

    process
    {
        $arguments = @{}
        $arguments["configName"] = $configName
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getMigrationConfig -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetQueueAuthorizationRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The queue name.)')]
        [string]
        $queueName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName
    )

    process
    {
        $arguments = @{}
        $arguments["authorizationRuleName"] = $authorizationRuleName
        $arguments["namespaceName"] = $namespaceName
        $arguments["queueName"] = $queueName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getQueueAuthorizationRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionServicebusGetRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='The subscription name.)')]
        [string]
        $subscriptionName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The rule name.)')]
        [string]
        $ruleName,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName
    )

    process
    {
        $arguments = @{}
        $arguments["namespaceName"] = $namespaceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["ruleName"] = $ruleName
        $arguments["subscriptionName"] = $subscriptionName
        $arguments["topicName"] = $topicName

        $functionObject = Invoke-PulumiFunction -Name azure-native:servicebus:getRule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class PrivateEndpoint
{
    [string] $id
}
function New-AzureNativeTypeServicebusPrivateEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='The ARM identifier for Private Endpoint.)')]
        [string]
        $id
    )

    process
    {
        return $([PrivateEndpoint]$PSBoundParameters)
    }
}
class ConnectionState
{
    [ValidateSet('Pending', 'Approved', 'Rejected', 'Disconnected')]
    [string] $status
    [ValidateSet('Pending', 'Approved', 'Rejected', 'Disconnected')]
    [string] $description
}
function New-AzureNativeTypeServicebusConnectionState
{
    param (
        [parameter(mandatory=$False,HelpMessage='Status of the connection.)')]
        [string]
        [ValidateSet('Pending', 'Approved', 'Rejected', 'Disconnected')]
        $status,
        [parameter(mandatory=$False,HelpMessage='Description of the connection state.)')]
        [string]
        $description
    )

    process
    {
        return $([ConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativeServicebusPrivateEndpointConnection
{
    [Alias('azure_native_servicebus_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The PrivateEndpointConnection name)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Provisioning state of the Private Endpoint Connection.)')]
        [string]
        [ValidateSet('Creating', 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed')]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='The Private Endpoint resource for this Connection.)')]
        [PrivateEndpoint]
        $privateEndpoint,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Details about the state of the connection.)')]
        [ConnectionState]
        $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:servicebus:PrivateEndpointConnection")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class SBSku
{
    [int] $capacity
    [ValidateSet('Basic', 'Standard', 'Premium')]
    [object] $name
    [ValidateSet('Basic', 'Standard', 'Premium')]
    [object] $tier
}
function New-AzureNativeTypeServicebusSBSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The specified messaging units for the tier. For Premium tier, capacity are 1,2 and 4.)')]
        [int]
        $capacity,
        [parameter(mandatory=$False,HelpMessage='Name of this SKU.)')]
        $name,
        [parameter(mandatory=$False,HelpMessage='The billing tier of this particular SKU.)')]
        $tier
    )

    process
    {
        return $([SBSku]$PSBoundParameters)
    }
}
function New-AzureNativeServicebusNamespace
{
    [Alias('azure_native_servicebus_namespace')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name.)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Properties of Sku)')]
        [SBSku]
        $sku,
        [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:servicebus:Namespace")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusTopic
{
    [Alias('azure_native_servicebus_topic')]
    param (
        [parameter(mandatory=$False,HelpMessage='ISO8601 timespan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.)')]
        [string]
        $duplicateDetectionHistoryTimeWindow,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether Express Entities are enabled. An express topic holds a message in memory temporarily before writing it to persistent storage.)')]
        [bool]
        $enableExpress,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether server-side batched operations are enabled.)')]
        [bool]
        $enableBatchedOperations,
        [parameter(mandatory=$False,HelpMessage='Value indicating if this topic requires duplicate detection.)')]
        [bool]
        $requiresDuplicateDetection,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether the topic supports ordering.)')]
        [bool]
        $supportOrdering,
        [parameter(mandatory=$False,HelpMessage='ISO 8601 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.)')]
        [string]
        $defaultMessageTimeToLive,
        [parameter(mandatory=$False,HelpMessage='Maximum size of the topic in megabytes, which is the size of the memory allocated for the topic. Default is 1024.)')]
        [int]
        $maxSizeInMegabytes,
        [parameter(mandatory=$False,HelpMessage='ISO 8601 timespan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.)')]
        [string]
        $autoDeleteOnIdle,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether the topic to be partitioned across multiple message brokers is enabled.)')]
        [bool]
        $enablePartitioning,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName,
        [parameter(mandatory=$False,HelpMessage='Enumerates the possible values for the status of a messaging entity.)')]
        $status,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [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:servicebus:Topic")

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusTopicAuthorizationRule
{
    [Alias('azure_native_servicebus_topicauthorizationrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName,
        [parameter(mandatory=$False,HelpMessage='The rights associated with the rule.)')]
        $rights,
        [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:servicebus:TopicAuthorizationRule")

        $resource.properties["namespaceName"] = $namespaceName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["rights"] = $rights
        $resource.properties["topicName"] = $topicName

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusNamespaceAuthorizationRule
{
    [Alias('azure_native_servicebus_namespaceauthorizationrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName,
        [parameter(mandatory=$False,HelpMessage='The rights associated with the rule.)')]
        $rights,
        [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:servicebus:NamespaceAuthorizationRule")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusQueue
{
    [Alias('azure_native_servicebus_queue')]
    param (
        [parameter(mandatory=$False,HelpMessage='Queue/Topic name to forward the messages)')]
        [string]
        $forwardTo,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='A value that indicates whether this queue has dead letter support when a message expires.)')]
        [bool]
        $deadLetteringOnMessageExpiration,
        [parameter(mandatory=$False,HelpMessage='Queue/Topic name to forward the Dead Letter message)')]
        [string]
        $forwardDeadLetteredMessagesTo,
        [parameter(mandatory=$False,HelpMessage='The queue name.)')]
        [string]
        $queueName,
        [parameter(mandatory=$False,HelpMessage='ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute.)')]
        [string]
        $lockDuration,
        [parameter(mandatory=$False,HelpMessage='A value indicating if this queue requires duplicate detection.)')]
        [bool]
        $requiresDuplicateDetection,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether server-side batched operations are enabled.)')]
        [bool]
        $enableBatchedOperations,
        [parameter(mandatory=$False,HelpMessage='ISO 8601 timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.)')]
        [string]
        $duplicateDetectionHistoryTimeWindow,
        [parameter(mandatory=$False,HelpMessage='ISO 8061 timeSpan idle interval after which the queue is automatically deleted. The minimum duration is 5 minutes.)')]
        [string]
        $autoDeleteOnIdle,
        [parameter(mandatory=$False,HelpMessage='The maximum size of the queue in megabytes, which is the size of memory allocated for the queue. Default is 1024.)')]
        [int]
        $maxSizeInMegabytes,
        [parameter(mandatory=$False,HelpMessage='The maximum delivery count. A message is automatically deadlettered after this number of deliveries. default value is 10.)')]
        [int]
        $maxDeliveryCount,
        [parameter(mandatory=$False,HelpMessage='A value that indicates whether the queue supports the concept of sessions.)')]
        [bool]
        $requiresSession,
        [parameter(mandatory=$False,HelpMessage='ISO 8601 default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.)')]
        [string]
        $defaultMessageTimeToLive,
        [parameter(mandatory=$False,HelpMessage='A value that indicates whether the queue is to be partitioned across multiple message brokers.)')]
        [bool]
        $enablePartitioning,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Enumerates the possible values for the status of a messaging entity.)')]
        $status,
        [parameter(mandatory=$False,HelpMessage='A value that indicates whether Express Entities are enabled. An express queue holds a message in memory temporarily before writing it to persistent storage.)')]
        [bool]
        $enableExpress,
        [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:servicebus:Queue")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusMigrationConfig
{
    [Alias('azure_native_servicebus_migrationconfig')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name to access Standard Namespace after migration)')]
        [string]
        $postMigrationName,
        [parameter(mandatory=$False,HelpMessage='Existing premium Namespace ARM Id name which has no entities, will be used for migration)')]
        [string]
        $targetNamespace,
        [parameter(mandatory=$False,HelpMessage='The configuration name. Should always be "$default".)')]
        [string]
        $configName,
        [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:servicebus:MigrationConfig")

        $resource.properties["namespaceName"] = $namespaceName
        $resource.properties["postMigrationName"] = $postMigrationName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["targetNamespace"] = $targetNamespace

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusDisasterRecoveryConfig
{
    [Alias('azure_native_servicebus_disasterrecoveryconfig')]
    param (
        [parameter(mandatory=$False,HelpMessage='Primary/Secondary eventhub namespace name, which is part of GEO DR pairing)')]
        [string]
        $alternateName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Disaster Recovery configuration name)')]
        [string]
        $alias,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='ARM Id of the Primary/Secondary eventhub namespace name, which is part of GEO DR pairing)')]
        [string]
        $partnerNamespace,
        [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:servicebus:DisasterRecoveryConfig")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Action
{
    [string] $sqlExpression
    [int] $compatibilityLevel
    [bool] $requiresPreprocessing
}
function New-AzureNativeTypeServicebusAction
{
    param (
        [parameter(mandatory=$False,HelpMessage='SQL expression. e.g. MyProperty=''ABC'')')]
        [string]
        $sqlExpression,
        [parameter(mandatory=$False,HelpMessage='This property is reserved for future use. An integer value showing the compatibility level, currently hard-coded to 20.)')]
        [int]
        $compatibilityLevel,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether the rule action requires preprocessing.)')]
        [bool]
        $requiresPreprocessing
    )

    process
    {
        return $([Action]$PSBoundParameters)
    }
}
class CorrelationFilter
{
    [string] $messageId
    [bool] $requiresPreprocessing
    [string] $replyToSessionId
    [object] $properties
    [string] $replyTo
    [string] $contentType
    [string] $correlationId
    [string] $label
    [string] $sessionId
    [string] $to
}
function New-AzureNativeTypeServicebusCorrelationFilter
{
    param (
        [parameter(mandatory=$False,HelpMessage='Identifier of the message.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether the rule action requires preprocessing.)')]
        [bool]
        $requiresPreprocessing,
        [parameter(mandatory=$False,HelpMessage='Session identifier to reply to.)')]
        [string]
        $replyToSessionId,
        [parameter(mandatory=$False,HelpMessage='dictionary object for custom filters)')]
        [hashtable]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Address of the queue to reply to.)')]
        [string]
        $replyTo,
        [parameter(mandatory=$False,HelpMessage='Content type of the message.)')]
        [string]
        $contentType,
        [parameter(mandatory=$False,HelpMessage='Identifier of the correlation.)')]
        [string]
        $correlationId,
        [parameter(mandatory=$False,HelpMessage='Application specific label.)')]
        [string]
        $label,
        [parameter(mandatory=$False,HelpMessage='Session identifier.)')]
        [string]
        $sessionId,
        [parameter(mandatory=$False,HelpMessage='Address to send to.)')]
        [string]
        $to
    )

    process
    {
        return $([CorrelationFilter]$PSBoundParameters)
    }
}
class SqlFilter
{
    [string] $sqlExpression
    [int] $compatibilityLevel
    [bool] $requiresPreprocessing
}
function New-AzureNativeTypeServicebusSqlFilter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SQL expression. e.g. MyProperty=''ABC'')')]
        [string]
        $sqlExpression,
        [parameter(mandatory=$False,HelpMessage='This property is reserved for future use. An integer value showing the compatibility level, currently hard-coded to 20.)')]
        [int]
        $compatibilityLevel,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether the rule action requires preprocessing.)')]
        [bool]
        $requiresPreprocessing
    )

    process
    {
        return $([SqlFilter]$PSBoundParameters)
    }
}
function New-AzureNativeServicebusRule
{
    [Alias('azure_native_servicebus_rule')]
    param (
        [parameter(mandatory=$False,HelpMessage='Filter type that is evaluated against a BrokeredMessage.)')]
        $filterType,
        [parameter(mandatory=$False,HelpMessage='Represents the filter actions which are allowed for the transformation of a message that have been matched by a filter expression.)')]
        [Action]
        $action,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName,
        [parameter(mandatory=$False,HelpMessage='The rule name.)')]
        [string]
        $ruleName,
        [parameter(mandatory=$False,HelpMessage='Properties of correlationFilter)')]
        [CorrelationFilter]
        $correlationFilter,
        [parameter(mandatory=$False,HelpMessage='The subscription name.)')]
        [string]
        $subscriptionName,
        [parameter(mandatory=$False,HelpMessage='Properties of sqlFilter)')]
        [SqlFilter]
        $sqlFilter,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [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:servicebus:Rule")

        $resource.properties["namespaceName"] = $namespaceName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["subscriptionName"] = $subscriptionName
        $resource.properties["topicName"] = $topicName

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusNamespaceVirtualNetworkRule
{
    [Alias('azure_native_servicebus_namespacevirtualnetworkrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Resource ID of Virtual Network Subnet)')]
        [string]
        $virtualNetworkSubnetId,
        [parameter(mandatory=$False,HelpMessage='The Virtual Network Rule name.)')]
        [string]
        $virtualNetworkRuleName,
        [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:servicebus:NamespaceVirtualNetworkRule")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusNamespaceIpFilterRule
{
    [Alias('azure_native_servicebus_namespaceipfilterrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='IP Mask)')]
        [string]
        $ipMask,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='IP Filter name)')]
        [string]
        $filterName,
        [parameter(mandatory=$False,HelpMessage='The IP Filter Rule name.)')]
        [string]
        $ipFilterRuleName,
        [parameter(mandatory=$False,HelpMessage='The IP Filter Action)')]
        [string]
        [ValidateSet('Accept', 'Reject')]
        $action,
        [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:servicebus:NamespaceIpFilterRule")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusSubscription
{
    [Alias('azure_native_servicebus_subscription')]
    param (
        [parameter(mandatory=$False,HelpMessage='ISO 8601 timeSpan structure that defines the duration of the duplicate detection history. The default value is 10 minutes.)')]
        [string]
        $duplicateDetectionHistoryTimeWindow,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether server-side batched operations are enabled.)')]
        [bool]
        $enableBatchedOperations,
        [parameter(mandatory=$False,HelpMessage='The topic name.)')]
        [string]
        $topicName,
        [parameter(mandatory=$False,HelpMessage='Queue/Topic name to forward the Dead Letter message)')]
        [string]
        $forwardDeadLetteredMessagesTo,
        [parameter(mandatory=$False,HelpMessage='ISO 8061 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.)')]
        [string]
        $defaultMessageTimeToLive,
        [parameter(mandatory=$False,HelpMessage='ISO 8061 timeSpan idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes.)')]
        [string]
        $autoDeleteOnIdle,
        [parameter(mandatory=$False,HelpMessage='Queue/Topic name to forward the messages)')]
        [string]
        $forwardTo,
        [parameter(mandatory=$False,HelpMessage='Number of maximum deliveries.)')]
        [int]
        $maxDeliveryCount,
        [parameter(mandatory=$False,HelpMessage='Value indicating if a subscription supports the concept of sessions.)')]
        [bool]
        $requiresSession,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether a subscription has dead letter support when a message expires.)')]
        [bool]
        $deadLetteringOnMessageExpiration,
        [parameter(mandatory=$False,HelpMessage='Value that indicates whether a subscription has dead letter support on filter evaluation exceptions.)')]
        [bool]
        $deadLetteringOnFilterEvaluationExceptions,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The subscription name.)')]
        [string]
        $subscriptionName,
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Enumerates the possible values for the status of a messaging entity.)')]
        $status,
        [parameter(mandatory=$False,HelpMessage='ISO 8061 lock duration timespan for the subscription. The default value is 1 minute.)')]
        [string]
        $lockDuration,
        [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:servicebus:Subscription")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusQueueAuthorizationRule
{
    [Alias('azure_native_servicebus_queueauthorizationrule')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The queue name.)')]
        [string]
        $queueName,
        [parameter(mandatory=$False,HelpMessage='The authorization rule name.)')]
        [string]
        $authorizationRuleName,
        [parameter(mandatory=$False,HelpMessage='The rights associated with the rule.)')]
        $rights,
        [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:servicebus:QueueAuthorizationRule")

        $resource.properties["namespaceName"] = $namespaceName
        $resource.properties["queueName"] = $queueName
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["rights"] = $rights

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeServicebusNamespaceNetworkRuleSet
{
    [Alias('azure_native_servicebus_namespacenetworkruleset')]
    param (
        [parameter(mandatory=$False,HelpMessage='The namespace name)')]
        [string]
        $namespaceName,
        [parameter(mandatory=$False,HelpMessage='List VirtualNetwork Rules)')]
        $virtualNetworkRules,
        [parameter(mandatory=$False,HelpMessage='Name of the Resource group within the Azure subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Default Action for Network Rule Set)')]
        [string]
        [ValidateSet('Allow', 'Deny')]
        $defaultAction,
        [parameter(mandatory=$False,HelpMessage='List of IpRules)')]
        $ipRules,
        [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:servicebus:NamespaceNetworkRuleSet")

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

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

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

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

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