pspulumiyaml.azurenative.healthcareapis.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionHealthcareapisGetDicomService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of DICOM Service resource.)')]
        [string]
        $dicomServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["dicomServiceName"] = $dicomServiceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getDicomService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the service instance.)')]
        [string]
        $resourceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the service instance.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetWorkspace
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getWorkspace -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetIotConnectorFhirDestination
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of IoT Connector FHIR destination resource.)')]
        [string]
        $fhirDestinationName,
        [parameter(mandatory=$False,HelpMessage='The name of IoT Connector resource.)')]
        [string]
        $iotConnectorName,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["fhirDestinationName"] = $fhirDestinationName
        $arguments["iotConnectorName"] = $iotConnectorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getIotConnectorFhirDestination -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetIotConnector
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of IoT Connector resource.)')]
        [string]
        $iotConnectorName,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["iotConnectorName"] = $iotConnectorName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getIotConnector -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetWorkspacePrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getWorkspacePrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionHealthcareapisGetFhirService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of FHIR Service resource.)')]
        [string]
        $fhirServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["fhirServiceName"] = $fhirServiceName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:healthcareapis:getFhirService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class IotMappingProperties
{
    [object] $content
}
function New-AzureNativeTypeHealthcareapisIotMappingProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The mapping.)')]
        $content
    )

    process
    {
        return $([IotMappingProperties]$PSBoundParameters)
    }
}
function New-AzureNativeHealthcareapisIotConnectorFhirDestination
{
    [Alias('azure_native_healthcareapis_iotconnectorfhirdestination')]
    param (
        [parameter(mandatory=$False,HelpMessage='Determines how resource identity is resolved on the destination.)')]
        [string]
        [ValidateSet('Create', 'Lookup')]
        $resourceIdentityResolutionType,
        [parameter(mandatory=$False,HelpMessage='FHIR Mappings)')]
        [IotMappingProperties]
        $fhirMapping,
        [parameter(mandatory=$False,HelpMessage='Fully qualified resource id of the FHIR service to connect to.)')]
        [string]
        $fhirServiceResourceId,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of IoT Connector resource.)')]
        [string]
        $iotConnectorName,
        [parameter(mandatory=$False,HelpMessage='The name of IoT Connector FHIR destination resource.)')]
        [string]
        $fhirDestinationName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class IotEventHubIngestionEndpointConfiguration
{
    [string] $consumerGroup
    [string] $fullyQualifiedEventHubNamespace
    [string] $eventHubName
}
function New-AzureNativeTypeHealthcareapisIotEventHubIngestionEndpointConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Consumer group of the event hub to connected to.)')]
        [string]
        $consumerGroup,
        [parameter(mandatory=$False,HelpMessage='Fully qualified namespace of the Event Hub to connect to.)')]
        [string]
        $fullyQualifiedEventHubNamespace,
        [parameter(mandatory=$False,HelpMessage='Event Hub name to connect to.)')]
        [string]
        $eventHubName
    )

    process
    {
        return $([IotEventHubIngestionEndpointConfiguration]$PSBoundParameters)
    }
}
class ServiceManagedIdentityIdentity
{
    [ArgumentCompletions('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned')]
    [string] $type
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeHealthcareapisServiceManagedIdentityIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of identity being specified, currently SystemAssigned and None are allowed.)')]
        [string]
        [ValidateSet('None', 'SystemAssigned', 'UserAssigned', 'SystemAssigned,UserAssigned')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([ServiceManagedIdentityIdentity]$PSBoundParameters)
    }
}
function New-AzureNativeHealthcareapisIotConnector
{
    [Alias('azure_native_healthcareapis_iotconnector')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Source configuration.)')]
        [IotEventHubIngestionEndpointConfiguration]
        $ingestionEndpointConfiguration,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of IoT Connector resource.)')]
        [string]
        $iotConnectorName,
        [parameter(mandatory=$False,HelpMessage='Device Mappings.)')]
        [IotMappingProperties]
        $deviceMapping,
        [parameter(mandatory=$False,HelpMessage='Setting indicating whether the service has a managed identity associated with it.)')]
        [ServiceManagedIdentityIdentity]
        $identity,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class CorsConfiguration
{
    [int] $maxAge
    [bool] $allowCredentials
    [string[]] $methods
    [string[]] $headers
    [string[]] $origins
}
function New-AzureNativeTypeHealthcareapisCorsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The max age to be allowed via CORS.)')]
        [int]
        $maxAge,
        [parameter(mandatory=$False,HelpMessage='If credentials are allowed via CORS.)')]
        [bool]
        $allowCredentials,
        [parameter(mandatory=$False,HelpMessage='The methods to be allowed via CORS.)')]
        [string[]]
        $methods,
        [parameter(mandatory=$False,HelpMessage='The headers to be allowed via CORS.)')]
        [string[]]
        $headers,
        [parameter(mandatory=$False,HelpMessage='The origins to be allowed via CORS.)')]
        [string[]]
        $origins
    )

    process
    {
        return $([CorsConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeHealthcareapisDicomService
{
    [Alias('azure_native_healthcareapis_dicomservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Dicom Service Cors configuration.)')]
        [CorsConfiguration]
        $corsConfiguration,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Setting indicating whether the service has a managed identity associated with it.)')]
        [ServiceManagedIdentityIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of DICOM Service resource.)')]
        [string]
        $dicomServiceName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeHealthcareapisWorkspace
{
    [Alias('azure_native_healthcareapis_workspace')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ServicesResourceIdentity
{
    [ArgumentCompletions('SystemAssigned', 'None')]
    [string] $type
}
function New-AzureNativeTypeHealthcareapisServicesResourceIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='Type of identity being specified, currently SystemAssigned and None are allowed.)')]
        [string]
        [ValidateSet('SystemAssigned', 'None')]
        $type
    )

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

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
class PrivateEndpointConnection
{
    [PrivateLinkServiceConnectionState] $privateLinkServiceConnectionState
}
function New-AzureNativeTypeHealthcareapisPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState
    )

    process
    {
        return $([PrivateEndpointConnection]$PSBoundParameters)
    }
}
class ServiceCosmosDbConfigurationInfo
{
    [int] $offerThroughput
    [string] $keyVaultKeyUri
}
function New-AzureNativeTypeHealthcareapisServiceCosmosDbConfigurationInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The provisioned throughput for the backing database.)')]
        [int]
        $offerThroughput,
        [parameter(mandatory=$False,HelpMessage='The URI of the customer-managed key for the backing database.)')]
        [string]
        $keyVaultKeyUri
    )

    process
    {
        return $([ServiceCosmosDbConfigurationInfo]$PSBoundParameters)
    }
}
class ServiceAccessPolicyEntry
{
    [string] $objectId
}
function New-AzureNativeTypeHealthcareapisServiceAccessPolicyEntry
{
    param (
        [parameter(mandatory=$False,HelpMessage='An Azure AD object ID (User or Apps) that is allowed access to the FHIR service.)')]
        [string]
        $objectId
    )

    process
    {
        return $([ServiceAccessPolicyEntry]$PSBoundParameters)
    }
}
class ServiceCorsConfigurationInfo
{
    [int] $maxAge
    [bool] $allowCredentials
    [string[]] $methods
    [string[]] $headers
    [string[]] $origins
}
function New-AzureNativeTypeHealthcareapisServiceCorsConfigurationInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The max age to be allowed via CORS.)')]
        [int]
        $maxAge,
        [parameter(mandatory=$False,HelpMessage='If credentials are allowed via CORS.)')]
        [bool]
        $allowCredentials,
        [parameter(mandatory=$False,HelpMessage='The methods to be allowed via CORS.)')]
        [string[]]
        $methods,
        [parameter(mandatory=$False,HelpMessage='The headers to be allowed via CORS.)')]
        [string[]]
        $headers,
        [parameter(mandatory=$False,HelpMessage='The origins to be allowed via CORS.)')]
        [string[]]
        $origins
    )

    process
    {
        return $([ServiceCorsConfigurationInfo]$PSBoundParameters)
    }
}
class ServiceAuthenticationConfigurationInfo
{
    [bool] $smartProxyEnabled
    [string] $authority
    [string] $audience
}
function New-AzureNativeTypeHealthcareapisServiceAuthenticationConfigurationInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='If the SMART on FHIR proxy is enabled)')]
        [bool]
        $smartProxyEnabled,
        [parameter(mandatory=$False,HelpMessage='The authority url for the service)')]
        [string]
        $authority,
        [parameter(mandatory=$False,HelpMessage='The audience url for the service)')]
        [string]
        $audience
    )

    process
    {
        return $([ServiceAuthenticationConfigurationInfo]$PSBoundParameters)
    }
}
class ServiceExportConfigurationInfo
{
    [string] $storageAccountName
}
function New-AzureNativeTypeHealthcareapisServiceExportConfigurationInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the default export storage account.)')]
        [string]
        $storageAccountName
    )

    process
    {
        return $([ServiceExportConfigurationInfo]$PSBoundParameters)
    }
}
class ServiceOciArtifactEntry
{
    [string] $imageName
    [string] $loginServer
    [string] $digest
}
function New-AzureNativeTypeHealthcareapisServiceOciArtifactEntry
{
    param (
        [parameter(mandatory=$False,HelpMessage='The artifact name.)')]
        [string]
        $imageName,
        [parameter(mandatory=$False,HelpMessage='The Azure Container Registry login server.)')]
        [string]
        $loginServer,
        [parameter(mandatory=$False,HelpMessage='The artifact digest.)')]
        [string]
        $digest
    )

    process
    {
        return $([ServiceOciArtifactEntry]$PSBoundParameters)
    }
}
class ServiceAcrConfigurationInfo
{
    [ServiceOciArtifactEntry[]] $ociArtifacts
    [string[]] $loginServers
}
function New-AzureNativeTypeHealthcareapisServiceAcrConfigurationInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of Open Container Initiative (OCI) artifacts.)')]
        $ociArtifacts,
        [parameter(mandatory=$False,HelpMessage='The list of the ACR login servers.)')]
        [string[]]
        $loginServers
    )

    process
    {
        return $([ServiceAcrConfigurationInfo]$PSBoundParameters)
    }
}
class ServicesProperties
{
    [PrivateEndpointConnection[]] $privateEndpointConnections
    [ServiceCosmosDbConfigurationInfo] $cosmosDbConfiguration
    [ServiceAccessPolicyEntry[]] $accessPolicies
    [ServiceCorsConfigurationInfo] $corsConfiguration
    [ArgumentCompletions('Enabled', 'Disabled')]
    [string] $publicNetworkAccess
    [ServiceAuthenticationConfigurationInfo] $authenticationConfiguration
    [ServiceExportConfigurationInfo] $exportConfiguration
    [ServiceAcrConfigurationInfo] $acrConfiguration
}
function New-AzureNativeTypeHealthcareapisServicesProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of private endpoint connections that are set up for this resource.)')]
        $privateEndpointConnections,
        [parameter(mandatory=$False,HelpMessage='The settings for the Cosmos DB database backing the service.)')]
        [ServiceCosmosDbConfigurationInfo]
        $cosmosDbConfiguration,
        [parameter(mandatory=$False,HelpMessage='The access policies of the service instance.)')]
        $accessPolicies,
        [parameter(mandatory=$False,HelpMessage='The settings for the CORS configuration of the service instance.)')]
        [ServiceCorsConfigurationInfo]
        $corsConfiguration,
        [parameter(mandatory=$False,HelpMessage='Control permission for data plane traffic coming from public networks while private endpoint is enabled.)')]
        [string]
        [ValidateSet('Enabled', 'Disabled')]
        $publicNetworkAccess,
        [parameter(mandatory=$False,HelpMessage='The authentication configuration for the service instance.)')]
        [ServiceAuthenticationConfigurationInfo]
        $authenticationConfiguration,
        [parameter(mandatory=$False,HelpMessage='The settings for the export operation of the service instance.)')]
        [ServiceExportConfigurationInfo]
        $exportConfiguration,
        [parameter(mandatory=$False,HelpMessage='The azure container registry settings used for convert data operation of the service instance.)')]
        [ServiceAcrConfigurationInfo]
        $acrConfiguration
    )

    process
    {
        return $([ServicesProperties]$PSBoundParameters)
    }
}
function New-AzureNativeHealthcareapisService
{
    [Alias('azure_native_healthcareapis_service')]
    param (
        [parameter(mandatory=$False,HelpMessage='The kind of the service.)')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Setting indicating whether the service has a managed identity associated with it.)')]
        [ServicesResourceIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The name of the service instance.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='The common properties of a service.)')]
        [ServicesProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [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,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ResourceVersionPolicyConfiguration
{
    [ArgumentCompletions('no-version', 'versioned', 'versioned-update')]
    [string] $default
    [object] $resourceTypeOverrides
}
function New-AzureNativeTypeHealthcareapisResourceVersionPolicyConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The default value for tracking history across all resources.)')]
        [string]
        [ValidateSet('no-version', 'versioned', 'versioned-update')]
        $default,
        [parameter(mandatory=$False,HelpMessage='A list of FHIR Resources and their version policy overrides.)')]
        $resourceTypeOverrides
    )

    process
    {
        return $([ResourceVersionPolicyConfiguration]$PSBoundParameters)
    }
}
class FhirServiceCorsConfiguration
{
    [int] $maxAge
    [bool] $allowCredentials
    [string[]] $methods
    [string[]] $headers
    [string[]] $origins
}
function New-AzureNativeTypeHealthcareapisFhirServiceCorsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The max age to be allowed via CORS.)')]
        [int]
        $maxAge,
        [parameter(mandatory=$False,HelpMessage='If credentials are allowed via CORS.)')]
        [bool]
        $allowCredentials,
        [parameter(mandatory=$False,HelpMessage='The methods to be allowed via CORS.)')]
        [string[]]
        $methods,
        [parameter(mandatory=$False,HelpMessage='The headers to be allowed via CORS.)')]
        [string[]]
        $headers,
        [parameter(mandatory=$False,HelpMessage='The origins to be allowed via CORS.)')]
        [string[]]
        $origins
    )

    process
    {
        return $([FhirServiceCorsConfiguration]$PSBoundParameters)
    }
}
class FhirServiceAuthenticationConfiguration
{
    [bool] $smartProxyEnabled
    [string] $authority
    [string] $audience
}
function New-AzureNativeTypeHealthcareapisFhirServiceAuthenticationConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='If the SMART on FHIR proxy is enabled)')]
        [bool]
        $smartProxyEnabled,
        [parameter(mandatory=$False,HelpMessage='The authority url for the service)')]
        [string]
        $authority,
        [parameter(mandatory=$False,HelpMessage='The audience url for the service)')]
        [string]
        $audience
    )

    process
    {
        return $([FhirServiceAuthenticationConfiguration]$PSBoundParameters)
    }
}
class FhirServiceExportConfiguration
{
    [string] $storageAccountName
}
function New-AzureNativeTypeHealthcareapisFhirServiceExportConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the default export storage account.)')]
        [string]
        $storageAccountName
    )

    process
    {
        return $([FhirServiceExportConfiguration]$PSBoundParameters)
    }
}
class FhirServiceAcrConfiguration
{
    [ServiceOciArtifactEntry[]] $ociArtifacts
    [string[]] $loginServers
}
function New-AzureNativeTypeHealthcareapisFhirServiceAcrConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='The list of Open Container Initiative (OCI) artifacts.)')]
        $ociArtifacts,
        [parameter(mandatory=$False,HelpMessage='The list of the Azure container registry login servers.)')]
        [string[]]
        $loginServers
    )

    process
    {
        return $([FhirServiceAcrConfiguration]$PSBoundParameters)
    }
}
function New-AzureNativeHealthcareapisFhirService
{
    [Alias('azure_native_healthcareapis_fhirservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The kind of the service.)')]
        [string]
        [ValidateSet('fhir-Stu3', 'fhir-R4')]
        $kind,
        [parameter(mandatory=$False,HelpMessage='Determines tracking of history for resources.)')]
        [ResourceVersionPolicyConfiguration]
        $resourceVersionPolicyConfiguration,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Fhir Service access policies.)')]
        $accessPolicies,
        [parameter(mandatory=$False,HelpMessage='The resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Fhir Service Cors configuration.)')]
        [FhirServiceCorsConfiguration]
        $corsConfiguration,
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Fhir Service authentication configuration.)')]
        [FhirServiceAuthenticationConfiguration]
        $authenticationConfiguration,
        [parameter(mandatory=$False,HelpMessage='The name of FHIR Service resource.)')]
        [string]
        $fhirServiceName,
        [parameter(mandatory=$False,HelpMessage='Setting indicating whether the service has a managed identity associated with it.)')]
        [ServiceManagedIdentityIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Fhir Service export configuration.)')]
        [FhirServiceExportConfiguration]
        $exportConfiguration,
        [parameter(mandatory=$False,HelpMessage='Fhir Service Azure container registry configuration.)')]
        [FhirServiceAcrConfiguration]
        $acrConfiguration,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeHealthcareapisPrivateEndpointConnection
{
    [Alias('azure_native_healthcareapis_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the service instance.)')]
        [string]
        $resourceName,
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeHealthcareapisWorkspacePrivateEndpointConnection
{
    [Alias('azure_native_healthcareapis_workspaceprivateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of workspace resource.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection associated with the Azure resource)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group that contains the service instance.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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