pspulumiyaml.azurenative.logic.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountMap
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account map name.)')]
        [string]
        $mapName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["mapName"] = $mapName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountMap -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountAgreementContentCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account agreement name.)')]
        [string]
        $agreementName,
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter
    )

    process
    {
        $arguments = @{}
        $arguments["agreementName"] = $agreementName
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountAgreementContentCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListWorkflowCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName
    )

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listWorkflowCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType
    )

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

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListWorkflowRunActionExpressionTraces
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workflow action name.)')]
        [string]
        $actionName,
        [parameter(mandatory=$False,HelpMessage='The workflow run name.)')]
        [string]
        $runName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName
    )

    process
    {
        $arguments = @{}
        $arguments["actionName"] = $actionName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["runName"] = $runName
        $arguments["workflowName"] = $workflowName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listWorkflowRunActionExpressionTraces -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListWorkflowRunActionRepetitionExpressionTraces
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workflow action name.)')]
        [string]
        $actionName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workflow repetition.)')]
        [string]
        $repetitionName,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName,
        [parameter(mandatory=$False,HelpMessage='The workflow run name.)')]
        [string]
        $runName
    )

    process
    {
        $arguments = @{}
        $arguments["actionName"] = $actionName
        $arguments["repetitionName"] = $repetitionName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["runName"] = $runName
        $arguments["workflowName"] = $workflowName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listWorkflowRunActionRepetitionExpressionTraces -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationServiceEnvironmentManagedApi
{
    param (
        [parameter(mandatory=$False,HelpMessage='The integration service environment name.)')]
        [string]
        $integrationServiceEnvironmentName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The api name.)')]
        [string]
        $apiName
    )

    process
    {
        $arguments = @{}
        $arguments["apiName"] = $apiName
        $arguments["integrationServiceEnvironmentName"] = $integrationServiceEnvironmentName
        $arguments["resourceGroup"] = $resourceGroup

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationServiceEnvironmentManagedApi -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountCertificate
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account certificate name.)')]
        [string]
        $certificateName
    )

    process
    {
        $arguments = @{}
        $arguments["certificateName"] = $certificateName
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountCertificate -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetWorkflow
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getWorkflow -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountPartner
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account partner name.)')]
        [string]
        $partnerName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["partnerName"] = $partnerName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountPartner -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListWorkflowVersionTriggerCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workflow versionId.)')]
        [string]
        $versionId,
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName,
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType,
        [parameter(mandatory=$False,HelpMessage='The workflow trigger name.)')]
        [string]
        $triggerName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["triggerName"] = $triggerName
        $arguments["versionId"] = $versionId
        $arguments["workflowName"] = $workflowName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listWorkflowVersionTriggerCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountBatchConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The batch configuration name.)')]
        [string]
        $batchConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName
    )

    process
    {
        $arguments = @{}
        $arguments["batchConfigurationName"] = $batchConfigurationName
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountBatchConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountPartnerContentCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType,
        [parameter(mandatory=$False,HelpMessage='The integration account partner name.)')]
        [string]
        $partnerName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["partnerName"] = $partnerName
        $arguments["resourceGroupName"] = $resourceGroupName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountPartnerContentCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListWorkflowTriggerCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workflow trigger name.)')]
        [string]
        $triggerName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["triggerName"] = $triggerName
        $arguments["workflowName"] = $workflowName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listWorkflowTriggerCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountAssembly
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The assembly artifact name.)')]
        [string]
        $assemblyArtifactName
    )

    process
    {
        $arguments = @{}
        $arguments["assemblyArtifactName"] = $assemblyArtifactName
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountAssembly -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationServiceEnvironment
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The integration service environment name.)')]
        [string]
        $integrationServiceEnvironmentName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationServiceEnvironmentName"] = $integrationServiceEnvironmentName
        $arguments["resourceGroup"] = $resourceGroup

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationServiceEnvironment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountSchemaContentCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The integration account schema name.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["schemaName"] = $schemaName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountSchemaContentCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountMapContentCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The expiry time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The key type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Primary', 'Secondary')]
        $keyType,
        [parameter(mandatory=$False,HelpMessage='The integration account map name.)')]
        [string]
        $mapName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["mapName"] = $mapName
        $arguments["resourceGroupName"] = $resourceGroupName

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

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountMapContentCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountSession
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account session name.)')]
        [string]
        $sessionName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["sessionName"] = $sessionName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountSession -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListWorkflowAccessKeySecretKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workflow access key name.)')]
        [string]
        $accessKeyName,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName
    )

    process
    {
        $arguments = @{}
        $arguments["accessKeyName"] = $accessKeyName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workflowName"] = $workflowName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listWorkflowAccessKeySecretKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountAgreement
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account agreement name.)')]
        [string]
        $agreementName
    )

    process
    {
        $arguments = @{}
        $arguments["agreementName"] = $agreementName
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountAgreement -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountAssemblyContentCallbackUrl
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The assembly artifact name.)')]
        [string]
        $assemblyArtifactName
    )

    process
    {
        $arguments = @{}
        $arguments["assemblyArtifactName"] = $assemblyArtifactName
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountAssemblyContentCallbackUrl -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetWorkflowAccessKey
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workflow access key name.)')]
        [string]
        $accessKeyName,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName
    )

    process
    {
        $arguments = @{}
        $arguments["accessKeyName"] = $accessKeyName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workflowName"] = $workflowName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getWorkflowAccessKey -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetRosettaNetProcessConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account RosettaNetProcessConfiguration name.)')]
        [string]
        $rosettaNetProcessConfigurationName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["rosettaNetProcessConfigurationName"] = $rosettaNetProcessConfigurationName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getRosettaNetProcessConfiguration -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class KeyVaultReference
{
    [string] $id
    [string] $name
}
function New-AzureNativeTypeLogicKeyVaultReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource id.)')]
        [string]
        $id,
        [parameter(mandatory=$False,HelpMessage='The key vault name.)')]
        [string]
        $name
    )

    process
    {
        return $([KeyVaultReference]$PSBoundParameters)
    }
}
function Invoke-AzureNativeFunctionLogicListIntegrationAccountKeyVaultKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The skip token.)')]
        [string]
        $skipToken,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The key vault reference.)')]
        [KeyVaultReference]
        $keyVault
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["keyVault"] = $keyVault
        $arguments["resourceGroupName"] = $resourceGroupName

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:listIntegrationAccountKeyVaultKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionLogicGetIntegrationAccountSchema
{
    param (
        [parameter(mandatory=$False,HelpMessage='The integration account schema name.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName
    )

    process
    {
        $arguments = @{}
        $arguments["integrationAccountName"] = $integrationAccountName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["schemaName"] = $schemaName

        $functionObject = Invoke-PulumiFunction -Name azure-native:logic:getIntegrationAccountSchema -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class ResourceReference
{
    [string] $id
}
function New-AzureNativeTypeLogicResourceReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource id.)')]
        [string]
        $id
    )

    process
    {
        return $([ResourceReference]$PSBoundParameters)
    }
}
class ContentLink
{
    [string] $uri
}
function New-AzureNativeTypeLogicContentLink
{
    param (
        [parameter(mandatory=$False,HelpMessage='The content link URI.)')]
        [string]
        $uri
    )

    process
    {
        return $([ContentLink]$PSBoundParameters)
    }
}
class IntegrationServiceEnvironmentManagedApiDeploymentParameters
{
    [ContentLink] $contentLinkDefinition
}
function New-AzureNativeTypeLogicIntegrationServiceEnvironmentManagedApiDeploymentParameters
{
    param (
        [parameter(mandatory=$False,HelpMessage='The integration service environment managed api content link for deployment.)')]
        [ContentLink]
        $contentLinkDefinition
    )

    process
    {
        return $([IntegrationServiceEnvironmentManagedApiDeploymentParameters]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationServiceEnvironmentManagedApi
{
    [Alias('azure_native_logic_integrationserviceenvironmentmanagedapi')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The integration service environment name.)')]
        [string]
        $integrationServiceEnvironmentName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The api name.)')]
        [string]
        $apiName,
        [parameter(mandatory=$False,HelpMessage='The integration service environment reference.)')]
        [ResourceReference]
        $integrationServiceEnvironment,
        [parameter(mandatory=$False,HelpMessage='The integration service environment managed api deployment parameters.)')]
        [IntegrationServiceEnvironmentManagedApiDeploymentParameters]
        $deploymentParameters,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["integrationServiceEnvironmentName"] = $integrationServiceEnvironmentName
        $resource.properties["resourceGroup"] = $resourceGroup

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class KeyVaultKeyReferenceKeyVault
{
    [string] $id
}
function New-AzureNativeTypeLogicKeyVaultKeyReferenceKeyVault
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource id.)')]
        [string]
        $id
    )

    process
    {
        return $([KeyVaultKeyReferenceKeyVault]$PSBoundParameters)
    }
}
class KeyVaultKeyReference
{
    [string] $keyVersion
    [string] $keyName
    [KeyVaultKeyReferenceKeyVault] $keyVault
}
function New-AzureNativeTypeLogicKeyVaultKeyReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The private key version in key vault.)')]
        [string]
        $keyVersion,
        [parameter(mandatory=$False,HelpMessage='The private key name in key vault.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The key vault reference.)')]
        [KeyVaultKeyReferenceKeyVault]
        $keyVault
    )

    process
    {
        return $([KeyVaultKeyReference]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccountCertificate
{
    [Alias('azure_native_logic_integrationaccountcertificate')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The key details in the key vault.)')]
        [KeyVaultKeyReference]
        $key,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The integration account certificate name.)')]
        [string]
        $certificateName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The public certificate.)')]
        [string]
        $publicCertificate,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeLogicIntegrationAccountSchema
{
    [Alias('azure_native_logic_integrationaccountschema')]
    param (
        [parameter(mandatory=$False,HelpMessage='The document name.)')]
        [string]
        $documentName,
        [parameter(mandatory=$False,HelpMessage='The file name.)')]
        [string]
        $fileName,
        [parameter(mandatory=$False,HelpMessage='The integration account schema name.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The content.)')]
        [string]
        $content,
        [parameter(mandatory=$False,HelpMessage='The schema type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Xml')]
        $schemaType,
        [parameter(mandatory=$False,HelpMessage='The content type.)')]
        [string]
        $contentType,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The target namespace of the schema.)')]
        [string]
        $targetNamespace,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class BusinessIdentity
{
    [string] $value
    [string] $qualifier
}
function New-AzureNativeTypeLogicBusinessIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The user defined business identity value.)')]
        [string]
        $value,
        [parameter(mandatory=$False,HelpMessage='The business identity qualifier e.g. as2identity, ZZ, ZZZ, 31, 32)')]
        [string]
        $qualifier
    )

    process
    {
        return $([BusinessIdentity]$PSBoundParameters)
    }
}
class X12ProcessingSettings
{
    [bool] $convertImpliedDecimal
    [bool] $createEmptyXmlTagsForTrailingSeparators
    [bool] $preserveInterchange
    [bool] $useDotAsDecimalSeparator
    [bool] $suspendInterchangeOnError
    [bool] $maskSecurityInfo
}
function New-AzureNativeTypeLogicX12ProcessingSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to convert numerical type to implied decimal.)')]
        [bool]
        $convertImpliedDecimal,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to create empty xml tags for trailing separators.)')]
        [bool]
        $createEmptyXmlTagsForTrailingSeparators,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to preserve interchange.)')]
        [bool]
        $preserveInterchange,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to use dot as decimal separator.)')]
        [bool]
        $useDotAsDecimalSeparator,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to suspend interchange on error.)')]
        [bool]
        $suspendInterchangeOnError,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to mask security information.)')]
        [bool]
        $maskSecurityInfo
    )

    process
    {
        return $([X12ProcessingSettings]$PSBoundParameters)
    }
}
class X12DelimiterOverrides
{
    [int] $replaceCharacter
    [string] $messageId
    [bool] $replaceSeparatorsInPayload
    [string] $protocolVersion
    [int] $componentSeparator
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [object] $segmentTerminatorSuffix
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [int] $dataElementSeparator
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [string] $targetNamespace
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [int] $segmentTerminator
}
function New-AzureNativeTypeLogicX12DelimiterOverrides
{
    param (
        [parameter(mandatory=$False,HelpMessage='The replacement character.)')]
        [int]
        $replaceCharacter,
        [parameter(mandatory=$False,HelpMessage='The message id.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to replace separators in payload.)')]
        [bool]
        $replaceSeparatorsInPayload,
        [parameter(mandatory=$False,HelpMessage='The protocol version.)')]
        [string]
        $protocolVersion,
        [parameter(mandatory=$False,HelpMessage='The component separator.)')]
        [int]
        $componentSeparator,
        [parameter(mandatory=$False,HelpMessage='The segment terminator suffix.)')]
        $segmentTerminatorSuffix,
        [parameter(mandatory=$False,HelpMessage='The data element separator.)')]
        [int]
        $dataElementSeparator,
        [parameter(mandatory=$False,HelpMessage='The target namespace on which this delimiter settings has to be applied.)')]
        [string]
        $targetNamespace,
        [parameter(mandatory=$False,HelpMessage='The segment terminator.)')]
        [int]
        $segmentTerminator
    )

    process
    {
        return $([X12DelimiterOverrides]$PSBoundParameters)
    }
}
class X12EnvelopeOverride
{
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [string] $dateFormat
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $timeFormat
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $protocolVersion
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $functionalIdentifierCode
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $senderApplicationId
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $responsibleAgencyCode
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $targetNamespace
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $messageId
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $receiverApplicationId
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $headerVersion
}
function New-AzureNativeTypeLogicX12EnvelopeOverride
{
    param (
        [parameter(mandatory=$False,HelpMessage='The date format.)')]
        [string]
        [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
        $dateFormat,
        [parameter(mandatory=$False,HelpMessage='The time format.)')]
        [string]
        [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
        $timeFormat,
        [parameter(mandatory=$False,HelpMessage='The protocol version on which this envelope settings has to be applied.)')]
        [string]
        $protocolVersion,
        [parameter(mandatory=$False,HelpMessage='The functional identifier code.)')]
        [string]
        $functionalIdentifierCode,
        [parameter(mandatory=$False,HelpMessage='The sender application id.)')]
        [string]
        $senderApplicationId,
        [parameter(mandatory=$False,HelpMessage='The responsible agency code.)')]
        [string]
        $responsibleAgencyCode,
        [parameter(mandatory=$False,HelpMessage='The target namespace on which this envelope settings has to be applied.)')]
        [string]
        $targetNamespace,
        [parameter(mandatory=$False,HelpMessage='The message id on which this envelope settings has to be applied.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The receiver application id.)')]
        [string]
        $receiverApplicationId,
        [parameter(mandatory=$False,HelpMessage='The header version.)')]
        [string]
        $headerVersion
    )

    process
    {
        return $([X12EnvelopeOverride]$PSBoundParameters)
    }
}
class X12ValidationOverride
{
    [bool] $validateCharacterSet
    [bool] $trimLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [string] $trailingSeparatorPolicy
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [string] $messageId
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $allowLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $validateEDITypes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $validateXSDTypes
}
function New-AzureNativeTypeLogicX12ValidationOverride
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate character Set.)')]
        [bool]
        $validateCharacterSet,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to trim leading and trailing spaces and zeroes.)')]
        [bool]
        $trimLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The trailing separator policy.)')]
        [string]
        [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
        $trailingSeparatorPolicy,
        [parameter(mandatory=$False,HelpMessage='The message id on which the validation settings has to be applied.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to allow leading and trailing spaces and zeroes.)')]
        [bool]
        $allowLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate EDI types.)')]
        [bool]
        $validateEDITypes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate XSD types.)')]
        [bool]
        $validateXSDTypes
    )

    process
    {
        return $([X12ValidationOverride]$PSBoundParameters)
    }
}
class X12EnvelopeSettings
{
    [string] $controlVersionNumber
    [string] $transactionSetControlNumberSuffix
    [int] $interchangeControlNumberLowerBound
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [string] $groupHeaderTimeFormat
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [int] $controlStandardsId
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [bool] $rolloverGroupControlNumber
    [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
    [bool] $overwriteExistingTransactionSetControlNumber
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [string] $groupHeaderDateFormat
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [string] $functionalGroupId
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [int] $transactionSetControlNumberLowerBound
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [string] $receiverApplicationId
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [int] $interchangeControlNumberUpperBound
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [bool] $rolloverInterchangeControlNumber
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [string] $transactionSetControlNumberPrefix
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [int] $transactionSetControlNumberUpperBound
    [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
    [int] $groupControlNumberLowerBound
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [string] $usageIndicator
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [bool] $useControlStandardsIdAsRepetitionCharacter
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [string] $senderApplicationId
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [bool] $enableDefaultGroupHeaders
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [string] $groupHeaderVersion
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [bool] $rolloverTransactionSetControlNumber
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [int] $groupControlNumberUpperBound
    [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
    [string] $groupHeaderAgencyCode
}
function New-AzureNativeTypeLogicX12EnvelopeSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The control version number.)')]
        [string]
        $controlVersionNumber,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number suffix.)')]
        [string]
        $transactionSetControlNumberSuffix,
        [parameter(mandatory=$False,HelpMessage='The interchange control number lower bound.)')]
        [int]
        $interchangeControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The group header time format.)')]
        [string]
        [ValidateSet('NotSpecified', 'HHMM', 'HHMMSS', 'HHMMSSdd', 'HHMMSSd')]
        $groupHeaderTimeFormat,
        [parameter(mandatory=$False,HelpMessage='The controls standards id.)')]
        [int]
        $controlStandardsId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover group control number.)')]
        [bool]
        $rolloverGroupControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to overwrite existing transaction set control number.)')]
        [bool]
        $overwriteExistingTransactionSetControlNumber,
        [parameter(mandatory=$False,HelpMessage='The group header date format.)')]
        [string]
        [ValidateSet('NotSpecified', 'CCYYMMDD', 'YYMMDD')]
        $groupHeaderDateFormat,
        [parameter(mandatory=$False,HelpMessage='The functional group id.)')]
        [string]
        $functionalGroupId,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number lower bound.)')]
        [int]
        $transactionSetControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The receiver application id.)')]
        [string]
        $receiverApplicationId,
        [parameter(mandatory=$False,HelpMessage='The interchange control number upper bound.)')]
        [int]
        $interchangeControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover interchange control number.)')]
        [bool]
        $rolloverInterchangeControlNumber,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number prefix.)')]
        [string]
        $transactionSetControlNumberPrefix,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number upper bound.)')]
        [int]
        $transactionSetControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The group control number lower bound.)')]
        [int]
        $groupControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The usage indicator.)')]
        [string]
        [ValidateSet('NotSpecified', 'Test', 'Information', 'Production')]
        $usageIndicator,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to use control standards id as repetition character.)')]
        [bool]
        $useControlStandardsIdAsRepetitionCharacter,
        [parameter(mandatory=$False,HelpMessage='The sender application id.)')]
        [string]
        $senderApplicationId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable default group headers.)')]
        [bool]
        $enableDefaultGroupHeaders,
        [parameter(mandatory=$False,HelpMessage='The group header version.)')]
        [string]
        $groupHeaderVersion,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover transaction set control number.)')]
        [bool]
        $rolloverTransactionSetControlNumber,
        [parameter(mandatory=$False,HelpMessage='The group control number upper bound.)')]
        [int]
        $groupControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The group header agency code.)')]
        [string]
        $groupHeaderAgencyCode
    )

    process
    {
        return $([X12EnvelopeSettings]$PSBoundParameters)
    }
}
class X12SchemaReference
{
    [string] $schemaName
    [string] $messageId
    [string] $schemaVersion
    [string] $senderApplicationId
}
function New-AzureNativeTypeLogicX12SchemaReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The schema name.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The message id.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The schema version.)')]
        [string]
        $schemaVersion,
        [parameter(mandatory=$False,HelpMessage='The sender application id.)')]
        [string]
        $senderApplicationId
    )

    process
    {
        return $([X12SchemaReference]$PSBoundParameters)
    }
}
class X12MessageIdentifier
{
    [string] $messageId
}
function New-AzureNativeTypeLogicX12MessageIdentifier
{
    param (
        [parameter(mandatory=$False,HelpMessage='The message id.)')]
        [string]
        $messageId
    )

    process
    {
        return $([X12MessageIdentifier]$PSBoundParameters)
    }
}
class X12ValidationSettings
{
    [bool] $validateCharacterSet
    [bool] $validateEDITypes
    [bool] $trimLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [string] $trailingSeparatorPolicy
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $checkDuplicateTransactionSetControlNumber
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $checkDuplicateInterchangeControlNumber
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $validateXSDTypes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [int] $interchangeControlNumberValidityDays
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $allowLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $checkDuplicateGroupControlNumber
}
function New-AzureNativeTypeLogicX12ValidationSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate character set in the message.)')]
        [bool]
        $validateCharacterSet,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to Whether to validate EDI types.)')]
        [bool]
        $validateEDITypes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to trim leading and trailing spaces and zeroes.)')]
        [bool]
        $trimLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The trailing separator policy.)')]
        [string]
        [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
        $trailingSeparatorPolicy,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate transaction set control number.)')]
        [bool]
        $checkDuplicateTransactionSetControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate interchange control number.)')]
        [bool]
        $checkDuplicateInterchangeControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to Whether to validate XSD types.)')]
        [bool]
        $validateXSDTypes,
        [parameter(mandatory=$False,HelpMessage='The validity period of interchange control number.)')]
        [int]
        $interchangeControlNumberValidityDays,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to allow leading and trailing spaces and zeroes.)')]
        [bool]
        $allowLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate group control number.)')]
        [bool]
        $checkDuplicateGroupControlNumber
    )

    process
    {
        return $([X12ValidationSettings]$PSBoundParameters)
    }
}
class X12SecuritySettings
{
    [string] $authorizationValue
    [string] $authorizationQualifier
    [string] $securityQualifier
    [string] $passwordValue
}
function New-AzureNativeTypeLogicX12SecuritySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The authorization value.)')]
        [string]
        $authorizationValue,
        [parameter(mandatory=$False,HelpMessage='The authorization qualifier.)')]
        [string]
        $authorizationQualifier,
        [parameter(mandatory=$False,HelpMessage='The security qualifier.)')]
        [string]
        $securityQualifier,
        [parameter(mandatory=$False,HelpMessage='The password value.)')]
        [string]
        $passwordValue
    )

    process
    {
        return $([X12SecuritySettings]$PSBoundParameters)
    }
}
class X12MessageFilter
{
    [ValidateSet('NotSpecified', 'Include', 'Exclude')]
    [string] $messageFilterType
}
function New-AzureNativeTypeLogicX12MessageFilter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The message filter type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Include', 'Exclude')]
        $messageFilterType
    )

    process
    {
        return $([X12MessageFilter]$PSBoundParameters)
    }
}
class X12FramingSettings
{
    [int] $segmentTerminator
    [ValidateSet('NotSpecified', 'Basic', 'Extended', 'UTF8')]
    [string] $characterSet
    [ValidateSet('NotSpecified', 'Basic', 'Extended', 'UTF8')]
    [int] $dataElementSeparator
    [ValidateSet('NotSpecified', 'Basic', 'Extended', 'UTF8')]
    [bool] $replaceSeparatorsInPayload
    [ValidateSet('NotSpecified', 'Basic', 'Extended', 'UTF8')]
    [int] $componentSeparator
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [object] $segmentTerminatorSuffix
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [int] $replaceCharacter
}
function New-AzureNativeTypeLogicX12FramingSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The segment terminator.)')]
        [int]
        $segmentTerminator,
        [parameter(mandatory=$False,HelpMessage='The X12 character set.)')]
        [string]
        [ValidateSet('NotSpecified', 'Basic', 'Extended', 'UTF8')]
        $characterSet,
        [parameter(mandatory=$False,HelpMessage='The data element separator.)')]
        [int]
        $dataElementSeparator,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to replace separators in payload.)')]
        [bool]
        $replaceSeparatorsInPayload,
        [parameter(mandatory=$False,HelpMessage='The component separator.)')]
        [int]
        $componentSeparator,
        [parameter(mandatory=$False,HelpMessage='The segment terminator suffix.)')]
        $segmentTerminatorSuffix,
        [parameter(mandatory=$False,HelpMessage='The replacement character.)')]
        [int]
        $replaceCharacter
    )

    process
    {
        return $([X12FramingSettings]$PSBoundParameters)
    }
}
class X12AcknowledgementSettings
{
    [string] $implementationAcknowledgementVersion
    [bool] $batchImplementationAcknowledgements
    [bool] $needLoopForValidMessages
    [bool] $batchFunctionalAcknowledgements
    [bool] $batchTechnicalAcknowledgements
    [bool] $needTechnicalAcknowledgement
    [bool] $needImplementationAcknowledgement
    [bool] $rolloverAcknowledgementControlNumber
    [bool] $sendSynchronousAcknowledgement
    [string] $functionalAcknowledgementVersion
    [int] $acknowledgementControlNumberUpperBound
    [string] $acknowledgementControlNumberSuffix
    [string] $acknowledgementControlNumberPrefix
    [bool] $needFunctionalAcknowledgement
    [int] $acknowledgementControlNumberLowerBound
}
function New-AzureNativeTypeLogicX12AcknowledgementSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The implementation acknowledgement version.)')]
        [string]
        $implementationAcknowledgementVersion,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to batch implementation acknowledgements.)')]
        [bool]
        $batchImplementationAcknowledgements,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether a loop is needed for valid messages.)')]
        [bool]
        $needLoopForValidMessages,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to batch functional acknowledgements.)')]
        [bool]
        $batchFunctionalAcknowledgements,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to batch the technical acknowledgements.)')]
        [bool]
        $batchTechnicalAcknowledgements,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether technical acknowledgement is needed.)')]
        [bool]
        $needTechnicalAcknowledgement,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether implementation acknowledgement is needed.)')]
        [bool]
        $needImplementationAcknowledgement,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover acknowledgement control number.)')]
        [bool]
        $rolloverAcknowledgementControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to send synchronous acknowledgement.)')]
        [bool]
        $sendSynchronousAcknowledgement,
        [parameter(mandatory=$False,HelpMessage='The functional acknowledgement version.)')]
        [string]
        $functionalAcknowledgementVersion,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number upper bound.)')]
        [int]
        $acknowledgementControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number suffix.)')]
        [string]
        $acknowledgementControlNumberSuffix,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number prefix.)')]
        [string]
        $acknowledgementControlNumberPrefix,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether functional acknowledgement is needed.)')]
        [bool]
        $needFunctionalAcknowledgement,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number lower bound.)')]
        [int]
        $acknowledgementControlNumberLowerBound
    )

    process
    {
        return $([X12AcknowledgementSettings]$PSBoundParameters)
    }
}
class X12ProtocolSettings
{
    [X12ProcessingSettings] $processingSettings
    [X12DelimiterOverrides[]] $x12DelimiterOverrides
    [X12EnvelopeOverride[]] $envelopeOverrides
    [X12ValidationOverride[]] $validationOverrides
    [X12EnvelopeSettings] $envelopeSettings
    [X12SchemaReference[]] $schemaReferences
    [X12MessageIdentifier[]] $messageFilterList
    [X12ValidationSettings] $validationSettings
    [X12SecuritySettings] $securitySettings
    [X12MessageFilter] $messageFilter
    [X12FramingSettings] $framingSettings
    [X12AcknowledgementSettings] $acknowledgementSettings
}
function New-AzureNativeTypeLogicX12ProtocolSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The X12 processing settings.)')]
        [X12ProcessingSettings]
        $processingSettings,
        [parameter(mandatory=$False,HelpMessage='The X12 delimiter override settings.)')]
        $x12DelimiterOverrides,
        [parameter(mandatory=$False,HelpMessage='The X12 envelope override settings.)')]
        $envelopeOverrides,
        [parameter(mandatory=$False,HelpMessage='The X12 validation override settings.)')]
        $validationOverrides,
        [parameter(mandatory=$False,HelpMessage='The X12 envelope settings.)')]
        [X12EnvelopeSettings]
        $envelopeSettings,
        [parameter(mandatory=$False,HelpMessage='The X12 schema references.)')]
        $schemaReferences,
        [parameter(mandatory=$False,HelpMessage='The X12 message filter list.)')]
        $messageFilterList,
        [parameter(mandatory=$False,HelpMessage='The X12 validation settings.)')]
        [X12ValidationSettings]
        $validationSettings,
        [parameter(mandatory=$False,HelpMessage='The X12 security settings.)')]
        [X12SecuritySettings]
        $securitySettings,
        [parameter(mandatory=$False,HelpMessage='The X12 message filter.)')]
        [X12MessageFilter]
        $messageFilter,
        [parameter(mandatory=$False,HelpMessage='The X12 framing settings.)')]
        [X12FramingSettings]
        $framingSettings,
        [parameter(mandatory=$False,HelpMessage='The X12 acknowledgment settings.)')]
        [X12AcknowledgementSettings]
        $acknowledgementSettings
    )

    process
    {
        return $([X12ProtocolSettings]$PSBoundParameters)
    }
}
class X12OneWayAgreement
{
    [BusinessIdentity] $senderBusinessIdentity
    [X12ProtocolSettings] $protocolSettings
    [BusinessIdentity] $receiverBusinessIdentity
}
function New-AzureNativeTypeLogicX12OneWayAgreement
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sender business identity)')]
        [BusinessIdentity]
        $senderBusinessIdentity,
        [parameter(mandatory=$False,HelpMessage='The X12 protocol settings.)')]
        [X12ProtocolSettings]
        $protocolSettings,
        [parameter(mandatory=$False,HelpMessage='The receiver business identity)')]
        [BusinessIdentity]
        $receiverBusinessIdentity
    )

    process
    {
        return $([X12OneWayAgreement]$PSBoundParameters)
    }
}
class X12AgreementContent
{
    [X12OneWayAgreement] $sendAgreement
    [X12OneWayAgreement] $receiveAgreement
}
function New-AzureNativeTypeLogicX12AgreementContent
{
    param (
        [parameter(mandatory=$False,HelpMessage='The X12 one-way send agreement.)')]
        [X12OneWayAgreement]
        $sendAgreement,
        [parameter(mandatory=$False,HelpMessage='The X12 one-way receive agreement.)')]
        [X12OneWayAgreement]
        $receiveAgreement
    )

    process
    {
        return $([X12AgreementContent]$PSBoundParameters)
    }
}
class AS2ValidationSettings
{
    [ValidateSet('NotSpecified', 'None', 'DES3', 'RC2', 'AES128', 'AES192', 'AES256')]
    [string] $encryptionAlgorithm
    [ValidateSet('NotSpecified', 'None', 'DES3', 'RC2', 'AES128', 'AES192', 'AES256')]
    [bool] $checkCertificateRevocationListOnReceive
    [ValidateSet('NotSpecified', 'None', 'DES3', 'RC2', 'AES128', 'AES192', 'AES256')]
    [bool] $compressMessage
    [ValidateSet('NotSpecified', 'None', 'DES3', 'RC2', 'AES128', 'AES192', 'AES256')]
    [bool] $signMessage
    [ValidateSet('NotSpecified', 'None', 'DES3', 'RC2', 'AES128', 'AES192', 'AES256')]
    [bool] $checkCertificateRevocationListOnSend
    [ValidateSet('NotSpecified', 'Default', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [string] $signingAlgorithm
    [ValidateSet('NotSpecified', 'Default', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [int] $interchangeDuplicatesValidityDays
    [ValidateSet('NotSpecified', 'Default', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [bool] $checkDuplicateMessage
    [ValidateSet('NotSpecified', 'Default', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [bool] $encryptMessage
    [ValidateSet('NotSpecified', 'Default', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [bool] $overrideMessageProperties
}
function New-AzureNativeTypeLogicAS2ValidationSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The encryption algorithm.)')]
        [string]
        [ValidateSet('NotSpecified', 'None', 'DES3', 'RC2', 'AES128', 'AES192', 'AES256')]
        $encryptionAlgorithm,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for certificate revocation list on receive.)')]
        [bool]
        $checkCertificateRevocationListOnReceive,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the message has to be compressed.)')]
        [bool]
        $compressMessage,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the message has to be signed.)')]
        [bool]
        $signMessage,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for certificate revocation list on send.)')]
        [bool]
        $checkCertificateRevocationListOnSend,
        [parameter(mandatory=$False,HelpMessage='The signing algorithm.)')]
        [string]
        [ValidateSet('NotSpecified', 'Default', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
        $signingAlgorithm,
        [parameter(mandatory=$False,HelpMessage='The number of days to look back for duplicate interchange.)')]
        [int]
        $interchangeDuplicatesValidityDays,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate message.)')]
        [bool]
        $checkDuplicateMessage,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the message has to be encrypted.)')]
        [bool]
        $encryptMessage,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to override incoming message properties with those in agreement.)')]
        [bool]
        $overrideMessageProperties
    )

    process
    {
        return $([AS2ValidationSettings]$PSBoundParameters)
    }
}
class AS2EnvelopeSettings
{
    [bool] $autogenerateFileName
    [bool] $transmitFileNameInMimeHeader
    [string] $fileNameTemplate
    [bool] $suspendMessageOnFileNameGenerationError
    [string] $messageContentType
}
function New-AzureNativeTypeLogicAS2EnvelopeSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to auto generate file name.)')]
        [bool]
        $autogenerateFileName,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to transmit file name in mime header.)')]
        [bool]
        $transmitFileNameInMimeHeader,
        [parameter(mandatory=$False,HelpMessage='The template for file name.)')]
        [string]
        $fileNameTemplate,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to suspend message on file name generation error.)')]
        [bool]
        $suspendMessageOnFileNameGenerationError,
        [parameter(mandatory=$False,HelpMessage='The message content type.)')]
        [string]
        $messageContentType
    )

    process
    {
        return $([AS2EnvelopeSettings]$PSBoundParameters)
    }
}
class AS2AcknowledgementConnectionSettings
{
    [bool] $ignoreCertificateNameMismatch
    [bool] $unfoldHttpHeaders
    [bool] $keepHttpConnectionAlive
    [bool] $supportHttpStatusCodeContinue
}
function New-AzureNativeTypeLogicAS2AcknowledgementConnectionSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Indicates whether to ignore mismatch in certificate name.)')]
        [bool]
        $ignoreCertificateNameMismatch,
        [parameter(mandatory=$False,HelpMessage='Indicates whether to unfold the HTTP headers.)')]
        [bool]
        $unfoldHttpHeaders,
        [parameter(mandatory=$False,HelpMessage='Indicates whether to keep the connection alive.)')]
        [bool]
        $keepHttpConnectionAlive,
        [parameter(mandatory=$False,HelpMessage='Indicates whether to support HTTP status code ''CONTINUE''.)')]
        [bool]
        $supportHttpStatusCodeContinue
    )

    process
    {
        return $([AS2AcknowledgementConnectionSettings]$PSBoundParameters)
    }
}
class AS2MessageConnectionSettings
{
    [bool] $ignoreCertificateNameMismatch
    [bool] $unfoldHttpHeaders
    [bool] $keepHttpConnectionAlive
    [bool] $supportHttpStatusCodeContinue
}
function New-AzureNativeTypeLogicAS2MessageConnectionSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to ignore mismatch in certificate name.)')]
        [bool]
        $ignoreCertificateNameMismatch,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to unfold the HTTP headers.)')]
        [bool]
        $unfoldHttpHeaders,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to keep the connection alive.)')]
        [bool]
        $keepHttpConnectionAlive,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to support HTTP status code ''CONTINUE''.)')]
        [bool]
        $supportHttpStatusCodeContinue
    )

    process
    {
        return $([AS2MessageConnectionSettings]$PSBoundParameters)
    }
}
class AS2ErrorSettings
{
    [bool] $resendIfMDNNotReceived
    [bool] $suspendDuplicateMessage
}
function New-AzureNativeTypeLogicAS2ErrorSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to resend message If MDN is not received.)')]
        [bool]
        $resendIfMDNNotReceived,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to suspend duplicate message.)')]
        [bool]
        $suspendDuplicateMessage
    )

    process
    {
        return $([AS2ErrorSettings]$PSBoundParameters)
    }
}
class AS2SecuritySettings
{
    [bool] $enableNRRForInboundMDN
    [bool] $overrideGroupSigningCertificate
    [bool] $enableNRRForOutboundDecodedMessages
    [string] $sha2AlgorithmFormat
    [bool] $enableNRRForOutboundMDN
    [string] $signingCertificateName
    [bool] $enableNRRForOutboundEncodedMessages
    [bool] $enableNRRForInboundEncodedMessages
    [string] $encryptionCertificateName
    [bool] $enableNRRForInboundDecodedMessages
}
function New-AzureNativeTypeLogicAS2SecuritySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable NRR for inbound MDN.)')]
        [bool]
        $enableNRRForInboundMDN,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to send or request a MDN.)')]
        [bool]
        $overrideGroupSigningCertificate,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable NRR for outbound decoded messages.)')]
        [bool]
        $enableNRRForOutboundDecodedMessages,
        [parameter(mandatory=$False,HelpMessage='The Sha2 algorithm format. Valid values are Sha2, ShaHashSize, ShaHyphenHashSize, Sha2UnderscoreHashSize.)')]
        [string]
        $sha2AlgorithmFormat,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable NRR for outbound MDN.)')]
        [bool]
        $enableNRRForOutboundMDN,
        [parameter(mandatory=$False,HelpMessage='The name of the signing certificate.)')]
        [string]
        $signingCertificateName,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable NRR for outbound encoded messages.)')]
        [bool]
        $enableNRRForOutboundEncodedMessages,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable NRR for inbound encoded messages.)')]
        [bool]
        $enableNRRForInboundEncodedMessages,
        [parameter(mandatory=$False,HelpMessage='The name of the encryption certificate.)')]
        [string]
        $encryptionCertificateName,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable NRR for inbound decoded messages.)')]
        [bool]
        $enableNRRForInboundDecodedMessages
    )

    process
    {
        return $([AS2SecuritySettings]$PSBoundParameters)
    }
}
class AS2MdnSettings
{
    [bool] $signOutboundMDNIfOptional
    [bool] $sendInboundMDNToMessageBox
    [string] $dispositionNotificationTo
    [bool] $needMDN
    [bool] $sendMDNAsynchronously
    [ValidateSet('NotSpecified', 'None', 'MD5', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [string] $micHashingAlgorithm
    [ValidateSet('NotSpecified', 'None', 'MD5', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [string] $receiptDeliveryUrl
    [ValidateSet('NotSpecified', 'None', 'MD5', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [string] $mdnText
    [ValidateSet('NotSpecified', 'None', 'MD5', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
    [bool] $signMDN
}
function New-AzureNativeTypeLogicAS2MdnSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to sign the outbound MDN if optional.)')]
        [bool]
        $signOutboundMDNIfOptional,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to send inbound MDN to message box.)')]
        [bool]
        $sendInboundMDNToMessageBox,
        [parameter(mandatory=$False,HelpMessage='The disposition notification to header value.)')]
        [string]
        $dispositionNotificationTo,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to send or request a MDN.)')]
        [bool]
        $needMDN,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to send the asynchronous MDN.)')]
        [bool]
        $sendMDNAsynchronously,
        [parameter(mandatory=$False,HelpMessage='The signing or hashing algorithm.)')]
        [string]
        [ValidateSet('NotSpecified', 'None', 'MD5', 'SHA1', 'SHA2256', 'SHA2384', 'SHA2512')]
        $micHashingAlgorithm,
        [parameter(mandatory=$False,HelpMessage='The receipt delivery URL.)')]
        [string]
        $receiptDeliveryUrl,
        [parameter(mandatory=$False,HelpMessage='The MDN text.)')]
        [string]
        $mdnText,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the MDN needs to be signed or not.)')]
        [bool]
        $signMDN
    )

    process
    {
        return $([AS2MdnSettings]$PSBoundParameters)
    }
}
class AS2ProtocolSettings
{
    [AS2ValidationSettings] $validationSettings
    [AS2EnvelopeSettings] $envelopeSettings
    [AS2AcknowledgementConnectionSettings] $acknowledgementConnectionSettings
    [AS2MessageConnectionSettings] $messageConnectionSettings
    [AS2ErrorSettings] $errorSettings
    [AS2SecuritySettings] $securitySettings
    [AS2MdnSettings] $mdnSettings
}
function New-AzureNativeTypeLogicAS2ProtocolSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The validation settings.)')]
        [AS2ValidationSettings]
        $validationSettings,
        [parameter(mandatory=$False,HelpMessage='The envelope settings.)')]
        [AS2EnvelopeSettings]
        $envelopeSettings,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement connection settings.)')]
        [AS2AcknowledgementConnectionSettings]
        $acknowledgementConnectionSettings,
        [parameter(mandatory=$False,HelpMessage='The message connection settings.)')]
        [AS2MessageConnectionSettings]
        $messageConnectionSettings,
        [parameter(mandatory=$False,HelpMessage='The error settings.)')]
        [AS2ErrorSettings]
        $errorSettings,
        [parameter(mandatory=$False,HelpMessage='The security settings.)')]
        [AS2SecuritySettings]
        $securitySettings,
        [parameter(mandatory=$False,HelpMessage='The MDN settings.)')]
        [AS2MdnSettings]
        $mdnSettings
    )

    process
    {
        return $([AS2ProtocolSettings]$PSBoundParameters)
    }
}
class AS2OneWayAgreement
{
    [BusinessIdentity] $senderBusinessIdentity
    [AS2ProtocolSettings] $protocolSettings
    [BusinessIdentity] $receiverBusinessIdentity
}
function New-AzureNativeTypeLogicAS2OneWayAgreement
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sender business identity)')]
        [BusinessIdentity]
        $senderBusinessIdentity,
        [parameter(mandatory=$False,HelpMessage='The AS2 protocol settings.)')]
        [AS2ProtocolSettings]
        $protocolSettings,
        [parameter(mandatory=$False,HelpMessage='The receiver business identity)')]
        [BusinessIdentity]
        $receiverBusinessIdentity
    )

    process
    {
        return $([AS2OneWayAgreement]$PSBoundParameters)
    }
}
class AS2AgreementContent
{
    [AS2OneWayAgreement] $sendAgreement
    [AS2OneWayAgreement] $receiveAgreement
}
function New-AzureNativeTypeLogicAS2AgreementContent
{
    param (
        [parameter(mandatory=$False,HelpMessage='The AS2 one-way send agreement.)')]
        [AS2OneWayAgreement]
        $sendAgreement,
        [parameter(mandatory=$False,HelpMessage='The AS2 one-way receive agreement.)')]
        [AS2OneWayAgreement]
        $receiveAgreement
    )

    process
    {
        return $([AS2AgreementContent]$PSBoundParameters)
    }
}
class EdifactProcessingSettings
{
    [bool] $createEmptyXmlTagsForTrailingSeparators
    [bool] $suspendInterchangeOnError
    [bool] $maskSecurityInfo
    [bool] $preserveInterchange
    [bool] $useDotAsDecimalSeparator
}
function New-AzureNativeTypeLogicEdifactProcessingSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to create empty xml tags for trailing separators.)')]
        [bool]
        $createEmptyXmlTagsForTrailingSeparators,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to suspend interchange on error.)')]
        [bool]
        $suspendInterchangeOnError,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to mask security information.)')]
        [bool]
        $maskSecurityInfo,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to preserve interchange.)')]
        [bool]
        $preserveInterchange,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to use dot as decimal separator.)')]
        [bool]
        $useDotAsDecimalSeparator
    )

    process
    {
        return $([EdifactProcessingSettings]$PSBoundParameters)
    }
}
class EdifactDelimiterOverride
{
    [string] $messageId
    [int] $releaseIndicator
    [string] $messageRelease
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [object] $decimalPointIndicator
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [string] $messageVersion
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [int] $componentSeparator
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [int] $repetitionSeparator
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [object] $segmentTerminatorSuffix
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [int] $dataElementSeparator
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [string] $messageAssociationAssignedCode
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [string] $targetNamespace
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [int] $segmentTerminator
}
function New-AzureNativeTypeLogicEdifactDelimiterOverride
{
    param (
        [parameter(mandatory=$False,HelpMessage='The message id.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The release indicator.)')]
        [int]
        $releaseIndicator,
        [parameter(mandatory=$False,HelpMessage='The message release.)')]
        [string]
        $messageRelease,
        [parameter(mandatory=$False,HelpMessage='The decimal point indicator.)')]
        $decimalPointIndicator,
        [parameter(mandatory=$False,HelpMessage='The message version.)')]
        [string]
        $messageVersion,
        [parameter(mandatory=$False,HelpMessage='The component separator.)')]
        [int]
        $componentSeparator,
        [parameter(mandatory=$False,HelpMessage='The repetition separator.)')]
        [int]
        $repetitionSeparator,
        [parameter(mandatory=$False,HelpMessage='The segment terminator suffix.)')]
        $segmentTerminatorSuffix,
        [parameter(mandatory=$False,HelpMessage='The data element separator.)')]
        [int]
        $dataElementSeparator,
        [parameter(mandatory=$False,HelpMessage='The message association assigned code.)')]
        [string]
        $messageAssociationAssignedCode,
        [parameter(mandatory=$False,HelpMessage='The target namespace on which this delimiter settings has to be applied.)')]
        [string]
        $targetNamespace,
        [parameter(mandatory=$False,HelpMessage='The segment terminator.)')]
        [int]
        $segmentTerminator
    )

    process
    {
        return $([EdifactDelimiterOverride]$PSBoundParameters)
    }
}
class EdifactValidationOverride
{
    [bool] $trimLeadingAndTrailingSpacesAndZeroes
    [bool] $enforceCharacterSet
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [string] $trailingSeparatorPolicy
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [string] $messageId
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $allowLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $validateEDITypes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $validateXSDTypes
}
function New-AzureNativeTypeLogicEdifactValidationOverride
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to trim leading and trailing spaces and zeroes.)')]
        [bool]
        $trimLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate character Set.)')]
        [bool]
        $enforceCharacterSet,
        [parameter(mandatory=$False,HelpMessage='The trailing separator policy.)')]
        [string]
        [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
        $trailingSeparatorPolicy,
        [parameter(mandatory=$False,HelpMessage='The message id on which the validation settings has to be applied.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to allow leading and trailing spaces and zeroes.)')]
        [bool]
        $allowLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate EDI types.)')]
        [bool]
        $validateEDITypes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate XSD types.)')]
        [bool]
        $validateXSDTypes
    )

    process
    {
        return $([EdifactValidationOverride]$PSBoundParameters)
    }
}
class EdifactEnvelopeSettings
{
    [bool] $rolloverInterchangeControlNumber
    [string] $groupMessageRelease
    [string] $communicationAgreementId
    [bool] $enableDefaultGroupHeaders
    [bool] $isTestInterchange
    [int] $interchangeControlNumberLowerBound
    [string] $interchangeControlNumberPrefix
    [string] $recipientReferencePasswordQualifier
    [string] $groupApplicationReceiverQualifier
    [string] $groupApplicationPassword
    [int] $interchangeControlNumberUpperBound
    [int] $groupControlNumberUpperBound
    [string] $interchangeControlNumberSuffix
    [string] $groupControlNumberPrefix
    [string] $senderInternalIdentification
    [string] $groupMessageVersion
    [bool] $applyDelimiterStringAdvice
    [string] $recipientReferencePasswordValue
    [bool] $overwriteExistingTransactionSetControlNumber
    [string] $senderInternalSubIdentification
    [int] $groupControlNumberLowerBound
    [bool] $rolloverGroupControlNumber
    [int] $transactionSetControlNumberLowerBound
    [string] $groupControlNumberSuffix
    [bool] $rolloverTransactionSetControlNumber
    [string] $transactionSetControlNumberSuffix
    [string] $senderReverseRoutingAddress
    [string] $transactionSetControlNumberPrefix
    [string] $groupApplicationSenderQualifier
    [string] $receiverInternalSubIdentification
    [string] $functionalGroupId
    [string] $receiverInternalIdentification
    [string] $groupApplicationSenderId
    [bool] $createGroupingSegments
    [string] $receiverReverseRoutingAddress
    [string] $groupApplicationReceiverId
    [string] $applicationReferenceId
    [string] $groupControllingAgencyCode
    [string] $groupAssociationAssignedCode
    [int] $transactionSetControlNumberUpperBound
    [string] $processingPriorityCode
}
function New-AzureNativeTypeLogicEdifactEnvelopeSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover interchange control number.)')]
        [bool]
        $rolloverInterchangeControlNumber,
        [parameter(mandatory=$False,HelpMessage='The group message release.)')]
        [string]
        $groupMessageRelease,
        [parameter(mandatory=$False,HelpMessage='The communication agreement id.)')]
        [string]
        $communicationAgreementId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to enable default group headers.)')]
        [bool]
        $enableDefaultGroupHeaders,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the message is a test interchange.)')]
        [bool]
        $isTestInterchange,
        [parameter(mandatory=$False,HelpMessage='The interchange control number lower bound.)')]
        [int]
        $interchangeControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The interchange control number prefix.)')]
        [string]
        $interchangeControlNumberPrefix,
        [parameter(mandatory=$False,HelpMessage='The recipient reference password qualifier.)')]
        [string]
        $recipientReferencePasswordQualifier,
        [parameter(mandatory=$False,HelpMessage='The group application receiver qualifier.)')]
        [string]
        $groupApplicationReceiverQualifier,
        [parameter(mandatory=$False,HelpMessage='The group application password.)')]
        [string]
        $groupApplicationPassword,
        [parameter(mandatory=$False,HelpMessage='The interchange control number upper bound.)')]
        [int]
        $interchangeControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The group control number upper bound.)')]
        [int]
        $groupControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The interchange control number suffix.)')]
        [string]
        $interchangeControlNumberSuffix,
        [parameter(mandatory=$False,HelpMessage='The group control number prefix.)')]
        [string]
        $groupControlNumberPrefix,
        [parameter(mandatory=$False,HelpMessage='The sender internal identification.)')]
        [string]
        $senderInternalIdentification,
        [parameter(mandatory=$False,HelpMessage='The group message version.)')]
        [string]
        $groupMessageVersion,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to apply delimiter string advice.)')]
        [bool]
        $applyDelimiterStringAdvice,
        [parameter(mandatory=$False,HelpMessage='The recipient reference password value.)')]
        [string]
        $recipientReferencePasswordValue,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to overwrite existing transaction set control number.)')]
        [bool]
        $overwriteExistingTransactionSetControlNumber,
        [parameter(mandatory=$False,HelpMessage='The sender internal sub identification.)')]
        [string]
        $senderInternalSubIdentification,
        [parameter(mandatory=$False,HelpMessage='The group control number lower bound.)')]
        [int]
        $groupControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover group control number.)')]
        [bool]
        $rolloverGroupControlNumber,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number lower bound.)')]
        [int]
        $transactionSetControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The group control number suffix.)')]
        [string]
        $groupControlNumberSuffix,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover transaction set control number.)')]
        [bool]
        $rolloverTransactionSetControlNumber,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number suffix.)')]
        [string]
        $transactionSetControlNumberSuffix,
        [parameter(mandatory=$False,HelpMessage='The sender reverse routing address.)')]
        [string]
        $senderReverseRoutingAddress,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number prefix.)')]
        [string]
        $transactionSetControlNumberPrefix,
        [parameter(mandatory=$False,HelpMessage='The group application sender qualifier.)')]
        [string]
        $groupApplicationSenderQualifier,
        [parameter(mandatory=$False,HelpMessage='The receiver internal sub identification.)')]
        [string]
        $receiverInternalSubIdentification,
        [parameter(mandatory=$False,HelpMessage='The functional group id.)')]
        [string]
        $functionalGroupId,
        [parameter(mandatory=$False,HelpMessage='The receiver internal identification.)')]
        [string]
        $receiverInternalIdentification,
        [parameter(mandatory=$False,HelpMessage='The group application sender id.)')]
        [string]
        $groupApplicationSenderId,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to create grouping segments.)')]
        [bool]
        $createGroupingSegments,
        [parameter(mandatory=$False,HelpMessage='The receiver reverse routing address.)')]
        [string]
        $receiverReverseRoutingAddress,
        [parameter(mandatory=$False,HelpMessage='The group application receiver id.)')]
        [string]
        $groupApplicationReceiverId,
        [parameter(mandatory=$False,HelpMessage='The application reference id.)')]
        [string]
        $applicationReferenceId,
        [parameter(mandatory=$False,HelpMessage='The group controlling agency code.)')]
        [string]
        $groupControllingAgencyCode,
        [parameter(mandatory=$False,HelpMessage='The group association assigned code.)')]
        [string]
        $groupAssociationAssignedCode,
        [parameter(mandatory=$False,HelpMessage='The transaction set control number upper bound.)')]
        [int]
        $transactionSetControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The processing priority code.)')]
        [string]
        $processingPriorityCode
    )

    process
    {
        return $([EdifactEnvelopeSettings]$PSBoundParameters)
    }
}
class EdifactSchemaReference
{
    [string] $associationAssignedCode
    [string] $senderApplicationId
    [string] $messageId
    [string] $schemaName
    [string] $messageVersion
    [string] $messageRelease
    [string] $senderApplicationQualifier
}
function New-AzureNativeTypeLogicEdifactSchemaReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The association assigned code.)')]
        [string]
        $associationAssignedCode,
        [parameter(mandatory=$False,HelpMessage='The sender application id.)')]
        [string]
        $senderApplicationId,
        [parameter(mandatory=$False,HelpMessage='The message id.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The schema name.)')]
        [string]
        $schemaName,
        [parameter(mandatory=$False,HelpMessage='The message version.)')]
        [string]
        $messageVersion,
        [parameter(mandatory=$False,HelpMessage='The message release version.)')]
        [string]
        $messageRelease,
        [parameter(mandatory=$False,HelpMessage='The sender application qualifier.)')]
        [string]
        $senderApplicationQualifier
    )

    process
    {
        return $([EdifactSchemaReference]$PSBoundParameters)
    }
}
class EdifactMessageIdentifier
{
    [string] $messageId
}
function New-AzureNativeTypeLogicEdifactMessageIdentifier
{
    param (
        [parameter(mandatory=$False,HelpMessage='The message id on which this envelope settings has to be applied.)')]
        [string]
        $messageId
    )

    process
    {
        return $([EdifactMessageIdentifier]$PSBoundParameters)
    }
}
class EdifactValidationSettings
{
    [bool] $validateCharacterSet
    [bool] $validateEDITypes
    [bool] $trimLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [string] $trailingSeparatorPolicy
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $checkDuplicateTransactionSetControlNumber
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $checkDuplicateInterchangeControlNumber
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $validateXSDTypes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [int] $interchangeControlNumberValidityDays
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $allowLeadingAndTrailingSpacesAndZeroes
    [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
    [bool] $checkDuplicateGroupControlNumber
}
function New-AzureNativeTypeLogicEdifactValidationSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to validate character set in the message.)')]
        [bool]
        $validateCharacterSet,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to Whether to validate EDI types.)')]
        [bool]
        $validateEDITypes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to trim leading and trailing spaces and zeroes.)')]
        [bool]
        $trimLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The trailing separator policy.)')]
        [string]
        [ValidateSet('NotSpecified', 'NotAllowed', 'Optional', 'Mandatory')]
        $trailingSeparatorPolicy,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate transaction set control number.)')]
        [bool]
        $checkDuplicateTransactionSetControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate interchange control number.)')]
        [bool]
        $checkDuplicateInterchangeControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to Whether to validate XSD types.)')]
        [bool]
        $validateXSDTypes,
        [parameter(mandatory=$False,HelpMessage='The validity period of interchange control number.)')]
        [int]
        $interchangeControlNumberValidityDays,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to allow leading and trailing spaces and zeroes.)')]
        [bool]
        $allowLeadingAndTrailingSpacesAndZeroes,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to check for duplicate group control number.)')]
        [bool]
        $checkDuplicateGroupControlNumber
    )

    process
    {
        return $([EdifactValidationSettings]$PSBoundParameters)
    }
}
class EdifactEnvelopeOverride
{
    [string] $receiverApplicationQualifier
    [string] $senderApplicationId
    [string] $groupHeaderMessageRelease
    [string] $groupHeaderMessageVersion
    [string] $messageId
    [string] $applicationPassword
    [string] $messageRelease
    [string] $controllingAgencyCode
    [string] $targetNamespace
    [string] $messageVersion
    [string] $messageAssociationAssignedCode
    [string] $senderApplicationQualifier
    [string] $functionalGroupId
    [string] $receiverApplicationId
    [string] $associationAssignedCode
}
function New-AzureNativeTypeLogicEdifactEnvelopeOverride
{
    param (
        [parameter(mandatory=$False,HelpMessage='The receiver application qualifier.)')]
        [string]
        $receiverApplicationQualifier,
        [parameter(mandatory=$False,HelpMessage='The sender application id.)')]
        [string]
        $senderApplicationId,
        [parameter(mandatory=$False,HelpMessage='The group header message release.)')]
        [string]
        $groupHeaderMessageRelease,
        [parameter(mandatory=$False,HelpMessage='The group header message version.)')]
        [string]
        $groupHeaderMessageVersion,
        [parameter(mandatory=$False,HelpMessage='The message id on which this envelope settings has to be applied.)')]
        [string]
        $messageId,
        [parameter(mandatory=$False,HelpMessage='The application password.)')]
        [string]
        $applicationPassword,
        [parameter(mandatory=$False,HelpMessage='The message release version on which this envelope settings has to be applied.)')]
        [string]
        $messageRelease,
        [parameter(mandatory=$False,HelpMessage='The controlling agency code.)')]
        [string]
        $controllingAgencyCode,
        [parameter(mandatory=$False,HelpMessage='The target namespace on which this envelope settings has to be applied.)')]
        [string]
        $targetNamespace,
        [parameter(mandatory=$False,HelpMessage='The message version on which this envelope settings has to be applied.)')]
        [string]
        $messageVersion,
        [parameter(mandatory=$False,HelpMessage='The message association assigned code.)')]
        [string]
        $messageAssociationAssignedCode,
        [parameter(mandatory=$False,HelpMessage='The sender application qualifier.)')]
        [string]
        $senderApplicationQualifier,
        [parameter(mandatory=$False,HelpMessage='The functional group id.)')]
        [string]
        $functionalGroupId,
        [parameter(mandatory=$False,HelpMessage='The receiver application id.)')]
        [string]
        $receiverApplicationId,
        [parameter(mandatory=$False,HelpMessage='The association assigned code.)')]
        [string]
        $associationAssignedCode
    )

    process
    {
        return $([EdifactEnvelopeOverride]$PSBoundParameters)
    }
}
class EdifactMessageFilter
{
    [ValidateSet('NotSpecified', 'Include', 'Exclude')]
    [string] $messageFilterType
}
function New-AzureNativeTypeLogicEdifactMessageFilter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The message filter type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Include', 'Exclude')]
        $messageFilterType
    )

    process
    {
        return $([EdifactMessageFilter]$PSBoundParameters)
    }
}
class EdifactFramingSettings
{
    [int] $releaseIndicator
    [int] $protocolVersion
    [string] $serviceCodeListDirectoryVersion
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [object] $decimalPointIndicator
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [string] $characterEncoding
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [int] $componentSeparator
    [ValidateSet('NotSpecified', 'Comma', 'Decimal')]
    [int] $repetitionSeparator
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [object] $segmentTerminatorSuffix
    [ValidateSet('NotSpecified', 'None', 'CR', 'LF', 'CRLF')]
    [int] $dataElementSeparator
    [ValidateSet('NotSpecified', 'UNOB', 'UNOA', 'UNOC', 'UNOD', 'UNOE', 'UNOF', 'UNOG', 'UNOH', 'UNOI', 'UNOJ', 'UNOK', 'UNOX', 'UNOY', 'KECA')]
    [string] $characterSet
    [ValidateSet('NotSpecified', 'UNOB', 'UNOA', 'UNOC', 'UNOD', 'UNOE', 'UNOF', 'UNOG', 'UNOH', 'UNOI', 'UNOJ', 'UNOK', 'UNOX', 'UNOY', 'KECA')]
    [int] $segmentTerminator
}
function New-AzureNativeTypeLogicEdifactFramingSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The release indicator.)')]
        [int]
        $releaseIndicator,
        [parameter(mandatory=$False,HelpMessage='The protocol version.)')]
        [int]
        $protocolVersion,
        [parameter(mandatory=$False,HelpMessage='The service code list directory version.)')]
        [string]
        $serviceCodeListDirectoryVersion,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT frame setting decimal indicator.)')]
        $decimalPointIndicator,
        [parameter(mandatory=$False,HelpMessage='The character encoding.)')]
        [string]
        $characterEncoding,
        [parameter(mandatory=$False,HelpMessage='The component separator.)')]
        [int]
        $componentSeparator,
        [parameter(mandatory=$False,HelpMessage='The repetition separator.)')]
        [int]
        $repetitionSeparator,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT frame setting segment terminator suffix.)')]
        $segmentTerminatorSuffix,
        [parameter(mandatory=$False,HelpMessage='The data element separator.)')]
        [int]
        $dataElementSeparator,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT frame setting characterSet.)')]
        [string]
        [ValidateSet('NotSpecified', 'UNOB', 'UNOA', 'UNOC', 'UNOD', 'UNOE', 'UNOF', 'UNOG', 'UNOH', 'UNOI', 'UNOJ', 'UNOK', 'UNOX', 'UNOY', 'KECA')]
        $characterSet,
        [parameter(mandatory=$False,HelpMessage='The segment terminator.)')]
        [int]
        $segmentTerminator
    )

    process
    {
        return $([EdifactFramingSettings]$PSBoundParameters)
    }
}
class EdifactAcknowledgementSettings
{
    [string] $acknowledgementControlNumberPrefix
    [bool] $needFunctionalAcknowledgement
    [string] $acknowledgementControlNumberSuffix
    [bool] $needTechnicalAcknowledgement
    [bool] $batchFunctionalAcknowledgements
    [int] $acknowledgementControlNumberUpperBound
    [bool] $needLoopForValidMessages
    [bool] $rolloverAcknowledgementControlNumber
    [bool] $batchTechnicalAcknowledgements
    [int] $acknowledgementControlNumberLowerBound
    [bool] $sendSynchronousAcknowledgement
}
function New-AzureNativeTypeLogicEdifactAcknowledgementSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number prefix.)')]
        [string]
        $acknowledgementControlNumberPrefix,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether functional acknowledgement is needed.)')]
        [bool]
        $needFunctionalAcknowledgement,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number suffix.)')]
        [string]
        $acknowledgementControlNumberSuffix,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether technical acknowledgement is needed.)')]
        [bool]
        $needTechnicalAcknowledgement,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to batch functional acknowledgements.)')]
        [bool]
        $batchFunctionalAcknowledgements,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number upper bound.)')]
        [int]
        $acknowledgementControlNumberUpperBound,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether a loop is needed for valid messages.)')]
        [bool]
        $needLoopForValidMessages,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to rollover acknowledgement control number.)')]
        [bool]
        $rolloverAcknowledgementControlNumber,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to batch the technical acknowledgements.)')]
        [bool]
        $batchTechnicalAcknowledgements,
        [parameter(mandatory=$False,HelpMessage='The acknowledgement control number lower bound.)')]
        [int]
        $acknowledgementControlNumberLowerBound,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether to send synchronous acknowledgement.)')]
        [bool]
        $sendSynchronousAcknowledgement
    )

    process
    {
        return $([EdifactAcknowledgementSettings]$PSBoundParameters)
    }
}
class EdifactProtocolSettings
{
    [EdifactProcessingSettings] $processingSettings
    [EdifactDelimiterOverride[]] $edifactDelimiterOverrides
    [EdifactValidationOverride[]] $validationOverrides
    [EdifactEnvelopeSettings] $envelopeSettings
    [EdifactSchemaReference[]] $schemaReferences
    [EdifactMessageIdentifier[]] $messageFilterList
    [EdifactValidationSettings] $validationSettings
    [EdifactEnvelopeOverride[]] $envelopeOverrides
    [EdifactMessageFilter] $messageFilter
    [EdifactFramingSettings] $framingSettings
    [EdifactAcknowledgementSettings] $acknowledgementSettings
}
function New-AzureNativeTypeLogicEdifactProtocolSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The EDIFACT processing Settings.)')]
        [EdifactProcessingSettings]
        $processingSettings,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT delimiter override settings.)')]
        $edifactDelimiterOverrides,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT validation override settings.)')]
        $validationOverrides,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT envelope settings.)')]
        [EdifactEnvelopeSettings]
        $envelopeSettings,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT schema references.)')]
        $schemaReferences,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT message filter list.)')]
        $messageFilterList,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT validation settings.)')]
        [EdifactValidationSettings]
        $validationSettings,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT envelope override settings.)')]
        $envelopeOverrides,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT message filter.)')]
        [EdifactMessageFilter]
        $messageFilter,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT framing settings.)')]
        [EdifactFramingSettings]
        $framingSettings,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT acknowledgement settings.)')]
        [EdifactAcknowledgementSettings]
        $acknowledgementSettings
    )

    process
    {
        return $([EdifactProtocolSettings]$PSBoundParameters)
    }
}
class EdifactOneWayAgreement
{
    [BusinessIdentity] $senderBusinessIdentity
    [EdifactProtocolSettings] $protocolSettings
    [BusinessIdentity] $receiverBusinessIdentity
}
function New-AzureNativeTypeLogicEdifactOneWayAgreement
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sender business identity)')]
        [BusinessIdentity]
        $senderBusinessIdentity,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT protocol settings.)')]
        [EdifactProtocolSettings]
        $protocolSettings,
        [parameter(mandatory=$False,HelpMessage='The receiver business identity)')]
        [BusinessIdentity]
        $receiverBusinessIdentity
    )

    process
    {
        return $([EdifactOneWayAgreement]$PSBoundParameters)
    }
}
class EdifactAgreementContent
{
    [EdifactOneWayAgreement] $sendAgreement
    [EdifactOneWayAgreement] $receiveAgreement
}
function New-AzureNativeTypeLogicEdifactAgreementContent
{
    param (
        [parameter(mandatory=$False,HelpMessage='The EDIFACT one-way send agreement.)')]
        [EdifactOneWayAgreement]
        $sendAgreement,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT one-way receive agreement.)')]
        [EdifactOneWayAgreement]
        $receiveAgreement
    )

    process
    {
        return $([EdifactAgreementContent]$PSBoundParameters)
    }
}
class AgreementContent
{
    [X12AgreementContent] $x12
    [AS2AgreementContent] $aS2
    [EdifactAgreementContent] $edifact
}
function New-AzureNativeTypeLogicAgreementContent
{
    param (
        [parameter(mandatory=$False,HelpMessage='The X12 agreement content.)')]
        [X12AgreementContent]
        $x12,
        [parameter(mandatory=$False,HelpMessage='The AS2 agreement content.)')]
        [AS2AgreementContent]
        $aS2,
        [parameter(mandatory=$False,HelpMessage='The EDIFACT agreement content.)')]
        [EdifactAgreementContent]
        $edifact
    )

    process
    {
        return $([AgreementContent]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccountAgreement
{
    [Alias('azure_native_logic_integrationaccountagreement')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account agreement name.)')]
        [string]
        $agreementName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The integration account partner that is set as host partner for this agreement.)')]
        [string]
        $hostPartner,
        [parameter(mandatory=$False,HelpMessage='The agreement type.)')]
        $agreementType,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The agreement content.)')]
        [AgreementContent]
        $content,
        [parameter(mandatory=$False,HelpMessage='The business identity of the host partner.)')]
        [BusinessIdentity]
        $hostIdentity,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The integration account partner that is set as guest partner for this agreement.)')]
        [string]
        $guestPartner,
        [parameter(mandatory=$False,HelpMessage='The business identity of the guest partner.)')]
        [BusinessIdentity]
        $guestIdentity,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["agreementType"] = $agreementType
        $resource.properties["content"] = $content
        $resource.properties["guestIdentity"] = $guestIdentity
        $resource.properties["guestPartner"] = $guestPartner
        $resource.properties["hostIdentity"] = $hostIdentity
        $resource.properties["hostPartner"] = $hostPartner
        $resource.properties["integrationAccountName"] = $integrationAccountName
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class IpAddressRange
{
    [string] $addressRange
}
function New-AzureNativeTypeLogicIpAddressRange
{
    param (
        [parameter(mandatory=$False,HelpMessage='The IP address range.)')]
        [string]
        $addressRange
    )

    process
    {
        return $([IpAddressRange]$PSBoundParameters)
    }
}
class OpenAuthenticationAccessPolicies
{
    [object] $policies
}
class OpenAuthenticationPolicyClaim
{
    [ValidateSet('AAD')]
    [string] $name
    [ValidateSet('AAD')]
    [string] $value
}
function New-AzureNativeTypeLogicOpenAuthenticationPolicyClaim
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the claim.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The value of the claim.)')]
        [string]
        $value
    )

    process
    {
        return $([OpenAuthenticationPolicyClaim]$PSBoundParameters)
    }
}
class OpenAuthenticationAccessPolicy
{
    [ValidateSet('AAD')]
    [string] $type
    [ValidateSet('AAD')]
    [OpenAuthenticationPolicyClaim[]] $claims
}
function New-AzureNativeTypeLogicOpenAuthenticationAccessPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of provider for OAuth.)')]
        [string]
        [ValidateSet('AAD')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The access policy claims.)')]
        $claims
    )

    process
    {
        return $([OpenAuthenticationAccessPolicy]$PSBoundParameters)
    }
}
function New-AzureNativeTypeLogicOpenAuthenticationAccessPolicies
{
    param (
        [parameter(mandatory=$False,HelpMessage='Open authentication policies.)')]
        [OpenAuthenticationAccessPolicy]
        $policies
    )

    process
    {
        return $([OpenAuthenticationAccessPolicies]$PSBoundParameters)
    }
}
class FlowAccessControlConfigurationPolicy
{
    [IpAddressRange[]] $allowedCallerIpAddresses
    [OpenAuthenticationAccessPolicies] $openAuthenticationPolicies
}
function New-AzureNativeTypeLogicFlowAccessControlConfigurationPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The allowed caller IP address ranges.)')]
        $allowedCallerIpAddresses,
        [parameter(mandatory=$False,HelpMessage='The authentication policies for workflow.)')]
        [OpenAuthenticationAccessPolicies]
        $openAuthenticationPolicies
    )

    process
    {
        return $([FlowAccessControlConfigurationPolicy]$PSBoundParameters)
    }
}
class FlowAccessControlConfiguration
{
    [FlowAccessControlConfigurationPolicy] $actions
    [FlowAccessControlConfigurationPolicy] $triggers
    [FlowAccessControlConfigurationPolicy] $contents
    [FlowAccessControlConfigurationPolicy] $workflowManagement
}
function New-AzureNativeTypeLogicFlowAccessControlConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The access control configuration for workflow actions.)')]
        [FlowAccessControlConfigurationPolicy]
        $actions,
        [parameter(mandatory=$False,HelpMessage='The access control configuration for invoking workflow triggers.)')]
        [FlowAccessControlConfigurationPolicy]
        $triggers,
        [parameter(mandatory=$False,HelpMessage='The access control configuration for accessing workflow run contents.)')]
        [FlowAccessControlConfigurationPolicy]
        $contents,
        [parameter(mandatory=$False,HelpMessage='The access control configuration for workflow management.)')]
        [FlowAccessControlConfigurationPolicy]
        $workflowManagement
    )

    process
    {
        return $([FlowAccessControlConfiguration]$PSBoundParameters)
    }
}
class ManagedServiceIdentity
{
    [ValidateSet('SystemAssigned', 'UserAssigned', 'None')]
    [string] $type
    [ValidateSet('SystemAssigned', 'UserAssigned', 'None')]
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeLogicManagedServiceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of managed service identity. The type ''SystemAssigned'' includes an implicitly created identity. The type ''None'' will remove any identities from the resource.)')]
        [string]
        [ValidateSet('SystemAssigned', 'UserAssigned', 'None')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The list of user assigned 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})')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([ManagedServiceIdentity]$PSBoundParameters)
    }
}
class WorkflowParameter
{
    [string] $description
    [ValidateSet('NotSpecified', 'String', 'SecureString', 'Int', 'Float', 'Bool', 'Array', 'Object', 'SecureObject')]
    [string] $type
    [ValidateSet('NotSpecified', 'String', 'SecureString', 'Int', 'Float', 'Bool', 'Array', 'Object', 'SecureObject')]
    [object] $value
    [ValidateSet('NotSpecified', 'String', 'SecureString', 'Int', 'Float', 'Bool', 'Array', 'Object', 'SecureObject')]
    [object] $metadata
}
function New-AzureNativeTypeLogicWorkflowParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The type.)')]
        [string]
        [ValidateSet('NotSpecified', 'String', 'SecureString', 'Int', 'Float', 'Bool', 'Array', 'Object', 'SecureObject')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The value.)')]
        $value,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        $metadata
    )

    process
    {
        return $([WorkflowParameter]$PSBoundParameters)
    }
}
class IpAddress
{
    [string] $address
}
function New-AzureNativeTypeLogicIpAddress
{
    param (
        [parameter(mandatory=$False,HelpMessage='The address.)')]
        [string]
        $address
    )

    process
    {
        return $([IpAddress]$PSBoundParameters)
    }
}
class FlowEndpoints
{
    [IpAddress[]] $outgoingIpAddresses
    [IpAddress[]] $accessEndpointIpAddresses
}
function New-AzureNativeTypeLogicFlowEndpoints
{
    param (
        [parameter(mandatory=$False,HelpMessage='The outgoing ip address.)')]
        $outgoingIpAddresses,
        [parameter(mandatory=$False,HelpMessage='The access endpoint ip address.)')]
        $accessEndpointIpAddresses
    )

    process
    {
        return $([FlowEndpoints]$PSBoundParameters)
    }
}
class FlowEndpointsConfiguration
{
    [FlowEndpoints] $workflow
    [FlowEndpoints] $connector
}
function New-AzureNativeTypeLogicFlowEndpointsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The workflow endpoints.)')]
        [FlowEndpoints]
        $workflow,
        [parameter(mandatory=$False,HelpMessage='The connector endpoints.)')]
        [FlowEndpoints]
        $connector
    )

    process
    {
        return $([FlowEndpointsConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeLogicWorkflow
{
    [Alias('azure_native_logic_workflow')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The access control configuration.)')]
        [FlowAccessControlConfiguration]
        $accessControl,
        [parameter(mandatory=$False,HelpMessage='Managed service identity properties.)')]
        [ManagedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The definition.)')]
        $definition,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName,
        [parameter(mandatory=$False,HelpMessage='The state.)')]
        [string]
        [ValidateSet('NotSpecified', 'Completed', 'Enabled', 'Disabled', 'Deleted', 'Suspended')]
        $state,
        [parameter(mandatory=$False,HelpMessage='The integration account.)')]
        [ResourceReference]
        $integrationAccount,
        [parameter(mandatory=$False,HelpMessage='The integration service environment.)')]
        [ResourceReference]
        $integrationServiceEnvironment,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The parameters.)')]
        [WorkflowParameter]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='The endpoints configuration.)')]
        [FlowEndpointsConfiguration]
        $endpointsConfiguration,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class IntegrationServiceEnvironmenEncryptionKeyReference
{
    [string] $keyVersion
    [string] $keyName
    [ResourceReference] $keyVault
}
function New-AzureNativeTypeLogicIntegrationServiceEnvironmenEncryptionKeyReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets the version of the key specified in the keyName property.)')]
        [string]
        $keyVersion,
        [parameter(mandatory=$False,HelpMessage='Gets the key name in the Key Vault.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The key vault reference.)')]
        [ResourceReference]
        $keyVault
    )

    process
    {
        return $([IntegrationServiceEnvironmenEncryptionKeyReference]$PSBoundParameters)
    }
}
class IntegrationServiceEnvironmenEncryptionConfiguration
{
    [IntegrationServiceEnvironmenEncryptionKeyReference] $encryptionKeyReference
}
function New-AzureNativeTypeLogicIntegrationServiceEnvironmenEncryptionConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The encryption key reference.)')]
        [IntegrationServiceEnvironmenEncryptionKeyReference]
        $encryptionKeyReference
    )

    process
    {
        return $([IntegrationServiceEnvironmenEncryptionConfiguration]$PSBoundParameters)
    }
}
class IntegrationServiceEnvironmentAccessEndpoint
{
    [ValidateSet('NotSpecified', 'External', 'Internal')]
    [string] $type
}
function New-AzureNativeTypeLogicIntegrationServiceEnvironmentAccessEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='The access endpoint type.)')]
        [string]
        [ValidateSet('NotSpecified', 'External', 'Internal')]
        $type
    )

    process
    {
        return $([IntegrationServiceEnvironmentAccessEndpoint]$PSBoundParameters)
    }
}
class NetworkConfiguration
{
    [ValidateSet('NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Moving', 'Updating', 'Registering', 'Registered', 'Unregistering', 'Unregistered', 'Completed', 'Renewing', 'Pending', 'Waiting', 'InProgress')]
    [string] $virtualNetworkAddressSpace
    [ValidateSet('NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Moving', 'Updating', 'Registering', 'Registered', 'Unregistering', 'Unregistered', 'Completed', 'Renewing', 'Pending', 'Waiting', 'InProgress')]
    [ResourceReference[]] $subnets
    [ValidateSet('NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Moving', 'Updating', 'Registering', 'Registered', 'Unregistering', 'Unregistered', 'Completed', 'Renewing', 'Pending', 'Waiting', 'InProgress')]
    [IntegrationServiceEnvironmentAccessEndpoint] $accessEndpoint
}
function New-AzureNativeTypeLogicNetworkConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets the virtual network address space.)')]
        [string]
        $virtualNetworkAddressSpace,
        [parameter(mandatory=$False,HelpMessage='The subnets.)')]
        $subnets,
        [parameter(mandatory=$False,HelpMessage='The access endpoint.)')]
        [IntegrationServiceEnvironmentAccessEndpoint]
        $accessEndpoint
    )

    process
    {
        return $([NetworkConfiguration]$PSBoundParameters)
    }
}
class IntegrationServiceEnvironmentProperties
{
    [string] $integrationServiceEnvironmentId
    [IntegrationServiceEnvironmenEncryptionConfiguration] $encryptionConfiguration
    [ValidateSet('NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Moving', 'Updating', 'Registering', 'Registered', 'Unregistering', 'Unregistered', 'Completed', 'Renewing', 'Pending', 'Waiting', 'InProgress')]
    [string] $provisioningState
    [ValidateSet('NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Moving', 'Updating', 'Registering', 'Registered', 'Unregistering', 'Unregistered', 'Completed', 'Renewing', 'Pending', 'Waiting', 'InProgress')]
    [NetworkConfiguration] $networkConfiguration
    [ValidateSet('NotSpecified', 'Completed', 'Enabled', 'Disabled', 'Deleted', 'Suspended')]
    [string] $state
    [ValidateSet('NotSpecified', 'Completed', 'Enabled', 'Disabled', 'Deleted', 'Suspended')]
    [FlowEndpointsConfiguration] $endpointsConfiguration
}
function New-AzureNativeTypeLogicIntegrationServiceEnvironmentProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Gets the tracking id.)')]
        [string]
        $integrationServiceEnvironmentId,
        [parameter(mandatory=$False,HelpMessage='The encryption configuration.)')]
        [IntegrationServiceEnvironmenEncryptionConfiguration]
        $encryptionConfiguration,
        [parameter(mandatory=$False,HelpMessage='The provisioning state.)')]
        [string]
        [ValidateSet('NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Moving', 'Updating', 'Registering', 'Registered', 'Unregistering', 'Unregistered', 'Completed', 'Renewing', 'Pending', 'Waiting', 'InProgress')]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='The network configuration.)')]
        [NetworkConfiguration]
        $networkConfiguration,
        [parameter(mandatory=$False,HelpMessage='The integration service environment state.)')]
        [string]
        [ValidateSet('NotSpecified', 'Completed', 'Enabled', 'Disabled', 'Deleted', 'Suspended')]
        $state,
        [parameter(mandatory=$False,HelpMessage='The endpoints configuration.)')]
        [FlowEndpointsConfiguration]
        $endpointsConfiguration
    )

    process
    {
        return $([IntegrationServiceEnvironmentProperties]$PSBoundParameters)
    }
}
class IntegrationServiceEnvironmentSku
{
    [ValidateSet('NotSpecified', 'Premium', 'Developer')]
    [string] $name
    [ValidateSet('NotSpecified', 'Premium', 'Developer')]
    [int] $capacity
}
function New-AzureNativeTypeLogicIntegrationServiceEnvironmentSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sku name.)')]
        [string]
        [ValidateSet('NotSpecified', 'Premium', 'Developer')]
        $name,
        [parameter(mandatory=$False,HelpMessage='The sku capacity.)')]
        [int]
        $capacity
    )

    process
    {
        return $([IntegrationServiceEnvironmentSku]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationServiceEnvironment
{
    [Alias('azure_native_logic_integrationserviceenvironment')]
    param (
        [parameter(mandatory=$False,HelpMessage='The integration service environment properties.)')]
        [IntegrationServiceEnvironmentProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The sku.)')]
        [IntegrationServiceEnvironmentSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The integration service environment name.)')]
        [string]
        $integrationServiceEnvironmentName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Managed service identity properties.)')]
        [ManagedServiceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The resource group.)')]
        [string]
        $resourceGroup,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeLogicIntegrationAccountSession
{
    [Alias('azure_native_logic_integrationaccountsession')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The session content.)')]
        $content,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The integration account session name.)')]
        [string]
        $sessionName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class RosettaNetPipBusinessDocument
{
    [string] $description
    [string] $name
    [string] $version
}
function New-AzureNativeTypeLogicRosettaNetPipBusinessDocument
{
    param (
        [parameter(mandatory=$False,HelpMessage='The business document description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The business document name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The business document version.)')]
        [string]
        $version
    )

    process
    {
        return $([RosettaNetPipBusinessDocument]$PSBoundParameters)
    }
}
class RosettaNetPipRoleSettings
{
    [string] $description
    [string] $service
    [RosettaNetPipBusinessDocument] $businessDocument
    [string] $serviceClassification
    [ValidateSet('NotSpecified', 'Functional', 'Organizational', 'Employee')]
    [object] $roleType
    [ValidateSet('NotSpecified', 'Functional', 'Organizational', 'Employee')]
    [string] $role
    [ValidateSet('NotSpecified', 'Functional', 'Organizational', 'Employee')]
    [string] $action
}
function New-AzureNativeTypeLogicRosettaNetPipRoleSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The service name.)')]
        [string]
        $service,
        [parameter(mandatory=$False,HelpMessage='The RosettaNet ProcessConfiguration business document.)')]
        [RosettaNetPipBusinessDocument]
        $businessDocument,
        [parameter(mandatory=$False,HelpMessage='The service classification name.)')]
        [string]
        $serviceClassification,
        [parameter(mandatory=$False,HelpMessage='The RosettaNet ProcessConfiguration role type.)')]
        $roleType,
        [parameter(mandatory=$False,HelpMessage='The role name.)')]
        [string]
        $role,
        [parameter(mandatory=$False,HelpMessage='The action name.)')]
        [string]
        $action
    )

    process
    {
        return $([RosettaNetPipRoleSettings]$PSBoundParameters)
    }
}
class RosettaNetPipActivityBehavior
{
    [bool] $isSecuredTransportRequired
    [int] $retryCount
    [ValidateSet('NotSpecified', 'Sync', 'Async')]
    [object] $responseType
    [ValidateSet('NotSpecified', 'Sync', 'Async')]
    [int] $timeToPerformInSeconds
    [ValidateSet('NotSpecified', 'Sync', 'Async')]
    [bool] $isAuthorizationRequired
    [ValidateSet('NotSpecified', 'SingleAction', 'DoubleAction')]
    [object] $actionType
    [ValidateSet('NotSpecified', 'SingleAction', 'DoubleAction')]
    [bool] $nonRepudiationOfOriginAndContent
    [ValidateSet('NotSpecified', 'None', 'Payload', 'PayloadContainer')]
    [object] $persistentConfidentialityScope
}
function New-AzureNativeTypeLogicRosettaNetPipActivityBehavior
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value indicating whether secured transport is required.)')]
        [bool]
        $isSecuredTransportRequired,
        [parameter(mandatory=$False,HelpMessage='The value indicating retry count.)')]
        [int]
        $retryCount,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the RosettaNet PIP communication is synchronous.)')]
        $responseType,
        [parameter(mandatory=$False,HelpMessage='The time to perform in seconds.)')]
        [int]
        $timeToPerformInSeconds,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether authorization is required.)')]
        [bool]
        $isAuthorizationRequired,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether the RosettaNet PIP is used for a single action.)')]
        $actionType,
        [parameter(mandatory=$False,HelpMessage='The value indicating whether non-repudiation is for origin and content.)')]
        [bool]
        $nonRepudiationOfOriginAndContent,
        [parameter(mandatory=$False,HelpMessage='The persistent confidentiality encryption scope.)')]
        $persistentConfidentialityScope
    )

    process
    {
        return $([RosettaNetPipActivityBehavior]$PSBoundParameters)
    }
}
class RosettaNetPipAcknowledgmentOfReceiptSettings
{
    [ValidateSet('NotSpecified', 'InformationDistribution', 'BusinessTransaction', 'Notification', 'QueryResponse', 'RequestConfirm', 'RequestResponse')]
    [bool] $isNonRepudiationRequired
    [ValidateSet('NotSpecified', 'InformationDistribution', 'BusinessTransaction', 'Notification', 'QueryResponse', 'RequestConfirm', 'RequestResponse')]
    [int] $timeToAcknowledgeInSeconds
}
function New-AzureNativeTypeLogicRosettaNetPipAcknowledgmentOfReceiptSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The non-repudiation is required or not.)')]
        [bool]
        $isNonRepudiationRequired,
        [parameter(mandatory=$False,HelpMessage='The time to acknowledge in seconds.)')]
        [int]
        $timeToAcknowledgeInSeconds
    )

    process
    {
        return $([RosettaNetPipAcknowledgmentOfReceiptSettings]$PSBoundParameters)
    }
}
class RosettaNetPipActivitySettings
{
    [RosettaNetPipActivityBehavior] $activityBehavior
    [ValidateSet('NotSpecified', 'InformationDistribution', 'BusinessTransaction', 'Notification', 'QueryResponse', 'RequestConfirm', 'RequestResponse')]
    [object] $activityType
    [ValidateSet('NotSpecified', 'InformationDistribution', 'BusinessTransaction', 'Notification', 'QueryResponse', 'RequestConfirm', 'RequestResponse')]
    [RosettaNetPipAcknowledgmentOfReceiptSettings] $acknowledgmentOfReceiptSettings
}
function New-AzureNativeTypeLogicRosettaNetPipActivitySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The RosettaNet ProcessConfiguration activity behavior.)')]
        [RosettaNetPipActivityBehavior]
        $activityBehavior,
        [parameter(mandatory=$False,HelpMessage='The RosettaNet ProcessConfiguration activity type.)')]
        $activityType,
        [parameter(mandatory=$False,HelpMessage='The RosettaNet ProcessConfiguration acknowledgement settings.)')]
        [RosettaNetPipAcknowledgmentOfReceiptSettings]
        $acknowledgmentOfReceiptSettings
    )

    process
    {
        return $([RosettaNetPipActivitySettings]$PSBoundParameters)
    }
}
function New-AzureNativeLogicRosettaNetProcessConfiguration
{
    [Alias('azure_native_logic_rosettanetprocessconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='The RosettaNet responder role settings.)')]
        [RosettaNetPipRoleSettings]
        $responderRoleSettings,
        [parameter(mandatory=$False,HelpMessage='The integration account RosettaNet ProcessConfiguration name.)')]
        [string]
        $rosettaNetProcessConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The integration account RosettaNet ProcessConfiguration properties.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The integration account RosettaNet process name.)')]
        [string]
        $processName,
        [parameter(mandatory=$False,HelpMessage='The integration account RosettaNet process code.)')]
        [string]
        $processCode,
        [parameter(mandatory=$False,HelpMessage='The RosettaNet initiator role settings.)')]
        [RosettaNetPipRoleSettings]
        $initiatorRoleSettings,
        [parameter(mandatory=$False,HelpMessage='The RosettaNet process configuration activity settings.)')]
        [RosettaNetPipActivitySettings]
        $activitySettings,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        [hashtable]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account RosettaNet process version.)')]
        [string]
        $processVersion,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["activitySettings"] = $activitySettings
        $resource.properties["initiatorRoleSettings"] = $initiatorRoleSettings
        $resource.properties["integrationAccountName"] = $integrationAccountName
        $resource.properties["processCode"] = $processCode
        $resource.properties["processName"] = $processName
        $resource.properties["processVersion"] = $processVersion
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["responderRoleSettings"] = $responderRoleSettings

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class RecurrenceScheduleOccurrence
{
    [ValidateSet('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')]
    [object] $day
    [ValidateSet('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')]
    [int] $occurrence
}
function New-AzureNativeTypeLogicRecurrenceScheduleOccurrence
{
    param (
        [parameter(mandatory=$False,HelpMessage='The day of the week.)')]
        $day,
        [parameter(mandatory=$False,HelpMessage='The occurrence.)')]
        [int]
        $occurrence
    )

    process
    {
        return $([RecurrenceScheduleOccurrence]$PSBoundParameters)
    }
}
class RecurrenceSchedule
{
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [int[]] $monthDays
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [int[]] $minutes
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [RecurrenceScheduleOccurrence[]] $monthlyOccurrences
    [ValidateSet('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')]
    [string] $weekDays
    [ValidateSet('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')]
    [int[]] $hours
}
function New-AzureNativeTypeLogicRecurrenceSchedule
{
    param (
        [parameter(mandatory=$False,HelpMessage='The month days.)')]
        [int[]]
        $monthDays,
        [parameter(mandatory=$False,HelpMessage='The minutes.)')]
        [int[]]
        $minutes,
        [parameter(mandatory=$False,HelpMessage='The monthly occurrences.)')]
        $monthlyOccurrences,
        [parameter(mandatory=$False,HelpMessage='The days of the week.)')]
        $weekDays,
        [parameter(mandatory=$False,HelpMessage='The hours.)')]
        [int[]]
        $hours
    )

    process
    {
        return $([RecurrenceSchedule]$PSBoundParameters)
    }
}
class WorkflowTriggerRecurrence
{
    [string] $timeZone
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [string] $frequency
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [string] $startTime
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [string] $endTime
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [RecurrenceSchedule] $schedule
    [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
    [int] $interval
}
function New-AzureNativeTypeLogicWorkflowTriggerRecurrence
{
    param (
        [parameter(mandatory=$False,HelpMessage='The time zone.)')]
        [string]
        $timeZone,
        [parameter(mandatory=$False,HelpMessage='The frequency.)')]
        [string]
        [ValidateSet('NotSpecified', 'Second', 'Minute', 'Hour', 'Day', 'Week', 'Month', 'Year')]
        $frequency,
        [parameter(mandatory=$False,HelpMessage='The start time.)')]
        [string]
        $startTime,
        [parameter(mandatory=$False,HelpMessage='The end time.)')]
        [string]
        $endTime,
        [parameter(mandatory=$False,HelpMessage='The recurrence schedule.)')]
        [RecurrenceSchedule]
        $schedule,
        [parameter(mandatory=$False,HelpMessage='The interval.)')]
        [int]
        $interval
    )

    process
    {
        return $([WorkflowTriggerRecurrence]$PSBoundParameters)
    }
}
class BatchReleaseCriteria
{
    [int] $messageCount
    [WorkflowTriggerRecurrence] $recurrence
    [int] $batchSize
}
function New-AzureNativeTypeLogicBatchReleaseCriteria
{
    param (
        [parameter(mandatory=$False,HelpMessage='The message count.)')]
        [int]
        $messageCount,
        [parameter(mandatory=$False,HelpMessage='The recurrence.)')]
        [WorkflowTriggerRecurrence]
        $recurrence,
        [parameter(mandatory=$False,HelpMessage='The batch size in bytes.)')]
        [int]
        $batchSize
    )

    process
    {
        return $([BatchReleaseCriteria]$PSBoundParameters)
    }
}
class BatchConfigurationProperties
{
    [string] $createdTime
    [string] $batchGroupName
    [string] $changedTime
    [object] $metadata
    [BatchReleaseCriteria] $releaseCriteria
}
function New-AzureNativeTypeLogicBatchConfigurationProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The artifact creation time.)')]
        [string]
        $createdTime,
        [parameter(mandatory=$False,HelpMessage='The name of the batch group.)')]
        [string]
        $batchGroupName,
        [parameter(mandatory=$False,HelpMessage='The artifact changed time.)')]
        [string]
        $changedTime,
        [parameter(mandatory=$False,HelpMessage=')')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The batch release criteria.)')]
        [BatchReleaseCriteria]
        $releaseCriteria
    )

    process
    {
        return $([BatchConfigurationProperties]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccountBatchConfiguration
{
    [Alias('azure_native_logic_integrationaccountbatchconfiguration')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The batch configuration properties.)')]
        [BatchConfigurationProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The batch configuration name.)')]
        [string]
        $batchConfigurationName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class B2BPartnerContent
{
    [BusinessIdentity[]] $businessIdentities
}
function New-AzureNativeTypeLogicB2BPartnerContent
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of partner business identities.)')]
        $businessIdentities
    )

    process
    {
        return $([B2BPartnerContent]$PSBoundParameters)
    }
}
class PartnerContent
{
    [B2BPartnerContent] $b2b
}
function New-AzureNativeTypeLogicPartnerContent
{
    param (
        [parameter(mandatory=$False,HelpMessage='The B2B partner content.)')]
        [B2BPartnerContent]
        $b2b
    )

    process
    {
        return $([PartnerContent]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccountPartner
{
    [Alias('azure_native_logic_integrationaccountpartner')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration account partner name.)')]
        [string]
        $partnerName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The partner content.)')]
        [PartnerContent]
        $content,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The partner type.)')]
        [string]
        [ValidateSet('NotSpecified', 'B2B')]
        $partnerType,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["content"] = $content
        $resource.properties["integrationAccountName"] = $integrationAccountName
        $resource.properties["partnerType"] = $partnerType
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class IntegrationAccountSku
{
    [ValidateSet('NotSpecified', 'Free', 'Basic', 'Standard')]
    [string] $name
}
function New-AzureNativeTypeLogicIntegrationAccountSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The sku name.)')]
        [string]
        [ValidateSet('NotSpecified', 'Free', 'Basic', 'Standard')]
        $name
    )

    process
    {
        return $([IntegrationAccountSku]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccount
{
    [Alias('azure_native_logic_integrationaccount')]
    param (
        [parameter(mandatory=$False,HelpMessage='The sku.)')]
        [IntegrationAccountSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The integration service environment.)')]
        [ResourceReference]
        $integrationServiceEnvironment,
        [parameter(mandatory=$False,HelpMessage='The workflow state.)')]
        [string]
        [ValidateSet('NotSpecified', 'Completed', 'Enabled', 'Disabled', 'Deleted', 'Suspended')]
        $state,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class AssemblyProperties
{
    [string] $changedTime
    [ContentLink] $contentLink
    [string] $assemblyPublicKeyToken
    [object] $content
    [string] $createdTime
    [string] $contentType
    [object] $metadata
    [string] $assemblyCulture
    [string] $assemblyName
    [string] $assemblyVersion
}
function New-AzureNativeTypeLogicAssemblyProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The artifact changed time.)')]
        [string]
        $changedTime,
        [parameter(mandatory=$False,HelpMessage='The content link.)')]
        [ContentLink]
        $contentLink,
        [parameter(mandatory=$False,HelpMessage='The assembly public key token.)')]
        [string]
        $assemblyPublicKeyToken,
        [parameter(mandatory=$False,HelpMessage=')')]
        $content,
        [parameter(mandatory=$False,HelpMessage='The artifact creation time.)')]
        [string]
        $createdTime,
        [parameter(mandatory=$False,HelpMessage='The content type.)')]
        [string]
        $contentType,
        [parameter(mandatory=$False,HelpMessage=')')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The assembly culture.)')]
        [string]
        $assemblyCulture,
        [parameter(mandatory=$False,HelpMessage='The assembly name.)')]
        [string]
        $assemblyName,
        [parameter(mandatory=$False,HelpMessage='The assembly version.)')]
        [string]
        $assemblyVersion
    )

    process
    {
        return $([AssemblyProperties]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccountAssembly
{
    [Alias('azure_native_logic_integrationaccountassembly')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The assembly properties.)')]
        [AssemblyProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The assembly artifact name.)')]
        [string]
        $assemblyArtifactName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeLogicWorkflowAccessKey
{
    [Alias('azure_native_logic_workflowaccesskey')]
    param (
        [parameter(mandatory=$False,HelpMessage='The workflow access key name.)')]
        [string]
        $accessKeyName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the not-before time.)')]
        [string]
        $notBefore,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the not-after time.)')]
        [string]
        $notAfter,
        [parameter(mandatory=$False,HelpMessage='The workflow name.)')]
        [string]
        $workflowName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets the resource id.)')]
        [string]
        $id,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class IntegrationAccountMapPropertiesParametersSchema
{
    [string] $ref
}
function New-AzureNativeTypeLogicIntegrationAccountMapPropertiesParametersSchema
{
    param (
        [parameter(mandatory=$False,HelpMessage='The reference name.)')]
        [string]
        $ref
    )

    process
    {
        return $([IntegrationAccountMapPropertiesParametersSchema]$PSBoundParameters)
    }
}
function New-AzureNativeLogicIntegrationAccountMap
{
    [Alias('azure_native_logic_integrationaccountmap')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The parameters schema of integration account map.)')]
        [IntegrationAccountMapPropertiesParametersSchema]
        $parametersSchema,
        [parameter(mandatory=$False,HelpMessage='The integration account map name.)')]
        [string]
        $mapName,
        [parameter(mandatory=$False,HelpMessage='The integration account name.)')]
        [string]
        $integrationAccountName,
        [parameter(mandatory=$False,HelpMessage='The content.)')]
        [string]
        $content,
        [parameter(mandatory=$False,HelpMessage='The content type.)')]
        [string]
        $contentType,
        [parameter(mandatory=$False,HelpMessage='The metadata.)')]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='The resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The map type.)')]
        [string]
        [ValidateSet('NotSpecified', 'Xslt', 'Xslt20', 'Xslt30', 'Liquid')]
        $mapType,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

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

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

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

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

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

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

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

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

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