pspulumiyaml.azurenative.botservice.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionBotserviceGetBot
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:getBot -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceListBotConnectionServiceProviders
{
    param (
    )

    process
    {
        $arguments = @{}

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:listBotConnectionServiceProviders -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceGetEnterpriseChannel
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:getEnterpriseChannel -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceListBotConnectionWithSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot Service Connection Setting resource.)')]
        [string]
        $connectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["connectionName"] = $connectionName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["resourceName"] = $resourceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:listBotConnectionWithSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceGetChannel
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $channelName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["channelName"] = $channelName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["resourceName"] = $resourceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:getChannel -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceGetBotConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot Service Connection Setting resource.)')]
        [string]
        $connectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["connectionName"] = $connectionName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["resourceName"] = $resourceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:getBotConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionBotserviceListChannelWithKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the Channel resource.)')]
        [string]
        $channelName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["channelName"] = $channelName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["resourceName"] = $resourceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:botservice:listChannelWithKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class EnterpriseChannelNode
{
    [ArgumentCompletions('Creating', 'CreateFailed', 'Started', 'Starting', 'StartFailed', 'Stopped', 'Stopping', 'StopFailed', 'Deleting', 'DeleteFailed')]
    [string] $state
    [string] $name
    [string] $azureLocation
    [string] $azureSku
}
function New-AzureNativeTypeBotserviceEnterpriseChannelNode
{
    param (
        [parameter(mandatory=$False,HelpMessage='The current state of the Enterprise Channel Node.)')]
        [string]
        [ValidateSet('Creating', 'CreateFailed', 'Started', 'Starting', 'StartFailed', 'Stopped', 'Stopping', 'StopFailed', 'Deleting', 'DeleteFailed')]
        $state,
        [parameter(mandatory=$False,HelpMessage='The name of the Enterprise Channel Node.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The location of the Enterprise Channel Node.)')]
        [string]
        $azureLocation,
        [parameter(mandatory=$False,HelpMessage='The sku of the Enterprise Channel Node.)')]
        [string]
        $azureSku
    )

    process
    {
        return $([EnterpriseChannelNode]$PSBoundParameters)
    }
}
class EnterpriseChannelProperties
{
    [EnterpriseChannelNode[]] $nodes
    [ArgumentCompletions('Creating', 'CreateFailed', 'Started', 'Starting', 'StartFailed', 'Stopped', 'Stopping', 'StopFailed', 'Deleting', 'DeleteFailed')]
    [string] $state
}
function New-AzureNativeTypeBotserviceEnterpriseChannelProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The nodes associated with the Enterprise Channel.)')]
        $nodes,
        [parameter(mandatory=$False,HelpMessage='The current state of the Enterprise Channel.)')]
        [string]
        [ValidateSet('Creating', 'CreateFailed', 'Started', 'Starting', 'StartFailed', 'Stopped', 'Stopping', 'StopFailed', 'Deleting', 'DeleteFailed')]
        $state
    )

    process
    {
        return $([EnterpriseChannelProperties]$PSBoundParameters)
    }
}
class Sku
{
    [ArgumentCompletions('F0', 'S1')]
    [string] $name
}
function New-AzureNativeTypeBotserviceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sku name)')]
        [string]
        [ValidateSet('F0', 'S1')]
        $name
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
function New-AzureNativeBotserviceEnterpriseChannel
{
    [Alias('azure_native_botservice_enterprisechannel')]
    param (
        [parameter(mandatory=$False,HelpMessage='Required. Gets or sets the Kind of the resource.)')]
        [string]
        [ValidateSet('sdk', 'designer', 'bot', 'function')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The set of properties specific to an Enterprise Channel resource.)')]
        [EnterpriseChannelProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Contains resource tags defined as key/value pairs.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the 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:botservice:EnterpriseChannel")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $actionsRequired
    [string] $description
    [ArgumentCompletions('Pending', 'Approved', 'Rejected')]
    [string] $status
}
function New-AzureNativeTypeBotservicePrivateLinkServiceConnectionState
{
    param (
        [parameter(mandatory=$False,HelpMessage='A message indicating if changes on the service provider require any updates on the consumer.)')]
        [string]
        $actionsRequired,
        [parameter(mandatory=$False,HelpMessage='The reason for approval/rejection of the connection.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.)')]
        [string]
        [ValidateSet('Pending', 'Approved', 'Rejected')]
        $status
    )

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativeBotservicePrivateEndpointConnection
{
    [Alias('azure_native_botservice_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [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:botservice:PrivateEndpointConnection")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class WebChatSite
{
    [string] $siteName
    [bool] $isEnabled
    [bool] $isWebchatPreviewEnabled
}
function New-AzureNativeTypeBotserviceWebChatSite
{
    param (
        [parameter(mandatory=$False,HelpMessage='Site name)')]
        [string]
        $siteName,
        [parameter(mandatory=$False,HelpMessage='Whether this site is enabled for DirectLine channel)')]
        [bool]
        $isEnabled,
        [parameter(mandatory=$False,HelpMessage='Whether this site is enabled for preview versions of Webchat)')]
        [bool]
        $isWebchatPreviewEnabled
    )

    process
    {
        return $([WebChatSite]$PSBoundParameters)
    }
}
class WebChatChannelProperties
{
    [WebChatSite[]] $sites
}
function New-AzureNativeTypeBotserviceWebChatChannelProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of Web Chat sites)')]
        $sites
    )

    process
    {
        return $([WebChatChannelProperties]$PSBoundParameters)
    }
}
class WebChatChannel
{
    [string] $location
    [string] $channelName
    [WebChatChannelProperties] $properties
    [string] $etag
}
function New-AzureNativeTypeBotserviceWebChatChannel
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The channel name
Expected value is ''WebChatChannel''.)'
)]
        [string]
        $channelName,
        [parameter(mandatory=$False,HelpMessage='The set of properties specific to Web Chat channel resource)')]
        [WebChatChannelProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Entity Tag of the resource)')]
        [string]
        $etag
    )

    process
    {
        return $([WebChatChannel]$PSBoundParameters)
    }
}
function New-AzureNativeBotserviceChannel
{
    [Alias('azure_native_botservice_channel')]
    param (
        [parameter(mandatory=$False,HelpMessage='Required. Gets or sets the Kind of the resource.)')]
        [string]
        [ValidateSet('sdk', 'designer', 'bot', 'function')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Contains resource tags defined as key/value pairs.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The name of the Channel resource.)')]
        [string]
        $channelName,
        [parameter(mandatory=$False,HelpMessage='The set of properties specific to bot channel resource)')]
        [WebChatChannel]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [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:botservice:Channel")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ConnectionSettingParameter
{
    [string] $key
    [string] $value
}
function New-AzureNativeTypeBotserviceConnectionSettingParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='Key for the Connection Setting Parameter.)')]
        [string]
        $key,
        [parameter(mandatory=$False,HelpMessage='Value associated with the Connection Setting Parameter.)')]
        [string]
        $value
    )

    process
    {
        return $([ConnectionSettingParameter]$PSBoundParameters)
    }
}
class ConnectionSettingProperties
{
    [string] $clientId
    [string] $serviceProviderId
    [string] $id
    [string] $clientSecret
    [string] $serviceProviderDisplayName
    [ConnectionSettingParameter[]] $parameters
    [string] $scopes
    [string] $name
    [string] $provisioningState
}
function New-AzureNativeTypeBotserviceConnectionSettingProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Client Id associated with the Connection Setting.)')]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='Service Provider Id associated with the Connection Setting)')]
        [string]
        $serviceProviderId,
        [parameter(mandatory=$False,HelpMessage='Id associated with the Connection Setting.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Client Secret associated with the Connection Setting)')]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='Service Provider Display Name associated with the Connection Setting)')]
        [string]
        $serviceProviderDisplayName,
        [parameter(mandatory=$False,HelpMessage='Service Provider Parameters associated with the Connection Setting)')]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='Scopes associated with the Connection Setting)')]
        [string]
        $scopes,
        [parameter(mandatory=$False,HelpMessage='Name associated with the Connection Setting.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Provisioning state of the resource)')]
        [string]
        $provisioningState
    )

    process
    {
        return $([ConnectionSettingProperties]$PSBoundParameters)
    }
}
function New-AzureNativeBotserviceBotConnection
{
    [Alias('azure_native_botservice_botconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Required. Gets or sets the Kind of the resource.)')]
        [string]
        [ValidateSet('sdk', 'designer', 'bot', 'function')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Contains resource tags defined as key/value pairs.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot Service Connection Setting resource.)')]
        [string]
        $connectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The set of properties specific to bot channel resource)')]
        [ConnectionSettingProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [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:botservice:BotConnection")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class BotProperties
{
    [bool] $isCmekEnabled
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $publicNetworkAccess
    [bool] $isStreamingSupported
    [string] $developerAppInsightsApiKey
    [string] $cmekKeyVaultUrl
    [string] $openWithHint
    [ArgumentCompletions('UserAssignedMSI', 'SingleTenant', 'MultiTenant')]
    [string] $msaAppType
    [string] $developerAppInsightsApplicationId
    [string] $storageResourceId
    [string] $msaAppTenantId
    [string] $msaAppId
    [string] $displayName
    [string] $developerAppInsightKey
    [string] $publishingCredentials
    [string] $msaAppMSIResourceId
    [string] $description
    [string] $appPasswordHint
    [string] $endpoint
    [string] $schemaTransformationVersion
    [string] $manifestUrl
    [bool] $disableLocalAuth
    [string] $luisKey
    [object] $allSettings
    [string[]] $luisAppIds
    [object] $parameters
    [string] $iconUrl
}
function New-AzureNativeTypeBotserviceBotProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Whether Cmek is enabled)')]
        [bool]
        $isCmekEnabled,
        [parameter(mandatory=$False,HelpMessage='Whether the bot is in an isolated network)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $publicNetworkAccess,
        [parameter(mandatory=$False,HelpMessage='Whether the bot is streaming supported)')]
        [bool]
        $isStreamingSupported,
        [parameter(mandatory=$False,HelpMessage='The Application Insights Api Key)')]
        [string]
        $developerAppInsightsApiKey,
        [parameter(mandatory=$False,HelpMessage='The CMK Url)')]
        [string]
        $cmekKeyVaultUrl,
        [parameter(mandatory=$False,HelpMessage='The hint to browser (e.g. protocol handler) on how to open the bot for authoring)')]
        [string]
        $openWithHint,
        [parameter(mandatory=$False,HelpMessage='Microsoft App Type for the bot)')]
        [string]
        [ValidateSet('UserAssignedMSI', 'SingleTenant', 'MultiTenant')]
        $msaAppType,
        [parameter(mandatory=$False,HelpMessage='The Application Insights App Id)')]
        [string]
        $developerAppInsightsApplicationId,
        [parameter(mandatory=$False,HelpMessage='The storage resourceId for the bot)')]
        [string]
        $storageResourceId,
        [parameter(mandatory=$False,HelpMessage='Microsoft App Tenant Id for the bot)')]
        [string]
        $msaAppTenantId,
        [parameter(mandatory=$False,HelpMessage='Microsoft App Id for the bot)')]
        [string]
        $msaAppId,
        [parameter(mandatory=$False,HelpMessage='The Name of the bot)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The Application Insights key)')]
        [string]
        $developerAppInsightKey,
        [parameter(mandatory=$False,HelpMessage='Publishing credentials of the resource)')]
        [string]
        $publishingCredentials,
        [parameter(mandatory=$False,HelpMessage='Microsoft App Managed Identity Resource Id for the bot)')]
        [string]
        $msaAppMSIResourceId,
        [parameter(mandatory=$False,HelpMessage='The description of the bot)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The hint (e.g. keyVault secret resourceId) on how to fetch the app secret)')]
        [string]
        $appPasswordHint,
        [parameter(mandatory=$False,HelpMessage='The bot''s endpoint)')]
        [string]
        $endpoint,
        [parameter(mandatory=$False,HelpMessage='The channel schema transformation version for the bot)')]
        [string]
        $schemaTransformationVersion,
        [parameter(mandatory=$False,HelpMessage='The bot''s manifest url)')]
        [string]
        $manifestUrl,
        [parameter(mandatory=$False,HelpMessage='Opt-out of local authentication and ensure only MSI and AAD can be used exclusively for authentication.)')]
        [bool]
        $disableLocalAuth,
        [parameter(mandatory=$False,HelpMessage='The LUIS Key)')]
        [string]
        $luisKey,
        [parameter(mandatory=$False,HelpMessage='Contains resource all settings defined as key/value pairs.)')]
        [hashtable]
        $allSettings,
        [parameter(mandatory=$False,HelpMessage='Collection of LUIS App Ids)')]
        [string[]]
        $luisAppIds,
        [parameter(mandatory=$False,HelpMessage='Contains resource parameters defined as key/value pairs.)')]
        [hashtable]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='The Icon Url of the bot)')]
        [string]
        $iconUrl
    )

    process
    {
        return $([BotProperties]$PSBoundParameters)
    }
}
function New-AzureNativeBotserviceBot
{
    [Alias('azure_native_botservice_bot')]
    param (
        [parameter(mandatory=$False,HelpMessage='Required. Gets or sets the Kind of the resource.)')]
        [string]
        [ValidateSet('sdk', 'designer', 'bot', 'function')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The set of properties specific to bot resource)')]
        [BotProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Contains resource tags defined as key/value pairs.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the Bot resource group in the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the 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:botservice:Bot")

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

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

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

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

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

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

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

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