pspulumiyaml.azurenative.webpubsub.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionWebpubsubGetWebPubSubHub
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The hub name.)')]
        [string]
        $hubName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:webpubsub:getWebPubSubHub -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebpubsubGetWebPubSub
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:webpubsub:getWebPubSub -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebpubsubGetWebPubSubSharedPrivateLinkResource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the shared private link resource)')]
        [string]
        $sharedPrivateLinkResourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:webpubsub:getWebPubSubSharedPrivateLinkResource -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebpubsubGetWebPubSubPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:webpubsub:getWebPubSubPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionWebpubsubListWebPubSubKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:webpubsub:listWebPubSubKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class EventHandlerSettings
{
    [object] $items
}
function New-AzureNativeTypeWebpubsubEventHandlerSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Get or set the EventHandler items. The key is the hub name and the value is the corresponding EventHandlerTemplate.)')]
        [object]
        $items
    )

    process
    {
        return $([EventHandlerSettings]$PSBoundParameters)
    }
}
class ManagedIdentity
{
    [ValidateSet('None', 'SystemAssigned', 'UserAssigned')]
    [string] $type
    [ValidateSet('None', 'SystemAssigned', 'UserAssigned')]
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeWebpubsubManagedIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Represent the identity type: systemAssigned, userAssigned, None)')]
        [string]
        [ValidateSet('None', 'SystemAssigned', 'UserAssigned')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Get or set the user assigned identities)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([ManagedIdentity]$PSBoundParameters)
    }
}
class WebPubSubTlsSettings
{
    [bool] $clientCertEnabled
}
function New-AzureNativeTypeWebpubsubWebPubSubTlsSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Request client certificate during TLS handshake if enabled)')]
        [bool]
        $clientCertEnabled
    )

    process
    {
        return $([WebPubSubTlsSettings]$PSBoundParameters)
    }
}
class ResourceSku
{
    [int] $capacity
    [string] $name
    [ValidateSet('Free', 'Basic', 'Standard', 'Premium')]
    [string] $tier
}
function New-AzureNativeTypeWebpubsubResourceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='Optional, integer. The unit count of the resource. 1 by default.

If present, following values are allowed:
    Free: 1
    Standard: 1,2,5,10,20,50,100)'
)]
        [int]
        $capacity,
        [parameter(mandatory=$False,HelpMessage='The name of the SKU. Required.

Allowed values: Standard_S1, Free_F1)'
)]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Optional tier of this particular SKU. ''Standard'' or ''Free''.

`Basic` is deprecated, use `Standard` instead.)'
)]
        [string]
        [ValidateSet('Free', 'Basic', 'Standard', 'Premium')]
        $tier
    )

    process
    {
        return $([ResourceSku]$PSBoundParameters)
    }
}
class PrivateEndpointACL
{
    [string] $name
    [string[]] $allow
    [string[]] $deny
}
function New-AzureNativeTypeWebpubsubPrivateEndpointACL
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.)')]
        $allow,
        [parameter(mandatory=$False,HelpMessage='Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.)')]
        $deny
    )

    process
    {
        return $([PrivateEndpointACL]$PSBoundParameters)
    }
}
class NetworkACL
{
    [string[]] $deny
    [string[]] $allow
}
function New-AzureNativeTypeWebpubsubNetworkACL
{
    param (
        [parameter(mandatory=$False,HelpMessage='Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.)')]
        $deny,
        [parameter(mandatory=$False,HelpMessage='Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.)')]
        $allow
    )

    process
    {
        return $([NetworkACL]$PSBoundParameters)
    }
}
class WebPubSubNetworkACLs
{
    [PrivateEndpointACL[]] $privateEndpoints
    [NetworkACL] $publicNetwork
    [ValidateSet('Allow', 'Deny')]
    [string] $defaultAction
}
function New-AzureNativeTypeWebpubsubWebPubSubNetworkACLs
{
    param (
        [parameter(mandatory=$False,HelpMessage='ACLs for requests from private endpoints)')]
        $privateEndpoints,
        [parameter(mandatory=$False,HelpMessage='ACL for requests from public network)')]
        [NetworkACL]
        $publicNetwork,
        [parameter(mandatory=$False,HelpMessage='Default action when no other rule matches)')]
        [string]
        [ValidateSet('Allow', 'Deny')]
        $defaultAction
    )

    process
    {
        return $([WebPubSubNetworkACLs]$PSBoundParameters)
    }
}
function New-AzureNativeWebpubsubWebPubSub
{
    [Alias('azure_native_webpubsub_webpubsub')]
    param (
        [parameter(mandatory=$False,HelpMessage='Enable or disable public network access. Default to "Enabled".
When it''s Enabled, network ACLs still apply.
When it''s Disabled, public network access is always disabled no matter what you set in network ACLs.)'
)]
        [string]
        $publicNetworkAccess,
        [parameter(mandatory=$False,HelpMessage='The settings for event handler in webpubsub service.)')]
        [EventHandlerSettings]
        $eventHandler,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The managed identity response)')]
        [ManagedIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='TLS settings.)')]
        [WebPubSubTlsSettings]
        $tls,
        [parameter(mandatory=$False,HelpMessage='The billing information of the resource.(e.g. Free, Standard))')]
        [ResourceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Network ACLs)')]
        [WebPubSubNetworkACLs]
        $networkACLs,
        [parameter(mandatory=$False,HelpMessage='Tags of the service which is a list of key value pairs that describe the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='List of the featureFlags.

FeatureFlags that are not included in the parameters for the update operation will not be modified.
And the response will only include featureFlags that are explicitly set.
When a featureFlag is not explicitly set, its globally default value will be used
But keep in mind, the default value doesn''t mean "false". It varies in terms of different FeatureFlags.)'
)]
        $features,
        [parameter(mandatory=$False,HelpMessage='The GEO location of the resource. e.g. West US | East US | North Central US | South Central US.)')]
        [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:webpubsub:WebPubSub")

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ManagedIdentitySettings
{
    [string] $resource
}
function New-AzureNativeTypeWebpubsubManagedIdentitySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Resource indicating the App ID URI of the target resource.
It also appears in the aud (audience) claim of the issued token.)'
)]
        [string]
        $resource
    )

    process
    {
        return $([ManagedIdentitySettings]$PSBoundParameters)
    }
}
class UpstreamAuthSettings
{
    [ManagedIdentitySettings] $managedIdentity
    [ValidateSet('None', 'ManagedIdentity')]
    [string] $type
}
function New-AzureNativeTypeWebpubsubUpstreamAuthSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Managed identity settings for upstream.)')]
        [ManagedIdentitySettings]
        $managedIdentity,
        [parameter(mandatory=$False,HelpMessage='Upstream auth type enum.)')]
        [string]
        [ValidateSet('None', 'ManagedIdentity')]
        $type
    )

    process
    {
        return $([UpstreamAuthSettings]$PSBoundParameters)
    }
}
class EventHandler
{
    [UpstreamAuthSettings] $auth
    [string] $urlTemplate
    [string] $userEventPattern
    [string[]] $systemEvents
}
function New-AzureNativeTypeWebpubsubEventHandler
{
    param (
        [parameter(mandatory=$False,HelpMessage='Upstream auth settings. If not set, no auth is used for upstream messages.)')]
        [UpstreamAuthSettings]
        $auth,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the EventHandler URL template. You can use a predefined parameter {hub} and {event} inside the template, the value of the EventHandler URL is dynamically calculated when the client request comes in.
For example, UrlTemplate can be `http://example.com/api/{hub}/{event}`. The host part can''t contains parameters.)'
)]
        [string]
        $urlTemplate,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the matching pattern for event names.
