pspulumiyaml.azurenative.peering.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionPeeringGetRegisteredAsn
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='The name of the registered ASN.)')]
        [string]
        $registeredAsnName
    )

    process
    {
        $arguments = @{}
        $arguments["peeringName"] = $peeringName
        $arguments["registeredAsnName"] = $registeredAsnName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:peering:getRegisteredAsn -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPeeringGetRegisteredPrefix
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='The name of the registered prefix.)')]
        [string]
        $registeredPrefixName
    )

    process
    {
        $arguments = @{}
        $arguments["peeringName"] = $peeringName
        $arguments["registeredPrefixName"] = $registeredPrefixName
        $arguments["resourceGroupName"] = $resourceGroupName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:peering:getPeering -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPeeringGetPeerAsn
{
    param (
        [parameter(mandatory=$False,HelpMessage='The peer ASN name.)')]
        [string]
        $peerAsnName
    )

    process
    {
        $arguments = @{}
        $arguments["peerAsnName"] = $peerAsnName

        $functionObject = Invoke-PulumiFunction -Name azure-native:peering:getPeerAsn -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPeeringGetPrefix
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The properties to be expanded.)')]
        [string]
        $expand,
        [parameter(mandatory=$False,HelpMessage='The name of the prefix.)')]
        [string]
        $prefixName,
        [parameter(mandatory=$False,HelpMessage='The name of the peering service.)')]
        [string]
        $peeringServiceName
    )

    process
    {
        $arguments = @{}
        $arguments["peeringServiceName"] = $peeringServiceName
        $arguments["prefixName"] = $prefixName
        $arguments["resourceGroupName"] = $resourceGroupName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:peering:getPrefix -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionPeeringGetConnectionMonitorTest
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the connection monitor test)')]
        [string]
        $connectionMonitorTestName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the peering service.)')]
        [string]
        $peeringServiceName
    )

    process
    {
        $arguments = @{}
        $arguments["connectionMonitorTestName"] = $connectionMonitorTestName
        $arguments["peeringServiceName"] = $peeringServiceName
        $arguments["resourceGroupName"] = $resourceGroupName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:peering:getPeeringService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativePeeringPeerAsn
{
    [Alias('azure_native_peering_peerasn')]
    param (
        [parameter(mandatory=$False,HelpMessage='The contact details of the peer.)')]
        $peerContactDetail,
        [parameter(mandatory=$False,HelpMessage='The validation state of the ASN associated with the peer.)')]
        [string]
        [ValidateSet('None', 'Pending', 'Approved', 'Failed')]
        $validationState,
        [parameter(mandatory=$False,HelpMessage='The Autonomous System Number (ASN) of the peer.)')]
        [int]
        $peerAsn,
        [parameter(mandatory=$False,HelpMessage='The peer ASN name.)')]
        [string]
        $peerAsnName,
        [parameter(mandatory=$False,HelpMessage='The name of the peer.)')]
        [string]
        $peerName,
        [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:peering:PeerAsn")


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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePeeringRegisteredAsn
{
    [Alias('azure_native_peering_registeredasn')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The customer''s ASN from which traffic originates.)')]
        [int]
        $asn,
        [parameter(mandatory=$False,HelpMessage='The name of the ASN.)')]
        [string]
        $registeredAsnName,
        [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:peering:RegisteredAsn")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePeeringRegisteredPrefix
{
    [Alias('azure_native_peering_registeredprefix')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the registered prefix.)')]
        [string]
        $registeredPrefixName,
        [parameter(mandatory=$False,HelpMessage='The name of the peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='The customer''s prefix from which traffic originates.)')]
        [string]
        $prefix,
        [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:peering:RegisteredPrefix")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePeeringPrefix
{
    [Alias('azure_native_peering_prefix')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the prefix.)')]
        [string]
        $prefixName,
        [parameter(mandatory=$False,HelpMessage='The peering service prefix key)')]
        [string]
        $peeringServicePrefixKey,
        [parameter(mandatory=$False,HelpMessage='The prefix from which your traffic originates.)')]
        [string]
        $prefix,
        [parameter(mandatory=$False,HelpMessage='The name of the peering service.)')]
        [string]
        $peeringServiceName,
        [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:peering:Prefix")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PeeringSku
{
    [ValidateSet('Free', 'Metered', 'Unlimited')]
    [string] $size
    [ValidateSet('Direct', 'Exchange')]
    [string] $family
    [ValidateSet('Basic', 'Premium')]
    [string] $tier
    [ValidateSet('Basic', 'Premium')]
    [string] $name
}
function New-AzureNativeTypePeeringPeeringSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The size of the peering SKU.)')]
        [string]
        [ValidateSet('Free', 'Metered', 'Unlimited')]
        $size,
        [parameter(mandatory=$False,HelpMessage='The family of the peering SKU.)')]
        [string]
        [ValidateSet('Direct', 'Exchange')]
        $family,
        [parameter(mandatory=$False,HelpMessage='The tier of the peering SKU.)')]
        [string]
        [ValidateSet('Basic', 'Premium')]
        $tier,
        [parameter(mandatory=$False,HelpMessage='The name of the peering SKU.)')]
        [string]
        $name
    )

    process
    {
        return $([PeeringSku]$PSBoundParameters)
    }
}
class SubResource
{
    [string] $id
}
function New-AzureNativeTypePeeringSubResource
{
    param (
        [parameter(mandatory=$False,HelpMessage='The identifier of the referenced resource.)')]
        [string]
        $id
    )

    process
    {
        return $([SubResource]$PSBoundParameters)
    }
}
class BgpSession
{
    [int] $maxPrefixesAdvertisedV4
    [string] $sessionPrefixV6
    [string] $peerSessionIPv6Address
    [int] $maxPrefixesAdvertisedV6
    [string] $md5AuthenticationKey
    [string] $peerSessionIPv4Address
    [string] $microsoftSessionIPv6Address
    [string] $sessionPrefixV4
    [string] $microsoftSessionIPv4Address
}
function New-AzureNativeTypePeeringBgpSession
{
    param (
        [parameter(mandatory=$False,HelpMessage='The maximum number of prefixes advertised over the IPv4 session.)')]
        [int]
        $maxPrefixesAdvertisedV4,
        [parameter(mandatory=$False,HelpMessage='The IPv6 prefix that contains both ends'' IPv6 addresses.)')]
        [string]
        $sessionPrefixV6,
        [parameter(mandatory=$False,HelpMessage='The IPv6 session address on peer''s end.)')]
        [string]
        $peerSessionIPv6Address,
        [parameter(mandatory=$False,HelpMessage='The maximum number of prefixes advertised over the IPv6 session.)')]
        [int]
        $maxPrefixesAdvertisedV6,
        [parameter(mandatory=$False,HelpMessage='The MD5 authentication key of the session.)')]
        [string]
        $md5AuthenticationKey,
        [parameter(mandatory=$False,HelpMessage='The IPv4 session address on peer''s end.)')]
        [string]
        $peerSessionIPv4Address,
        [parameter(mandatory=$False,HelpMessage='The IPv6 session address on Microsoft''s end.)')]
        [string]
        $microsoftSessionIPv6Address,
        [parameter(mandatory=$False,HelpMessage='The IPv4 prefix that contains both ends'' IPv4 addresses.)')]
        [string]
        $sessionPrefixV4,
        [parameter(mandatory=$False,HelpMessage='The IPv4 session address on Microsoft''s end.)')]
        [string]
        $microsoftSessionIPv4Address
    )

    process
    {
        return $([BgpSession]$PSBoundParameters)
    }
}
class ExchangeConnection
{
    [int] $peeringDBFacilityId
    [string] $connectionIdentifier
    [BgpSession] $bgpSession
}
function New-AzureNativeTypePeeringExchangeConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The PeeringDB.com ID of the facility at which the connection has to be set up.)')]
        [int]
        $peeringDBFacilityId,
        [parameter(mandatory=$False,HelpMessage='The unique identifier (GUID) for the connection.)')]
        [string]
        $connectionIdentifier,
        [parameter(mandatory=$False,HelpMessage='The BGP session associated with the connection.)')]
        [BgpSession]
        $bgpSession
    )

    process
    {
        return $([ExchangeConnection]$PSBoundParameters)
    }
}
class PeeringPropertiesExchange
{
    [SubResource] $peerAsn
    [ExchangeConnection[]] $connections
}
function New-AzureNativeTypePeeringPeeringPropertiesExchange
{
    param (
        [parameter(mandatory=$False,HelpMessage='The reference of the peer ASN.)')]
        [SubResource]
        $peerAsn,
        [parameter(mandatory=$False,HelpMessage='The set of connections that constitute an exchange peering.)')]
        $connections
    )

    process
    {
        return $([PeeringPropertiesExchange]$PSBoundParameters)
    }
}
class DirectConnection
{
    [ValidateSet('Edge', 'Transit', 'Cdn', 'Internal', 'Ix', 'IxRs', 'Voice')]
    [bool] $useForPeeringService
    [ValidateSet('Edge', 'Transit', 'Cdn', 'Internal', 'Ix', 'IxRs', 'Voice')]
    [BgpSession] $bgpSession
    [ValidateSet('Edge', 'Transit', 'Cdn', 'Internal', 'Ix', 'IxRs', 'Voice')]
    [int] $peeringDBFacilityId
    [ValidateSet('Microsoft', 'Peer')]
    [string] $sessionAddressProvider
    [ValidateSet('Microsoft', 'Peer')]
    [int] $bandwidthInMbps
    [ValidateSet('Microsoft', 'Peer')]
    [string] $connectionIdentifier
}
function New-AzureNativeTypePeeringDirectConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The flag that indicates whether or not the connection is used for peering service.)')]
        [bool]
        $useForPeeringService,
        [parameter(mandatory=$False,HelpMessage='The BGP session associated with the connection.)')]
        [BgpSession]
        $bgpSession,
        [parameter(mandatory=$False,HelpMessage='The PeeringDB.com ID of the facility at which the connection has to be set up.)')]
        [int]
        $peeringDBFacilityId,
        [parameter(mandatory=$False,HelpMessage='The field indicating if Microsoft provides session ip addresses.)')]
        [string]
        [ValidateSet('Microsoft', 'Peer')]
        $sessionAddressProvider,
        [parameter(mandatory=$False,HelpMessage='The bandwidth of the connection.)')]
        [int]
        $bandwidthInMbps,
        [parameter(mandatory=$False,HelpMessage='The unique identifier (GUID) for the connection.)')]
        [string]
        $connectionIdentifier
    )

    process
    {
        return $([DirectConnection]$PSBoundParameters)
    }
}
class PeeringPropertiesDirect
{
    [SubResource] $peerAsn
    [ValidateSet('Edge', 'Transit', 'Cdn', 'Internal', 'Ix', 'IxRs', 'Voice')]
    [string] $directPeeringType
    [ValidateSet('Edge', 'Transit', 'Cdn', 'Internal', 'Ix', 'IxRs', 'Voice')]
    [DirectConnection[]] $connections
}
function New-AzureNativeTypePeeringPeeringPropertiesDirect
{
    param (
        [parameter(mandatory=$False,HelpMessage='The reference of the peer ASN.)')]
        [SubResource]
        $peerAsn,
        [parameter(mandatory=$False,HelpMessage='The type of direct peering.)')]
        [string]
        [ValidateSet('Edge', 'Transit', 'Cdn', 'Internal', 'Ix', 'IxRs', 'Voice')]
        $directPeeringType,
        [parameter(mandatory=$False,HelpMessage='The set of connections that constitute a direct peering.)')]
        $connections
    )

    process
    {
        return $([PeeringPropertiesDirect]$PSBoundParameters)
    }
}
function New-AzureNativePeeringPeering
{
    [Alias('azure_native_peering_peering')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The location of the peering.)')]
        [string]
        $peeringLocation,
        [parameter(mandatory=$False,HelpMessage='The kind of the peering.)')]
        [string]
        [ValidateSet('Direct', 'Exchange')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The SKU that defines the tier and kind of the peering.)')]
        [PeeringSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The properties that define an exchange peering.)')]
        [PeeringPropertiesExchange]
        $exchange,
        [parameter(mandatory=$False,HelpMessage='The name of the peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The properties that define a direct peering.)')]
        [PeeringPropertiesDirect]
        $direct,
        [parameter(mandatory=$False,HelpMessage='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
    )

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativePeeringConnectionMonitorTest
{
    [Alias('azure_native_peering_connectionmonitortest')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the peering service.)')]
        [string]
        $peeringServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the connection monitor test)')]
        [string]
        $connectionMonitorTestName,
        [parameter(mandatory=$False,HelpMessage='The Connection Monitor test destination port)')]
        [int]
        $destinationPort,
        [parameter(mandatory=$False,HelpMessage='The Connection Monitor test destination)')]
        [string]
        $destination,
        [parameter(mandatory=$False,HelpMessage='The Connection Monitor test frequency in seconds)')]
        [int]
        $testFrequencyInSec,
        [parameter(mandatory=$False,HelpMessage='The Connection Monitor test source agent)')]
        [string]
        $sourceAgent,
        [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:peering:ConnectionMonitorTest")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PeeringServiceSku
{
    [string] $name
}
function New-AzureNativeTypePeeringPeeringServiceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the peering service SKU.)')]
        [string]
        $name
    )

    process
    {
        return $([PeeringServiceSku]$PSBoundParameters)
    }
}
function New-AzureNativePeeringPeeringService
{
    [Alias('azure_native_peering_peeringservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The SKU that defines the type of the peering service.)')]
        [PeeringServiceSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The primary peering (Microsoft/service provider) location to be used for customer traffic.)')]
        [string]
        $providerPrimaryPeeringLocation,
        [parameter(mandatory=$False,HelpMessage='The name of the service provider.)')]
        [string]
        $peeringServiceProvider,
        [parameter(mandatory=$False,HelpMessage='The name of the peering service.)')]
        [string]
        $peeringServiceName,
        [parameter(mandatory=$False,HelpMessage='The backup peering (Microsoft/service provider) location to be used for customer traffic.)')]
        [string]
        $providerBackupPeeringLocation,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The location (state/province) of the customer.)')]
        [string]
        $peeringServiceLocation,
        [parameter(mandatory=$False,HelpMessage='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
    )

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

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

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

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

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

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

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

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

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

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

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