pspulumiyaml.azurenative.apimanagement.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionApimanagementGetNamedValue
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the NamedValue.)')]
        [string]
        $namedValueId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["namedValueId"] = $namedValueId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getNamedValue -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiSchema
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Schema identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $schemaId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["schemaId"] = $schemaId
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiSchema -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetSubscription
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Subscription entity Identifier. The entity represents the association between a user and a product in API Management.)')]
        [string]
        $sid,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["sid"] = $sid

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getSubscription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetBackend
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the Backend entity. Must be unique in the current API Management service instance.)')]
        [string]
        $backendId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["backendId"] = $backendId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getBackend -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='Group identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $groupId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["groupId"] = $groupId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiIssue
{
    param (
        [parameter(mandatory=$False,HelpMessage='Issue identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $issueId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Expand the comment attachments. )')]
        [bool]
        $expandCommentsAttachments,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["issueId"] = $issueId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiIssue -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiOperationPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='Policy Export Format.)')]
        [string]
        $format,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Operation identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $operationId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["operationId"] = $operationId
        $arguments["policyId"] = $policyId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiOperationPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetUser
{
    param (
        [parameter(mandatory=$False,HelpMessage='User identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["userId"] = $userId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getUser -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiRelease
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Release identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $releaseId,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["releaseId"] = $releaseId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiRelease -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetTagByApi
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["tagId"] = $tagId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getTagByApi -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListIdentityProviderSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identity Provider Type identifier.)')]
        [string]
        $identityProviderName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["identityProviderName"] = $identityProviderName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listIdentityProviderSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='Policy Export Format.)')]
        [string]
        $format,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["policyId"] = $policyId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetIdentityProvider
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identity Provider Type identifier.)')]
        [string]
        $identityProviderName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["identityProviderName"] = $identityProviderName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getIdentityProvider -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetProductPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='Policy Export Format.)')]
        [string]
        $format,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["policyId"] = $policyId
        $arguments["productId"] = $productId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getProductPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListSubscriptionSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Subscription entity Identifier. The entity represents the association between a user and a product in API Management.)')]
        [string]
        $sid,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["sid"] = $sid

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listSubscriptionSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetContentItem
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Content type identifier.)')]
        [string]
        $contentTypeId,
        [parameter(mandatory=$False,HelpMessage='Content item identifier.)')]
        [string]
        $contentItemId
    )

    process
    {
        $arguments = @{}
        $arguments["contentItemId"] = $contentItemId
        $arguments["contentTypeId"] = $contentTypeId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getContentItem -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetCertificate
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the certificate entity. Must be unique in the current API Management service instance.)')]
        [string]
        $certificateId
    )

    process
    {
        $arguments = @{}
        $arguments["certificateId"] = $certificateId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getCertificate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiIssueAttachment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Issue identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $issueId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Attachment identifier within an Issue. Must be unique in the current Issue.)')]
        [string]
        $attachmentId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["attachmentId"] = $attachmentId
        $arguments["issueId"] = $issueId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiIssueAttachment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiTagDescription
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag description identifier. Used when creating tagDescription for API/Tag association. Based on API and Tag names.)')]
        [string]
        $tagDescriptionId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["tagDescriptionId"] = $tagDescriptionId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiTagDescription -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApi
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApi -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiOperation
{
    param (
        [parameter(mandatory=$False,HelpMessage='Operation identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $operationId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["operationId"] = $operationId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiOperation -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiDiagnostic
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Diagnostic identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $diagnosticId
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["diagnosticId"] = $diagnosticId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiDiagnostic -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetOpenIdConnectProvider
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the OpenID Connect Provider.)')]
        [string]
        $opid,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["opid"] = $opid
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getOpenIdConnectProvider -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiManagementServiceSsoToken
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiManagementServiceSsoToken -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetTagByOperation
{
    param (
        [parameter(mandatory=$False,HelpMessage='Operation identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $operationId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["operationId"] = $operationId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["tagId"] = $tagId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getTagByOperation -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetContentType
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Content type identifier.)')]
        [string]
        $contentTypeId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["contentTypeId"] = $contentTypeId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getContentType -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetProperty
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the property.)')]
        [string]
        $propId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["propId"] = $propId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getProperty -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetEmailTemplate
{
    param (
        [parameter(mandatory=$False,HelpMessage='Email Template Name Identifier.)')]
        [string]
        $templateName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["templateName"] = $templateName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getEmailTemplate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListTenantAccessSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Access configuration.)')]
        [string]
        $accessName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["accessName"] = $accessName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listTenantAccessSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiVersionSet
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Api Version Set identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $versionSetId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["versionSetId"] = $versionSetId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiVersionSet -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetGatewayCertificateAuthority
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='Identifier of the certificate entity. Must be unique in the current API Management service instance.)')]
        [string]
        $certificateId
    )

    process
    {
        $arguments = @{}
        $arguments["certificateId"] = $certificateId
        $arguments["gatewayId"] = $gatewayId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getGatewayCertificateAuthority -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetCache
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the Cache entity. Cache identifier (should be either ''default'' or valid Azure region identifier).)')]
        [string]
        $cacheId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["cacheId"] = $cacheId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getCache -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetTagByProduct
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["productId"] = $productId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["tagId"] = $tagId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getTagByProduct -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiManagementService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiManagementService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListTenantAccessGitSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Access configuration.)')]
        [string]
        $accessName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["accessName"] = $accessName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listTenantAccessGitSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetDiagnostic
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Diagnostic identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $diagnosticId
    )

    process
    {
        $arguments = @{}
        $arguments["diagnosticId"] = $diagnosticId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getDiagnostic -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetProduct
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["productId"] = $productId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getProduct -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListDelegationSettingSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listDelegationSettingSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetGatewayHostnameConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='Gateway hostname configuration identifier. Must be unique in the scope of parent Gateway entity.)')]
        [string]
        $hcId
    )

    process
    {
        $arguments = @{}
        $arguments["gatewayId"] = $gatewayId
        $arguments["hcId"] = $hcId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getGatewayHostnameConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetLogger
{
    param (
        [parameter(mandatory=$False,HelpMessage='Logger identifier. Must be unique in the API Management service instance.)')]
        [string]
        $loggerId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["loggerId"] = $loggerId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getLogger -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetTag
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["tagId"] = $tagId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getTag -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='Policy Export Format.)')]
        [string]
        $format,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["policyId"] = $policyId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getPolicy -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListGatewayKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["gatewayId"] = $gatewayId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listGatewayKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetGateway
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["gatewayId"] = $gatewayId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

    process
    {
        $arguments = @{}

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiManagementServiceDomainOwnershipIdentifier -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetPrivateEndpointConnectionByName
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getPrivateEndpointConnectionByName -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListNamedValue
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the NamedValue.)')]
        [string]
        $namedValueId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["namedValueId"] = $namedValueId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listNamedValue -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetUserSharedAccessToken
{
    param (
        [parameter(mandatory=$False,HelpMessage='User identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The Key to be used to generate token for user.)')]
        $keyType,
        [parameter(mandatory=$False,HelpMessage='The Expiry time of the Token. Maximum token expiry time is set to 30 days. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
)'
)]
        [string]
        $expiry,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["expiry"] = $expiry
        $arguments["keyType"] = $keyType
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName
        $arguments["userId"] = $userId

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getUserSharedAccessToken -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListAuthorizationServerSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the authorization server.)')]
        [string]
        $authsid,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["authsid"] = $authsid
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listAuthorizationServerSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListOpenIdConnectProviderSecrets
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the OpenID Connect Provider.)')]
        [string]
        $opid,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["opid"] = $opid
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listOpenIdConnectProviderSecrets -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetSchema
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Schema id identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $schemaId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["schemaId"] = $schemaId
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getSchema -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetAuthorizationServer
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the authorization server.)')]
        [string]
        $authsid,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["authsid"] = $authsid
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getAuthorizationServer -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetApiIssueComment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Issue identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $issueId,
        [parameter(mandatory=$False,HelpMessage='Comment identifier within an Issue. Must be unique in the current Issue.)')]
        [string]
        $commentId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["apiId"] = $apiId
        $arguments["commentId"] = $commentId
        $arguments["issueId"] = $issueId
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getApiIssueComment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementGetPolicyFragment
{
    param (
        [parameter(mandatory=$False,HelpMessage='Policy fragment content format.)')]
        [string]
        $format,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='A resource identifier.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["id"] = $id
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:getPolicyFragment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionApimanagementListPolicyFragmentReferences
{
    param (
        [parameter(mandatory=$False,HelpMessage='Number of records to return.)')]
        [int]
        $top,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Number of records to skip.)')]
        [int]
        $skip,
        [parameter(mandatory=$False,HelpMessage='A resource identifier.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["id"] = $id
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serviceName"] = $serviceName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:apimanagement:listPolicyFragmentReferences -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeApimanagementApiOperationPolicy
{
    [Alias('azure_native_apimanagement_apioperationpolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='Format of the policyContent.)')]
        [string]
        [ValidateSet('xml', 'xml-link', 'rawxml', 'rawxml-link')]
        $format,
        [parameter(mandatory=$False,HelpMessage='Contents of the Policy as defined by the format.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Operation identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $operationId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ApiOperationPolicy")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class KeyVaultContractCreateProperties
{
    [string] $secretIdentifier
    [string] $identityClientId
}
function New-AzureNativeTypeApimanagementKeyVaultContractCreateProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Key vault secret identifier for fetching secret. Providing a versioned secret will prevent auto-refresh. This requires Api Management service to be configured with aka.ms/apimmsi)')]
        [string]
        $secretIdentifier,
        [parameter(mandatory=$False,HelpMessage='Null for SystemAssignedIdentity or Client Id for UserAssignedIdentity , which will be used to access key vault secret.)')]
        [string]
        $identityClientId
    )

    process
    {
        return $([KeyVaultContractCreateProperties]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementCertificate
{
    [Alias('azure_native_apimanagement_certificate')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='KeyVault location details of the certificate.)')]
        [KeyVaultContractCreateProperties]
        $keyVault,
        [parameter(mandatory=$False,HelpMessage='Identifier of the certificate entity. Must be unique in the current API Management service instance.)')]
        [string]
        $certificateId,
        [parameter(mandatory=$False,HelpMessage='Base 64 encoded certificate using the application/x-pkcs12 representation.)')]
        [string]
        $data,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Password for the Certificate)')]
        [string]
        $password,
        [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:apimanagement:Certificate")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementProperty
{
    [Alias('azure_native_apimanagement_property')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Unique name of Property. It may contain only letters, digits, period, dash, and underscore characters.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the property.)')]
        [string]
        $propId,
        [parameter(mandatory=$False,HelpMessage='Value of the property. Can contain policy expressions. It may not be empty or consist only of whitespace.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Determines whether the value is a secret and should be encrypted or not. Default value is false.)')]
        [bool]
        $secret,
        [parameter(mandatory=$False,HelpMessage='Optional tags that when provided can be used to filter the property list.)')]
        [string[]]
        $tags,
        [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:apimanagement:Property")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiDiagnosticLogger
{
    [Alias('azure_native_apimanagement_apidiagnosticlogger')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Logger identifier. Must be unique in the API Management service instance.)')]
        [string]
        $loggerid,
        [parameter(mandatory=$False,HelpMessage='Diagnostic identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $diagnosticId,
        [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:apimanagement:ApiDiagnosticLogger")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementGatewayCertificateAuthority
{
    [Alias('azure_native_apimanagement_gatewaycertificateauthority')]
    param (
        [parameter(mandatory=$False,HelpMessage='Determines whether certificate authority is trusted.)')]
        [bool]
        $isTrusted,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='Identifier of the certificate entity. Must be unique in the current API Management service instance.)')]
        [string]
        $certificateId,
        [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:apimanagement:GatewayCertificateAuthority")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiIssueAttachment
{
    [Alias('azure_native_apimanagement_apiissueattachment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Either ''link'' if content is provided via an HTTP link or the MIME type of the Base64-encoded binary data provided in the ''content'' property.)')]
        [string]
        $contentFormat,
        [parameter(mandatory=$False,HelpMessage='Filename by which the binary data will be saved.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Attachment identifier within an Issue. Must be unique in the current Issue.)')]
        [string]
        $attachmentId,
        [parameter(mandatory=$False,HelpMessage='Issue identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $issueId,
        [parameter(mandatory=$False,HelpMessage='An HTTP link or Base64-encoded binary data.)')]
        [string]
        $content,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [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:apimanagement:ApiIssueAttachment")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementContentType
{
    [Alias('azure_native_apimanagement_contenttype')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Content type identifier.)')]
        [string]
        $contentTypeId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ContentType")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementDiagnosticLogger
{
    [Alias('azure_native_apimanagement_diagnosticlogger')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Logger identifier. Must be unique in the API Management service instance.)')]
        [string]
        $loggerid,
        [parameter(mandatory=$False,HelpMessage='Diagnostic identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $diagnosticId,
        [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:apimanagement:DiagnosticLogger")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiIssue
{
    [Alias('azure_native_apimanagement_apiissue')]
    param (
        [parameter(mandatory=$False,HelpMessage='A resource identifier for the API the issue was created for.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Status of the issue.)')]
        [string]
        [ValidateSet('proposed', 'open', 'removed', 'resolved', 'closed')]
        $state,
        [parameter(mandatory=$False,HelpMessage='The issue title.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='A resource identifier for the user created the issue.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='Issue identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $issueId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Date and time when the issue was created.)')]
        [string]
        $createdDate,
        [parameter(mandatory=$False,HelpMessage='Text describing the issue.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ApiIssue")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementEmailTemplate
{
    [Alias('azure_native_apimanagement_emailtemplate')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Description of the Email Template.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Title of the Template.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='Email Template Name Identifier.)')]
        [string]
        $templateName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Email Template Parameter values.)')]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='Subject of the Template.)')]
        [string]
        $subject,
        [parameter(mandatory=$False,HelpMessage='Email Template Body. This should be a valid XDocument)')]
        [string]
        $body,
        [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:apimanagement:EmailTemplate")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiPolicy
{
    [Alias('azure_native_apimanagement_apipolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='Format of the policyContent.)')]
        [string]
        [ValidateSet('xml', 'xml-link', 'rawxml', 'rawxml-link')]
        $format,
        [parameter(mandatory=$False,HelpMessage='Contents of the Policy as defined by the format.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ApiPolicy")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiIssueComment
{
    [Alias('azure_native_apimanagement_apiissuecomment')]
    param (
        [parameter(mandatory=$False,HelpMessage='Comment text.)')]
        [string]
        $text,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='A resource identifier for the user who left the comment.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='Issue identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $issueId,
        [parameter(mandatory=$False,HelpMessage='Date and time when the comment was created.)')]
        [string]
        $createdDate,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Comment identifier within an Issue. Must be unique in the current Issue.)')]
        [string]
        $commentId,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [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:apimanagement:ApiIssueComment")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class DataMaskingEntity
{
    [ArgumentCompletions('Mask', 'Hide')]
    [string] $mode
    [string] $value
}
function New-AzureNativeTypeApimanagementDataMaskingEntity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Data masking mode.)')]
        [string]
        [ValidateSet('Mask', 'Hide')]
        $mode,
        [parameter(mandatory=$False,HelpMessage='The name of an entity to mask (e.g. a name of a header or a query parameter).)')]
        [string]
        $value
    )

    process
    {
        return $([DataMaskingEntity]$PSBoundParameters)
    }
}
class DataMasking
{
    [DataMaskingEntity[]] $queryParams
    [DataMaskingEntity[]] $headers
}
function New-AzureNativeTypeApimanagementDataMasking
{
    param (
        [parameter(mandatory=$False,HelpMessage='Masking settings for Url query parameters)')]
        $queryParams,
        [parameter(mandatory=$False,HelpMessage='Masking settings for headers)')]
        $headers
    )

    process
    {
        return $([DataMasking]$PSBoundParameters)
    }
}
class BodyDiagnosticSettings
{
    [int] $bytes
}
function New-AzureNativeTypeApimanagementBodyDiagnosticSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Number of request body bytes to log.)')]
        [int]
        $bytes
    )

    process
    {
        return $([BodyDiagnosticSettings]$PSBoundParameters)
    }
}
class HttpMessageDiagnostic
{
    [DataMasking] $dataMasking
    [string[]] $headers
    [BodyDiagnosticSettings] $body
}
function New-AzureNativeTypeApimanagementHttpMessageDiagnostic
{
    param (
        [parameter(mandatory=$False,HelpMessage='Data masking settings.)')]
        [DataMasking]
        $dataMasking,
        [parameter(mandatory=$False,HelpMessage='Array of HTTP Headers to log.)')]
        [string[]]
        $headers,
        [parameter(mandatory=$False,HelpMessage='Body logging settings.)')]
        [BodyDiagnosticSettings]
        $body
    )

    process
    {
        return $([HttpMessageDiagnostic]$PSBoundParameters)
    }
}
class PipelineDiagnosticSettings
{
    [HttpMessageDiagnostic] $response
    [HttpMessageDiagnostic] $request
}
function New-AzureNativeTypeApimanagementPipelineDiagnosticSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Diagnostic settings for response.)')]
        [HttpMessageDiagnostic]
        $response,
        [parameter(mandatory=$False,HelpMessage='Diagnostic settings for request.)')]
        [HttpMessageDiagnostic]
        $request
    )

    process
    {
        return $([PipelineDiagnosticSettings]$PSBoundParameters)
    }
}
class SamplingSettings
{
    [ArgumentCompletions('fixed')]
    [string] $samplingType
    [int] $percentage
}
function New-AzureNativeTypeApimanagementSamplingSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Sampling type.)')]
        [string]
        [ValidateSet('fixed')]
        $samplingType,
        [parameter(mandatory=$False,HelpMessage='Rate of sampling for fixed-rate sampling.)')]
        [int]
        $percentage
    )

    process
    {
        return $([SamplingSettings]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementDiagnostic
{
    [Alias('azure_native_apimanagement_diagnostic')]
    param (
        [parameter(mandatory=$False,HelpMessage='Diagnostic settings for incoming/outgoing HTTP messages to the Backend)')]
        [PipelineDiagnosticSettings]
        $backend,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Sampling settings for Diagnostic.)')]
        [SamplingSettings]
        $sampling,
        [parameter(mandatory=$False,HelpMessage='The verbosity level applied to traces emitted by trace policies.)')]
        [string]
        [ValidateSet('verbose', 'information', 'error')]
        $verbosity,
        [parameter(mandatory=$False,HelpMessage='The format of the Operation Name for Application Insights telemetries. Default is Name.)')]
        [string]
        [ValidateSet('Name', 'Url')]
        $operationNameFormat,
        [parameter(mandatory=$False,HelpMessage='Diagnostic settings for incoming/outgoing HTTP messages to the Gateway.)')]
        [PipelineDiagnosticSettings]
        $frontend,
        [parameter(mandatory=$False,HelpMessage='Diagnostic identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $diagnosticId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Sets correlation protocol to use for Application Insights diagnostics.)')]
        [string]
        [ValidateSet('None', 'Legacy', 'W3C')]
        $httpCorrelationProtocol,
        [parameter(mandatory=$False,HelpMessage='Log the ClientIP. Default is false.)')]
        [bool]
        $logClientIp,
        [parameter(mandatory=$False,HelpMessage='Resource Id of a target logger.)')]
        [string]
        $loggerId,
        [parameter(mandatory=$False,HelpMessage='Specifies for what type of messages sampling settings should not apply.)')]
        [string]
        [ValidateSet('allErrors')]
        $alwaysLog,
        [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:apimanagement:Diagnostic")

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementOpenIdConnectProvider
{
    [Alias('azure_native_apimanagement_openidconnectprovider')]
    param (
        [parameter(mandatory=$False,HelpMessage='Metadata endpoint URI.)')]
        [string]
        $metadataEndpoint,
        [parameter(mandatory=$False,HelpMessage='User-friendly OpenID Connect Provider name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='User-friendly description of OpenID Connect Provider.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Client Secret of developer console which is the client application.)')]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='Client ID of developer console which is the client application.)')]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the OpenID Connect Provider.)')]
        [string]
        $opid,
        [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:apimanagement:OpenIdConnectProvider")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementGatewayApiEntityTag
{
    [Alias('azure_native_apimanagement_gatewayapientitytag')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='Provisioning state.)')]
        $provisioningState,
        [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:apimanagement:GatewayApiEntityTag")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementIdentityProvider
{
    [Alias('azure_native_apimanagement_identityprovider')]
    param (
        [parameter(mandatory=$False,HelpMessage='Identity Provider Type identifier.)')]
        [string]
        [ValidateSet('facebook', 'google', 'microsoft', 'twitter', 'aad', 'aadB2C')]
        $type,
        [parameter(mandatory=$False,HelpMessage='OpenID Connect discovery endpoint hostname for AAD or AAD B2C.)')]
        [string]
        $authority,
        [parameter(mandatory=$False,HelpMessage='List of Allowed Tenants when configuring Azure Active Directory login.)')]
        [string[]]
        $allowedTenants,
        [parameter(mandatory=$False,HelpMessage='Password Reset Policy Name. Only applies to AAD B2C Identity Provider.)')]
        [string]
        $passwordResetPolicyName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Client secret of the Application in external Identity Provider, used to authenticate login request. For example, it is App Secret for Facebook login, API Key for Google login, Public Key for Microsoft. This property will not be filled on ''GET'' operations! Use ''/listSecrets'' POST request to get the value.)')]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='Client Id of the Application in the external Identity Provider. It is App ID for Facebook login, Client ID for Google login, App ID for Microsoft.)')]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='Signin Policy Name. Only applies to AAD B2C Identity Provider.)')]
        [string]
        $signinPolicyName,
        [parameter(mandatory=$False,HelpMessage='Signup Policy Name. Only applies to AAD B2C Identity Provider.)')]
        [string]
        $signupPolicyName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The TenantId to use instead of Common when logging into Active Directory)')]
        [string]
        $signinTenant,
        [parameter(mandatory=$False,HelpMessage='Profile Editing Policy Name. Only applies to AAD B2C Identity Provider.)')]
        [string]
        $profileEditingPolicyName,
        [parameter(mandatory=$False,HelpMessage='Identity Provider Type identifier.)')]
        [string]
        $identityProviderName,
        [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:apimanagement:IdentityProvider")

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementNotificationRecipientEmail
{
    [Alias('azure_native_apimanagement_notificationrecipientemail')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Email identifier.)')]
        [string]
        $email,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Notification Name Identifier.)')]
        [string]
        $notificationName,
        [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:apimanagement:NotificationRecipientEmail")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementGroupUser
{
    [Alias('azure_native_apimanagement_groupuser')]
    param (
        [parameter(mandatory=$False,HelpMessage='Group identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $groupId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='User identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:GroupUser")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementProductGroup
{
    [Alias('azure_native_apimanagement_productgroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='Group identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $groupId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ProductGroup")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementGatewayHostnameConfiguration
{
    [Alias('azure_native_apimanagement_gatewayhostnameconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='Identifier of Certificate entity that will be used for TLS connection establishment)')]
        [string]
        $certificateId,
        [parameter(mandatory=$False,HelpMessage='Specifies if TLS 1.0 is supported)')]
        [bool]
        $tls10Enabled,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='Gateway hostname configuration identifier. Must be unique in the scope of parent Gateway entity.)')]
        [string]
        $hcId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Hostname value. Supports valid domain name, partial or full wildcard)')]
        [string]
        $hostname,
        [parameter(mandatory=$False,HelpMessage='Specifies if HTTP/2.0 is supported)')]
        [bool]
        $http2Enabled,
        [parameter(mandatory=$False,HelpMessage='Determines whether gateway requests client certificate)')]
        [bool]
        $negotiateClientCertificate,
        [parameter(mandatory=$False,HelpMessage='Specifies if TLS 1.1 is supported)')]
        [bool]
        $tls11Enabled,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:GatewayHostnameConfiguration")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class VirtualNetworkConfiguration
{
    [string] $subnetResourceId
}
function New-AzureNativeTypeApimanagementVirtualNetworkConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The full resource ID of a subnet in a virtual network to deploy the API Management service in.)')]
        [string]
        $subnetResourceId
    )

    process
    {
        return $([VirtualNetworkConfiguration]$PSBoundParameters)
    }
}
class ApiVersionConstraint
{
    [string] $minApiVersion
}
function New-AzureNativeTypeApimanagementApiVersionConstraint
{
    param (
        [parameter(mandatory=$False,HelpMessage='Limit control plane API calls to API Management service with version equal to or newer than this value.)')]
        [string]
        $minApiVersion
    )

    process
    {
        return $([ApiVersionConstraint]$PSBoundParameters)
    }
}
class ApiManagementServiceIdentity
{
    [ArgumentCompletions('SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None')]
    [string] $type
    [object] $userAssignedIdentities
}
class UserIdentityProperties
{
    [string] $clientId
    [string] $principalId
}
function New-AzureNativeTypeApimanagementUserIdentityProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The client id of user assigned identity.)')]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='The principal id of user assigned identity.)')]
        [string]
        $principalId
    )

    process
    {
        return $([UserIdentityProperties]$PSBoundParameters)
    }
}
function New-AzureNativeTypeApimanagementApiManagementServiceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of identity used for the resource. The type ''SystemAssigned, UserAssigned'' includes both an implicitly created identity and a set of user assigned identities. The type ''None'' will remove any identities from the service.)')]
        [string]
        [ValidateSet('SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The list of user identities associated with the resource. The user identity
dictionary key references will be ARM resource ids in the form:
''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
    providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}''.)'
)]
        [UserIdentityProperties]
        $userAssignedIdentities
    )

    process
    {
        return $([ApiManagementServiceIdentity]$PSBoundParameters)
    }
}
class ApiManagementServiceSkuProperties
{
    [int] $capacity
    [ArgumentCompletions('Developer', 'Standard', 'Premium', 'Basic', 'Consumption', 'Isolated')]
    [string] $name
}
function New-AzureNativeTypeApimanagementApiManagementServiceSkuProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0.)')]
        [int]
        $capacity,
        [parameter(mandatory=$False,HelpMessage='Name of the Sku.)')]
        [string]
        [ValidateSet('Developer', 'Standard', 'Premium', 'Basic', 'Consumption', 'Isolated')]
        $name
    )

    process
    {
        return $([ApiManagementServiceSkuProperties]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementApiManagementService
{
    [Alias('azure_native_apimanagement_apimanagementservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='Virtual network configuration of the API Management service.)')]
        [VirtualNetworkConfiguration]
        $virtualNetworkConfiguration,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Email address from which the notification will be sent.)')]
        [string]
        $notificationSenderEmail,
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Additional datacenter locations of the API Management service.)')]
        $additionalLocations,
        [parameter(mandatory=$False,HelpMessage='The type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only.)')]
        [string]
        [ValidateSet('None', 'External', 'Internal')]
        $virtualNetworkType,
        [parameter(mandatory=$False,HelpMessage='Custom properties of the API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be used to disable just TLS 1.1 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for communications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be used to enable HTTP2 protocol on an API Management service.</br>Not specifying any of these properties on PATCH operation will reset omitted properties'' values to their defaults. For all the settings except Http2 the default value is `True` if the service was created on or before April 1st 2018 and `False` otherwise. Http2 setting''s default value is `False`.</br></br>You can disable any of next ciphers by using settings `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default value is `true` for them. Note: next ciphers can''t be disabled since they are required by Azure CloudService internal components: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384)')]
        [hashtable]
        $customProperties,
        [parameter(mandatory=$False,HelpMessage='Control Plane Apis version constraint for the API Management service.)')]
        [ApiVersionConstraint]
        $apiVersionConstraint,
        [parameter(mandatory=$False,HelpMessage='Publisher name.)')]
        [string]
        $publisherName,
        [parameter(mandatory=$False,HelpMessage='Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True all other properties will be ignored.)')]
        [bool]
        $restore,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in master region.)')]
        [bool]
        $disableGateway,
        [parameter(mandatory=$False,HelpMessage='List of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10.)')]
        $certificates,
        [parameter(mandatory=$False,HelpMessage='Property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway.)')]
        [bool]
        $enableClientCertificate,
        [parameter(mandatory=$False,HelpMessage='Managed service identity of the Api Management service.)')]
        [ApiManagementServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Publisher email.)')]
        [string]
        $publisherEmail,
        [parameter(mandatory=$False,HelpMessage='SKU properties of the API Management service.)')]
        [ApiManagementServiceSkuProperties]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Custom hostname configuration of the API Management service.)')]
        $hostnameConfigurations,
        [parameter(mandatory=$False,HelpMessage='A list of availability zones denoting where the resource needs to come from.)')]
        [string[]]
        $zones,
        [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:apimanagement:ApiManagementService")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiRelease
{
    [Alias('azure_native_apimanagement_apirelease')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Release identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $releaseId,
        [parameter(mandatory=$False,HelpMessage='Identifier of the API the release belongs to.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Release Notes)')]
        [string]
        $notes,
        [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:apimanagement:ApiRelease")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiSchema
{
    [Alias('azure_native_apimanagement_apischema')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Types definitions. Used for Swagger/OpenAPI schemas only, null otherwise.)')]
        $definitions,
        [parameter(mandatory=$False,HelpMessage='Json escaped string defining the document representing the Schema. Used for schemas other than Swagger/OpenAPI.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Schema identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $schemaId,
        [parameter(mandatory=$False,HelpMessage='Must be a valid a media type used in a Content-Type header as defined in the RFC 2616. Media type of the schema document (e.g. application/json, application/xml). </br> - `Swagger` Schema use `application/vnd.ms-azure-apim.swagger.definitions+json` </br> - `WSDL` Schema use `application/vnd.ms-azure-apim.xsd+xml` </br> - `OpenApi` Schema use `application/vnd.oai.openapi.components+json` </br> - `WADL Schema` use `application/vnd.ms-azure-apim.wadl.grammars+xml`.)')]
        [string]
        $contentType,
        [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:apimanagement:ApiSchema")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementGroup
{
    [Alias('azure_native_apimanagement_group')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Group description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Group type.)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Group identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $groupId,
        [parameter(mandatory=$False,HelpMessage='Identifier of the external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory `aad://<tenant>.onmicrosoft.com/groups/<group object id>`; otherwise the value is null.)')]
        [string]
        $externalId,
        [parameter(mandatory=$False,HelpMessage='Group name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [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:apimanagement:Group")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiDiagnostic
{
    [Alias('azure_native_apimanagement_apidiagnostic')]
    param (
        [parameter(mandatory=$False,HelpMessage='Diagnostic settings for incoming/outgoing HTTP messages to the Backend)')]
        [PipelineDiagnosticSettings]
        $backend,
        [parameter(mandatory=$False,HelpMessage='Diagnostic settings for incoming/outgoing HTTP messages to the Gateway.)')]
        [PipelineDiagnosticSettings]
        $frontend,
        [parameter(mandatory=$False,HelpMessage='Diagnostic identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $diagnosticId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Specifies for what type of messages sampling settings should not apply.)')]
        [string]
        [ValidateSet('allErrors')]
        $alwaysLog,
        [parameter(mandatory=$False,HelpMessage='The verbosity level applied to traces emitted by trace policies.)')]
        [string]
        [ValidateSet('verbose', 'information', 'error')]
        $verbosity,
        [parameter(mandatory=$False,HelpMessage='Sampling settings for Diagnostic.)')]
        [SamplingSettings]
        $sampling,
        [parameter(mandatory=$False,HelpMessage='Log the ClientIP. Default is false.)')]
        [bool]
        $logClientIp,
        [parameter(mandatory=$False,HelpMessage='Resource Id of a target logger.)')]
        [string]
        $loggerId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Sets correlation protocol to use for Application Insights diagnostics.)')]
        [string]
        [ValidateSet('None', 'Legacy', 'W3C')]
        $httpCorrelationProtocol,
        [parameter(mandatory=$False,HelpMessage='The format of the Operation Name for Application Insights telemetries. Default is Name.)')]
        [string]
        [ValidateSet('Name', 'Url')]
        $operationNameFormat,
        [parameter(mandatory=$False,HelpMessage='API identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $apiId,
        [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:apimanagement:ApiDiagnostic")

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementPolicy
{
    [Alias('azure_native_apimanagement_policy')]
    param (
        [parameter(mandatory=$False,HelpMessage='Format of the policyContent.)')]
        [string]
        [ValidateSet('xml', 'xml-link', 'rawxml', 'rawxml-link')]
        $format,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='Contents of the Policy as defined by the format.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:Policy")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementUser
{
    [Alias('azure_native_apimanagement_user')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='User Password. If no value is provided, a default password is generated.)')]
        [string]
        $password,
        [parameter(mandatory=$False,HelpMessage='Collection of user identities.)')]
        $identities,
        [parameter(mandatory=$False,HelpMessage='Email address. Must not be empty and must be unique within the service instance.)')]
        [string]
        $email,
        [parameter(mandatory=$False,HelpMessage='Account state. Specifies whether the user is active or not. Blocked users are unable to sign into the developer portal or call any APIs of subscribed products. Default state is Active.)')]
        [string]
        [ValidateSet('active', 'blocked', 'pending', 'deleted')]
        $state,
        [parameter(mandatory=$False,HelpMessage='Send an Email notification to the User.)')]
        [bool]
        $notify,
        [parameter(mandatory=$False,HelpMessage='Last name.)')]
        [string]
        $lastName,
        [parameter(mandatory=$False,HelpMessage='Determines the type of confirmation e-mail that will be sent to the newly created user.)')]
        [string]
        [ValidateSet('signup', 'invite')]
        $confirmation,
        [parameter(mandatory=$False,HelpMessage='User identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='Optional note about a user set by the administrator.)')]
        [string]
        $note,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='First name.)')]
        [string]
        $firstName,
        [parameter(mandatory=$False,HelpMessage='Determines the type of application which send the create user request. Default is legacy portal.)')]
        [string]
        [ValidateSet('portal', 'developerPortal')]
        $appType,
        [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:apimanagement:User")

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiTagDescription
{
    [Alias('azure_native_apimanagement_apitagdescription')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Description of the Tag.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Tag description identifier. Used when creating tagDescription for API/Tag association. Based on API and Tag names.)')]
        [string]
        $tagDescriptionId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Absolute URL of external resources describing the tag.)')]
        [string]
        $externalDocsUrl,
        [parameter(mandatory=$False,HelpMessage='Description of the external resources describing the tag.)')]
        [string]
        $externalDocsDescription,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [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:apimanagement:ApiTagDescription")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ParameterContract
{
    [string] $type
    [string] $description
    [bool] $required
    [string] $name
    [string[]] $values
    [string] $defaultValue
}
function New-AzureNativeTypeApimanagementParameterContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='Parameter type.)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Parameter description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Specifies whether parameter is required or not.)')]
        [bool]
        $required,
        [parameter(mandatory=$False,HelpMessage='Parameter name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Parameter values.)')]
        [string[]]
        $values,
        [parameter(mandatory=$False,HelpMessage='Default parameter value.)')]
        [string]
        $defaultValue
    )

    process
    {
        return $([ParameterContract]$PSBoundParameters)
    }
}
class RepresentationContract
{
    [ParameterContract[]] $formParameters
    [string] $contentType
    [string] $schemaId
    [string] $typeName
    [string] $sample
}
function New-AzureNativeTypeApimanagementRepresentationContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='Collection of form parameters. Required if ''contentType'' value is either ''application/x-www-form-urlencoded'' or ''multipart/form-data''..)')]
        $formParameters,
        [parameter(mandatory=$False,HelpMessage='Specifies a registered or custom content type for this representation, e.g. application/xml.)')]
        [string]
        $contentType,
        [parameter(mandatory=$False,HelpMessage='Schema identifier. Applicable only if ''contentType'' value is neither ''application/x-www-form-urlencoded'' nor ''multipart/form-data''.)')]
        [string]
        $schemaId,
        [parameter(mandatory=$False,HelpMessage='Type name defined by the schema. Applicable only if ''contentType'' value is neither ''application/x-www-form-urlencoded'' nor ''multipart/form-data''.)')]
        [string]
        $typeName,
        [parameter(mandatory=$False,HelpMessage='An example of the representation.)')]
        [string]
        $sample
    )

    process
    {
        return $([RepresentationContract]$PSBoundParameters)
    }
}
class RequestContract
{
    [RepresentationContract[]] $representations
    [string] $description
    [ParameterContract[]] $queryParameters
    [ParameterContract[]] $headers
}
function New-AzureNativeTypeApimanagementRequestContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='Collection of operation request representations.)')]
        $representations,
        [parameter(mandatory=$False,HelpMessage='Operation request description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Collection of operation request query parameters.)')]
        $queryParameters,
        [parameter(mandatory=$False,HelpMessage='Collection of operation request headers.)')]
        $headers
    )

    process
    {
        return $([RequestContract]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementApiOperation
{
    [Alias('azure_native_apimanagement_apioperation')]
    param (
        [parameter(mandatory=$False,HelpMessage='Operation Policies)')]
        [string]
        $policies,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Collection of URL template parameters.)')]
        $templateParameters,
        [parameter(mandatory=$False,HelpMessage='An entity containing request details.)')]
        [RequestContract]
        $request,
        [parameter(mandatory=$False,HelpMessage='Operation identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $operationId,
        [parameter(mandatory=$False,HelpMessage='Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date})')]
        [string]
        $urlTemplate,
        [parameter(mandatory=$False,HelpMessage='A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.)')]
        [string]
        $method,
        [parameter(mandatory=$False,HelpMessage='Operation Name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Array of Operation responses.)')]
        $responses,
        [parameter(mandatory=$False,HelpMessage='Description of the operation. May include HTML formatting tags.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ApiOperation")

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementProduct
{
    [Alias('azure_native_apimanagement_product')]
    param (
        [parameter(mandatory=$False,HelpMessage='whether product is published or not. Published products are discoverable by users of developer portal. Non published products are visible only to administrators. Default state of Product is notPublished.)')]
        $state,
        [parameter(mandatory=$False,HelpMessage='Whether a product subscription is required for accessing APIs included in this product. If true, the product is referred to as "protected" and a valid subscription key is required for a request to an API included in the product to succeed. If false, the product is referred to as "open" and requests to an API included in the product can be made without a subscription key. If property is omitted when creating a new product it''s value is assumed to be true.)')]
        [bool]
        $subscriptionRequired,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Whether the number of subscriptions a user can have to this product at the same time. Set to null or omit to allow unlimited per user subscriptions. Can be present only if subscriptionRequired property is present and has a value of false.)')]
        [int]
        $subscriptionsLimit,
        [parameter(mandatory=$False,HelpMessage='Product terms of use. Developers trying to subscribe to the product will be presented and required to accept these terms before they can complete the subscription process.)')]
        [string]
        $terms,
        [parameter(mandatory=$False,HelpMessage='whether subscription approval is required. If false, new subscriptions will be approved automatically enabling developers to call the product''s APIs immediately after subscribing. If true, administrators must manually approve the subscription before the developer can any of the product''s APIs. Can be present only if subscriptionRequired property is present and has a value of false.)')]
        [bool]
        $approvalRequired,
        [parameter(mandatory=$False,HelpMessage='Product name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Product description. May include HTML formatting tags.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [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:apimanagement:Product")

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementLogger
{
    [Alias('azure_native_apimanagement_logger')]
    param (
        [parameter(mandatory=$False,HelpMessage='Logger description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The name and SendRule connection string of the event hub for azureEventHub logger.
Instrumentation key for applicationInsights logger.)'
)]
        [hashtable]
        $credentials,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Whether records are buffered in the logger before publishing. Default is assumed to be true.)')]
        [bool]
        $isBuffered,
        [parameter(mandatory=$False,HelpMessage='Logger identifier. Must be unique in the API Management service instance.)')]
        [string]
        $loggerId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Azure Resource Id of a log target (either Azure Event Hub resource or Azure Application Insights resource).)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='Logger type.)')]
        [string]
        [ValidateSet('azureEventHub', 'applicationInsights', 'azureMonitor')]
        $loggerType,
        [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:apimanagement:Logger")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementSubscription
{
    [Alias('azure_native_apimanagement_subscription')]
    param (
        [parameter(mandatory=$False,HelpMessage='Determines whether tracing can be enabled)')]
        [bool]
        $allowTracing,
        [parameter(mandatory=$False,HelpMessage='Initial subscription state. If no value is specified, subscription is created with Submitted state. Possible states are * active – the subscription is active, * suspended – the subscription is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, * expired – the subscription reached its expiration date and was deactivated.)')]
        $state,
        [parameter(mandatory=$False,HelpMessage='Secondary subscription key. If not specified during request key will be generated automatically.)')]
        [string]
        $secondaryKey,
        [parameter(mandatory=$False,HelpMessage='Scope like /products/{productId} or /apis or /apis/{apiId}.)')]
        [string]
        $scope,
        [parameter(mandatory=$False,HelpMessage='Notify change in Subscription State.
 - If false, do not send any email notification for change of state of subscription
 - If true, send email notification of change of state of subscription )'
)]
        [bool]
        $notify,
        [parameter(mandatory=$False,HelpMessage='User (user id path) for whom subscription is being created in form /users/{userId})')]
        [string]
        $ownerId,
        [parameter(mandatory=$False,HelpMessage='Subscription name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Primary subscription key. If not specified during request key will be generated automatically.)')]
        [string]
        $primaryKey,
        [parameter(mandatory=$False,HelpMessage='Determines the type of application which send the create user request. Default is legacy publisher portal.)')]
        [string]
        $appType,
        [parameter(mandatory=$False,HelpMessage='Subscription entity Identifier. The entity represents the association between a user and a product in API Management.)')]
        [string]
        $sid,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:Subscription")

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementApiVersionSet
{
    [Alias('azure_native_apimanagement_apiversionset')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of API Version Set)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Name of query parameter that indicates the API Version if versioningScheme is set to `query`.)')]
        [string]
        $versionQueryName,
        [parameter(mandatory=$False,HelpMessage='Api Version Set identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $versionSetId,
        [parameter(mandatory=$False,HelpMessage='Description of API Version Set.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.)')]
        [string]
        $versionHeaderName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='An value that determines where the API Version identifier will be located in a HTTP request.)')]
        [string]
        [ValidateSet('Segment', 'Query', 'Header')]
        $versioningScheme,
        [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:apimanagement:ApiVersionSet")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementProductPolicy
{
    [Alias('azure_native_apimanagement_productpolicy')]
    param (
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='Format of the policyContent.)')]
        [string]
        [ValidateSet('xml', 'xml-link', 'rawxml', 'rawxml-link')]
        $format,
        [parameter(mandatory=$False,HelpMessage='Contents of the Policy as defined by the format.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The identifier of the Policy.)')]
        [string]
        $policyId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [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:apimanagement:ProductPolicy")

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementTag
{
    [Alias('azure_native_apimanagement_tag')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:Tag")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementCache
{
    [Alias('azure_native_apimanagement_cache')]
    param (
        [parameter(mandatory=$False,HelpMessage='Runtime connection string to cache)')]
        [string]
        $connectionString,
        [parameter(mandatory=$False,HelpMessage='Cache description)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Location identifier to use cache from (should be either ''default'' or valid Azure region identifier))')]
        [string]
        $useFromLocation,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Original uri of entity in external system cache points to)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the Cache entity. Cache identifier (should be either ''default'' or valid Azure region identifier).)')]
        [string]
        $cacheId,
        [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:apimanagement:Cache")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementNotificationRecipientUser
{
    [Alias('azure_native_apimanagement_notificationrecipientuser')]
    param (
        [parameter(mandatory=$False,HelpMessage='User identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $userId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Notification Name Identifier.)')]
        [string]
        $notificationName,
        [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:apimanagement:NotificationRecipientUser")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementTagByProduct
{
    [Alias('azure_native_apimanagement_tagbyproduct')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:TagByProduct")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementAuthorizationServer
{
    [Alias('azure_native_apimanagement_authorizationserver')]
    param (
        [parameter(mandatory=$False,HelpMessage='Access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.)')]
        [string]
        $defaultScope,
        [parameter(mandatory=$False,HelpMessage='Additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.)')]
        $tokenBodyParameters,
        [parameter(mandatory=$False,HelpMessage='OAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2.)')]
        [string]
        $authorizationEndpoint,
        [parameter(mandatory=$False,HelpMessage='Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.)')]
        [string]
        $resourceOwnerPassword,
        [parameter(mandatory=$False,HelpMessage='Optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced.)')]
        [string]
        $clientRegistrationEndpoint,
        [parameter(mandatory=$False,HelpMessage='OAuth token endpoint. Contains absolute URI to entity being referenced.)')]
        [string]
        $tokenEndpoint,
        [parameter(mandatory=$False,HelpMessage='User-friendly authorization server name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Form of an authorization grant, which the client uses to request the access token.)')]
        $grantTypes,
        [parameter(mandatory=$False,HelpMessage='Description of the authorization server. Can contain HTML formatting tags.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Client or app secret registered with this authorization server. This property will not be filled on ''GET'' operations! Use ''/listSecrets'' POST request to get the value.)')]
        [string]
        $clientSecret,
        [parameter(mandatory=$False,HelpMessage='HTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.)')]
        $authorizationMethods,
        [parameter(mandatory=$False,HelpMessage='Identifier of the authorization server.)')]
        [string]
        $authsid,
        [parameter(mandatory=$False,HelpMessage='Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.)')]
        [string]
        $resourceOwnerUsername,
        [parameter(mandatory=$False,HelpMessage='If true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.)')]
        [bool]
        $supportState,
        [parameter(mandatory=$False,HelpMessage='Specifies the mechanism by which access token is passed to the API. )')]
        $bearerTokenSendingMethods,
        [parameter(mandatory=$False,HelpMessage='Client or app id registered with this authorization server.)')]
        [string]
        $clientId,
        [parameter(mandatory=$False,HelpMessage='Method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.)')]
        $clientAuthenticationMethod,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:AuthorizationServer")

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementPolicyFragment
{
    [Alias('azure_native_apimanagement_policyfragment')]
    param (
        [parameter(mandatory=$False,HelpMessage='A resource identifier.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Policy fragment description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Format of the policy fragment content.)')]
        [string]
        [ValidateSet('xml', 'rawxml')]
        $format,
        [parameter(mandatory=$False,HelpMessage='Contents of the policy fragment.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [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:apimanagement:PolicyFragment")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementNamedValue
{
    [Alias('azure_native_apimanagement_namedvalue')]
    param (
        [parameter(mandatory=$False,HelpMessage='Unique name of NamedValue. It may contain only letters, digits, period, dash, and underscore characters.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Optional tags that when provided can be used to filter the NamedValue list.)')]
        [string[]]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Determines whether the value is a secret and should be encrypted or not. Default value is false.)')]
        [bool]
        $secret,
        [parameter(mandatory=$False,HelpMessage='KeyVault location details of the namedValue.)')]
        [KeyVaultContractCreateProperties]
        $keyVault,
        [parameter(mandatory=$False,HelpMessage='Value of the NamedValue. Can contain policy expressions. It may not be empty or consist only of whitespace. This property will not be filled on ''GET'' operations! Use ''/listSecrets'' POST request to get the value.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Identifier of the NamedValue.)')]
        [string]
        $namedValueId,
        [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:apimanagement:NamedValue")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class X509CertificateName
{
    [string] $name
    [string] $issuerCertificateThumbprint
}
function New-AzureNativeTypeApimanagementX509CertificateName
{
    param (
        [parameter(mandatory=$False,HelpMessage='Common Name of the Certificate.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Thumbprint for the Issuer of the Certificate.)')]
        [string]
        $issuerCertificateThumbprint
    )

    process
    {
        return $([X509CertificateName]$PSBoundParameters)
    }
}
class BackendServiceFabricClusterProperties
{
    [string[]] $serverCertificateThumbprints
    [X509CertificateName[]] $serverX509Names
    [string[]] $managementEndpoints
    [string] $clientCertificatethumbprint
    [string] $clientCertificateId
    [int] $maxPartitionResolutionRetries
}
function New-AzureNativeTypeApimanagementBackendServiceFabricClusterProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Thumbprints of certificates cluster management service uses for tls communication)')]
        [string[]]
        $serverCertificateThumbprints,
        [parameter(mandatory=$False,HelpMessage='Server X509 Certificate Names Collection)')]
        $serverX509Names,
        [parameter(mandatory=$False,HelpMessage='The cluster management endpoint.)')]
        [string[]]
        $managementEndpoints,
        [parameter(mandatory=$False,HelpMessage='The client certificate thumbprint for the management endpoint. Will be ignored if certificatesIds are provided)')]
        [string]
        $clientCertificatethumbprint,
        [parameter(mandatory=$False,HelpMessage='The client certificate id for the management endpoint.)')]
        [string]
        $clientCertificateId,
        [parameter(mandatory=$False,HelpMessage='Maximum number of retries while attempting resolve the partition.)')]
        [int]
        $maxPartitionResolutionRetries
    )

    process
    {
        return $([BackendServiceFabricClusterProperties]$PSBoundParameters)
    }
}
class BackendProperties
{
    [BackendServiceFabricClusterProperties] $serviceFabricCluster
}
function New-AzureNativeTypeApimanagementBackendProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Backend Service Fabric Cluster Properties)')]
        [BackendServiceFabricClusterProperties]
        $serviceFabricCluster
    )

    process
    {
        return $([BackendProperties]$PSBoundParameters)
    }
}
class BackendAuthorizationHeaderCredentials
{
    [string] $parameter
    [string] $scheme
}
function New-AzureNativeTypeApimanagementBackendAuthorizationHeaderCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='Authentication Parameter value.)')]
        [string]
        $parameter,
        [parameter(mandatory=$False,HelpMessage='Authentication Scheme name.)')]
        [string]
        $scheme
    )

    process
    {
        return $([BackendAuthorizationHeaderCredentials]$PSBoundParameters)
    }
}
class BackendCredentialsContract
{
    [object] $header
    [string[]] $certificate
    [object] $query
    [string[]] $certificateIds
    [BackendAuthorizationHeaderCredentials] $authorization
}
function New-AzureNativeTypeApimanagementBackendCredentialsContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='Header Parameter description.)')]
        [object]
        $header,
        [parameter(mandatory=$False,HelpMessage='List of Client Certificate Thumbprints. Will be ignored if certificatesIds are provided.)')]
        [string[]]
        $certificate,
        [parameter(mandatory=$False,HelpMessage='Query Parameter description.)')]
        [object]
        $query,
        [parameter(mandatory=$False,HelpMessage='List of Client Certificate Ids.)')]
        [string[]]
        $certificateIds,
        [parameter(mandatory=$False,HelpMessage='Authorization header authentication)')]
        [BackendAuthorizationHeaderCredentials]
        $authorization
    )

    process
    {
        return $([BackendCredentialsContract]$PSBoundParameters)
    }
}
class BackendTlsProperties
{
    [bool] $validateCertificateChain
    [bool] $validateCertificateName
}
function New-AzureNativeTypeApimanagementBackendTlsProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for this backend host.)')]
        [bool]
        $validateCertificateChain,
        [parameter(mandatory=$False,HelpMessage='Flag indicating whether SSL certificate name validation should be done when using self-signed certificates for this backend host.)')]
        [bool]
        $validateCertificateName
    )

    process
    {
        return $([BackendTlsProperties]$PSBoundParameters)
    }
}
class BackendProxyContract
{
    [string] $username
    [string] $url
    [string] $password
}
function New-AzureNativeTypeApimanagementBackendProxyContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='Username to connect to the WebProxy server)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='WebProxy Server AbsoluteUri property which includes the entire URI stored in the Uri instance, including all fragments and query strings.)')]
        [string]
        $url,
        [parameter(mandatory=$False,HelpMessage='Password to connect to the WebProxy Server)')]
        [string]
        $password
    )

    process
    {
        return $([BackendProxyContract]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementBackend
{
    [Alias('azure_native_apimanagement_backend')]
    param (
        [parameter(mandatory=$False,HelpMessage='Backend Properties contract)')]
        [BackendProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Backend Credentials Contract Properties)')]
        [BackendCredentialsContract]
        $credentials,
        [parameter(mandatory=$False,HelpMessage='Backend TLS Properties)')]
        [BackendTlsProperties]
        $tls,
        [parameter(mandatory=$False,HelpMessage='Runtime Url of the Backend.)')]
        [string]
        $url,
        [parameter(mandatory=$False,HelpMessage='Backend Title.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='Backend Proxy Contract Properties)')]
        [BackendProxyContract]
        $proxy,
        [parameter(mandatory=$False,HelpMessage='Identifier of the Backend entity. Must be unique in the current API Management service instance.)')]
        [string]
        $backendId,
        [parameter(mandatory=$False,HelpMessage='Management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.)')]
        [string]
        $resourceId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Backend Description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Backend communication protocol.)')]
        [string]
        [ValidateSet('http', 'soap')]
        $protocol,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:Backend")

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class OAuth2AuthenticationSettingsContract
{
    [string] $authorizationServerId
    [string] $scope
}
function New-AzureNativeTypeApimanagementOAuth2AuthenticationSettingsContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='OAuth authorization server identifier.)')]
        [string]
        $authorizationServerId,
        [parameter(mandatory=$False,HelpMessage='operations scope.)')]
        [string]
        $scope
    )

    process
    {
        return $([OAuth2AuthenticationSettingsContract]$PSBoundParameters)
    }
}
class OpenIdAuthenticationSettingsContract
{
    [string[]] $bearerTokenSendingMethods
    [string] $openidProviderId
}
function New-AzureNativeTypeApimanagementOpenIdAuthenticationSettingsContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='How to send token to the server.)')]
        $bearerTokenSendingMethods,
        [parameter(mandatory=$False,HelpMessage='OAuth authorization server identifier.)')]
        [string]
        $openidProviderId
    )

    process
    {
        return $([OpenIdAuthenticationSettingsContract]$PSBoundParameters)
    }
}
class AuthenticationSettingsContract
{
    [OAuth2AuthenticationSettingsContract] $oAuth2
    [OpenIdAuthenticationSettingsContract] $openid
}
function New-AzureNativeTypeApimanagementAuthenticationSettingsContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='OAuth2 Authentication settings)')]
        [OAuth2AuthenticationSettingsContract]
        $oAuth2,
        [parameter(mandatory=$False,HelpMessage='OpenID Connect Authentication Settings)')]
        [OpenIdAuthenticationSettingsContract]
        $openid
    )

    process
    {
        return $([AuthenticationSettingsContract]$PSBoundParameters)
    }
}
class SubscriptionKeyParameterNamesContract
{
    [string] $header
    [string] $query
}
function New-AzureNativeTypeApimanagementSubscriptionKeyParameterNamesContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='Subscription key header name.)')]
        [string]
        $header,
        [parameter(mandatory=$False,HelpMessage='Subscription key query string parameter name.)')]
        [string]
        $query
    )

    process
    {
        return $([SubscriptionKeyParameterNamesContract]$PSBoundParameters)
    }
}
class ApiVersionSetContractDetails
{
    [string] $id
    [string] $description
    [string] $versioningScheme
    [string] $name
    [string] $versionQueryName
    [string] $versionHeaderName
}
function New-AzureNativeTypeApimanagementApiVersionSetContractDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Identifier for existing API Version Set. Omit this value to create a new Version Set.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='Description of API Version Set.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='An value that determines where the API Version identifier will be located in a HTTP request.)')]
        [string]
        $versioningScheme,
        [parameter(mandatory=$False,HelpMessage='The display Name of the API Version Set.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Name of query parameter that indicates the API Version if versioningScheme is set to `query`.)')]
        [string]
        $versionQueryName,
        [parameter(mandatory=$False,HelpMessage='Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.)')]
        [string]
        $versionHeaderName
    )

    process
    {
        return $([ApiVersionSetContractDetails]$PSBoundParameters)
    }
}
class ApiCreateOrUpdatePropertiesWsdlSelector
{
    [string] $wsdlEndpointName
    [string] $wsdlServiceName
}
function New-AzureNativeTypeApimanagementApiCreateOrUpdatePropertiesWsdlSelector
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of endpoint(port) to import from WSDL)')]
        [string]
        $wsdlEndpointName,
        [parameter(mandatory=$False,HelpMessage='Name of service to import from WSDL)')]
        [string]
        $wsdlServiceName
    )

    process
    {
        return $([ApiCreateOrUpdatePropertiesWsdlSelector]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementApi
{
    [Alias('azure_native_apimanagement_api')]
    param (
        [parameter(mandatory=$False,HelpMessage='Indicates the Version identifier of the API if the API is versioned)')]
        [string]
        $apiVersion,
        [parameter(mandatory=$False,HelpMessage='Type of Api to create.
 * `http` creates a SOAP to REST API
 * `soap` creates a SOAP pass-through API .)'
)]
        [string]
        [ValidateSet('http', 'soap')]
        $soapApiType,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.)')]
        [string]
        $path,
        [parameter(mandatory=$False,HelpMessage='Collection of authentication settings included into this API.)')]
        [AuthenticationSettingsContract]
        $authenticationSettings,
        [parameter(mandatory=$False,HelpMessage='Type of API.)')]
        [string]
        [ValidateSet('http', 'soap')]
        $apiType,
        [parameter(mandatory=$False,HelpMessage='Protocols over which API is made available.)')]
        [SubscriptionKeyParameterNamesContract]
        $subscriptionKeyParameterNames,
        [parameter(mandatory=$False,HelpMessage='API name. Must be 1 to 300 characters long.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='Format of the Content in which the API is getting imported.)')]
        [string]
        [ValidateSet('wadl-xml', 'wadl-link-json', 'swagger-json', 'swagger-link-json', 'wsdl', 'wsdl-link', 'openapi', 'openapi+json', 'openapi-link', 'openapi+json-link')]
        $format,
        [parameter(mandatory=$False,HelpMessage='A resource identifier for the related ApiVersionSet.)')]
        [string]
        $apiVersionSetId,
        [parameter(mandatory=$False,HelpMessage='Specifies whether an API or Product subscription is required for accessing the API.)')]
        [bool]
        $subscriptionRequired,
        [parameter(mandatory=$False,HelpMessage='API identifier of the source API.)')]
        [string]
        $sourceApiId,
        [parameter(mandatory=$False,HelpMessage='Describes on which protocols the operations in this API can be invoked.)')]
        $protocols,
        [parameter(mandatory=$False,HelpMessage='Description of the API. May include HTML formatting tags.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='Description of the Api Version.)')]
        [string]
        $apiVersionDescription,
        [parameter(mandatory=$False,HelpMessage='Indicates if API revision is current api revision.)')]
        [bool]
        $isCurrent,
        [parameter(mandatory=$False,HelpMessage='Description of the Api Revision.)')]
        [string]
        $apiRevisionDescription,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Version set details)')]
        [ApiVersionSetContractDetails]
        $apiVersionSet,
        [parameter(mandatory=$False,HelpMessage='Describes the Revision of the Api. If no value is provided, default revision 1 is created)')]
        [string]
        $apiRevision,
        [parameter(mandatory=$False,HelpMessage='Content value when Importing an API.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.)')]
        [string]
        $serviceUrl,
        [parameter(mandatory=$False,HelpMessage='Criteria to limit import of WSDL to a subset of the document.)')]
        [ApiCreateOrUpdatePropertiesWsdlSelector]
        $wsdlSelector,
        [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:apimanagement:Api")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ResourceLocationDataContract
{
    [string] $city
    [string] $countryOrRegion
    [string] $district
    [string] $name
}
function New-AzureNativeTypeApimanagementResourceLocationDataContract
{
    param (
        [parameter(mandatory=$False,HelpMessage='The city or locality where the resource is located.)')]
        [string]
        $city,
        [parameter(mandatory=$False,HelpMessage='The country or region where the resource is located.)')]
        [string]
        $countryOrRegion,
        [parameter(mandatory=$False,HelpMessage='The district, state, or province where the resource is located.)')]
        [string]
        $district,
        [parameter(mandatory=$False,HelpMessage='A canonical name for the geographic or physical location.)')]
        [string]
        $name
    )

    process
    {
        return $([ResourceLocationDataContract]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementGateway
{
    [Alias('azure_native_apimanagement_gateway')]
    param (
        [parameter(mandatory=$False,HelpMessage='Gateway location.)')]
        [ResourceLocationDataContract]
        $locationData,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Gateway description)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Gateway entity identifier. Must be unique in the current API Management service instance. Must not have value ''managed'')')]
        [string]
        $gatewayId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:Gateway")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementProductApi
{
    [Alias('azure_native_apimanagement_productapi')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Product identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $productId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:ProductApi")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $actionsRequired
    [string] $description
    [ArgumentCompletions('Pending', 'Approved', 'Rejected')]
    [string] $status
}
function New-AzureNativeTypeApimanagementPrivateLinkServiceConnectionState
{
    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)
    }
}
class PrivateEndpointConnectionRequestProperties
{
    [PrivateLinkServiceConnectionState] $privateLinkServiceConnectionState
}
function New-AzureNativeTypeApimanagementPrivateEndpointConnectionRequestProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState
    )

    process
    {
        return $([PrivateEndpointConnectionRequestProperties]$PSBoundParameters)
    }
}
function New-AzureNativeApimanagementPrivateEndpointConnectionByName
{
    [Alias('azure_native_apimanagement_privateendpointconnectionbyname')]
    param (
        [parameter(mandatory=$False,HelpMessage='The connection state of the private endpoint connection.)')]
        [PrivateEndpointConnectionRequestProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Name of the private endpoint connection.)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='Private Endpoint Connection Resource Id.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:PrivateEndpointConnectionByName")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementTagByApi
{
    [Alias('azure_native_apimanagement_tagbyapi')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:TagByApi")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementContentItem
{
    [Alias('azure_native_apimanagement_contentitem')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Content type identifier.)')]
        [string]
        $contentTypeId,
        [parameter(mandatory=$False,HelpMessage='Content item identifier.)')]
        [string]
        $contentItemId,
        [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:apimanagement:ContentItem")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementSchema
{
    [Alias('azure_native_apimanagement_schema')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Free-form schema entity description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Schema Type. Immutable.)')]
        [string]
        [ValidateSet('xml', 'json')]
        $schemaType,
        [parameter(mandatory=$False,HelpMessage='Json-encoded string for non json-based schema.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Schema id identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $schemaId,
        [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:apimanagement:Schema")

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeApimanagementTagByOperation
{
    [Alias('azure_native_apimanagement_tagbyoperation')]
    param (
        [parameter(mandatory=$False,HelpMessage='Operation identifier within an API. Must be unique in the current API Management service instance.)')]
        [string]
        $operationId,
        [parameter(mandatory=$False,HelpMessage='The name of the API Management service.)')]
        [string]
        $serviceName,
        [parameter(mandatory=$False,HelpMessage='Tag identifier. Must be unique in the current API Management service instance.)')]
        [string]
        $tagId,
        [parameter(mandatory=$False,HelpMessage='API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.)')]
        [string]
        $apiId,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')]
        [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:apimanagement:TagByOperation")

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

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

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