There are 3 kind of patterns supported:
    1. "*", it to matches any event name
    2. Combine multiple events with ",", for example "event1,event2", it matches event "event1" and "event2"
    3. The single event name, for example, "event1", it matches "event1")'
)]
        [string]
        $userEventPattern,
        [parameter(mandatory=$False,HelpMessage='Gets ot sets the list of system events.)')]
        [string[]]
        $systemEvents
    )

    process
    {
        return $([EventHandler]$PSBoundParameters)
    }
}
class WebPubSubHubProperties
{
    [EventHandler[]] $eventHandlers
    [string] $anonymousConnectPolicy
}
function New-AzureNativeTypeWebpubsubWebPubSubHubProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Event handler of a hub.)')]
        $eventHandlers,
        [parameter(mandatory=$False,HelpMessage='The settings for configuring if anonymous connections are allowed for this hub: "allow" or "deny". Default to "deny".)')]
        [string]
        $anonymousConnectPolicy
    )

    process
    {
        return $([WebPubSubHubProperties]$PSBoundParameters)
    }
}
function New-AzureNativeWebpubsubWebPubSubHub
{
    [Alias('azure_native_webpubsub_webpubsubhub')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Properties of a hub.)')]
        [WebPubSubHubProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The hub name.)')]
        [string]
        $hubName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName,
        [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:webpubsub:WebPubSubHub")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeWebpubsubWebPubSubSharedPrivateLinkResource
{
    [Alias('azure_native_webpubsub_webpubsubsharedprivatelinkresource')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The group id from the provider of resource the shared private link resource is for)')]
        [string]
        $groupId,
        [parameter(mandatory=$False,HelpMessage='The request message for requesting approval of the shared private link resource)')]
        [string]
        $requestMessage,
        [parameter(mandatory=$False,HelpMessage='The name of the shared private link resource)')]
        [string]
        $sharedPrivateLinkResourceName,
        [parameter(mandatory=$False,HelpMessage='The resource id of the resource the shared private link resource is for)')]
        [string]
        $privateLinkResourceId,
        [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:webpubsub:WebPubSubSharedPrivateLinkResource")

        $resource.properties["groupId"] = $groupId
        $resource.properties["privateLinkResourceId"] = $privateLinkResourceId
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["resourceName"] = $resourceName

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateEndpoint
{
    [string] $id
}
function New-AzureNativeTypeWebpubsubPrivateEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='Full qualified Id of the private endpoint)')]
        [string]
        $id
    )

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

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativeWebpubsubWebPubSubPrivateEndpointConnection
{
    [Alias('azure_native_webpubsub_webpubsubprivateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='Private endpoint associated with the private endpoint connection)')]
        [PrivateEndpoint]
        $privateEndpoint,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Connection state)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='The name of the resource.)')]
        [string]
        $resourceName,
        [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:webpubsub:WebPubSubPrivateEndpointConnection")

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

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

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

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

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