pspulumiyaml.azurenative.storagesync.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionStoragesyncGetServerEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Sync Group resource.)')]
        [string]
        $syncGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Server Endpoint object.)')]
        [string]
        $serverEndpointName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serverEndpointName"] = $serverEndpointName
        $arguments["storageSyncServiceName"] = $storageSyncServiceName
        $arguments["syncGroupName"] = $syncGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagesync:getServerEndpoint -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStoragesyncGetRegisteredServer
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='GUID identifying the on-premises server.)')]
        [string]
        $serverId
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["serverId"] = $serverId
        $arguments["storageSyncServiceName"] = $storageSyncServiceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagesync:getRegisteredServer -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStoragesyncGetSyncGroup
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Sync Group resource.)')]
        [string]
        $syncGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["storageSyncServiceName"] = $storageSyncServiceName
        $arguments["syncGroupName"] = $syncGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagesync:getSyncGroup -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStoragesyncGetStorageSyncService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagesync:getStorageSyncService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStoragesyncGetCloudEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Sync Group resource.)')]
        [string]
        $syncGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Cloud Endpoint object.)')]
        [string]
        $cloudEndpointName
    )

    process
    {
        $arguments = @{}
        $arguments["cloudEndpointName"] = $cloudEndpointName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["storageSyncServiceName"] = $storageSyncServiceName
        $arguments["syncGroupName"] = $syncGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagesync:getCloudEndpoint -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStoragesyncGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the storage sync service name within the specified resource group.)')]
        [string]
        $storageSyncServiceName,
        [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. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagesync:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function New-AzureNativeStoragesyncCloudEndpoint
{
    [Alias('azure_native_storagesync_cloudendpoint')]
    param (
        [parameter(mandatory=$False,HelpMessage='Storage Account Resource Id)')]
        [string]
        $storageAccountResourceId,
        [parameter(mandatory=$False,HelpMessage='Name of Cloud Endpoint object.)')]
        [string]
        $cloudEndpointName,
        [parameter(mandatory=$False,HelpMessage='Storage Account Tenant Id)')]
        [string]
        $storageAccountTenantId,
        [parameter(mandatory=$False,HelpMessage='Name of Sync Group resource.)')]
        [string]
        $syncGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='Azure file share name)')]
        [string]
        $azureFileShareName,
        [parameter(mandatory=$False,HelpMessage='Friendly Name)')]
        [string]
        $friendlyName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [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:storagesync:CloudEndpoint")

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStoragesyncStorageSyncService
{
    [Alias('azure_native_storagesync_storagesyncservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='Incoming Traffic Policy)')]
        [string]
        [ValidateSet('AllowAllTraffic', 'AllowVirtualNetworksOnly')]
        $incomingTrafficPolicy,
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Gets or sets a list of key value pairs that describe the resource. These tags can be used for viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key with a length no greater than 128 characters and a value with a length no greater than 256 characters.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed.)')]
        [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:storagesync:StorageSyncService")

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStoragesyncSyncGroup
{
    [Alias('azure_native_storagesync_syncgroup')]
    param (
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Sync Group resource.)')]
        [string]
        $syncGroupName,
        [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:storagesync:SyncGroup")

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

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

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

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
function New-AzureNativeStoragesyncPrivateEndpointConnection
{
    [Alias('azure_native_storagesync_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the storage sync service name within the specified resource group.)')]
        [string]
        $storageSyncServiceName,
        [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. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='A collection of information about the state of the connection between service consumer and provider.)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState,
        [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:storagesync:PrivateEndpointConnection")

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStoragesyncServerEndpoint
{
    [Alias('azure_native_storagesync_serverendpoint')]
    param (
        [parameter(mandatory=$False,HelpMessage='Cloud Tiering.)')]
        [string]
        [ValidateSet('on', 'off')]
        $cloudTiering,
        [parameter(mandatory=$False,HelpMessage='Level of free space to be maintained by Cloud Tiering if it is enabled.)')]
        [int]
        $volumeFreeSpacePercent,
        [parameter(mandatory=$False,HelpMessage='Server Local path.)')]
        [string]
        $serverLocalPath,
        [parameter(mandatory=$False,HelpMessage='Offline data transfer)')]
        [string]
        [ValidateSet('on', 'off')]
        $offlineDataTransfer,
        [parameter(mandatory=$False,HelpMessage='Name of Sync Group resource.)')]
        [string]
        $syncGroupName,
        [parameter(mandatory=$False,HelpMessage='Offline data transfer share name)')]
        [string]
        $offlineDataTransferShareName,
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Policy for how namespace and files are recalled during FastDr.)')]
        [string]
        [ValidateSet('NamespaceOnly', 'NamespaceThenModifiedFiles', 'AvoidTieredFiles')]
        $initialDownloadPolicy,
        [parameter(mandatory=$False,HelpMessage='Tier files older than days.)')]
        [int]
        $tierFilesOlderThanDays,
        [parameter(mandatory=$False,HelpMessage='Name of Server Endpoint object.)')]
        [string]
        $serverEndpointName,
        [parameter(mandatory=$False,HelpMessage='Friendly Name)')]
        [string]
        $friendlyName,
        [parameter(mandatory=$False,HelpMessage='Policy for enabling follow-the-sun business models: link local cache to cloud behavior to pre-populate before local access.)')]
        [string]
        [ValidateSet('DownloadNewAndModifiedFiles', 'UpdateLocallyCachedFiles')]
        $localCacheMode,
        [parameter(mandatory=$False,HelpMessage='Server Resource Id.)')]
        [string]
        $serverResourceId,
        [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:storagesync:ServerEndpoint")

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeStoragesyncRegisteredServer
{
    [Alias('azure_native_storagesync_registeredserver')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Registered Server serverRole)')]
        [string]
        $serverRole,
        [parameter(mandatory=$False,HelpMessage='Registered Server clusterId)')]
        [string]
        $clusterId,
        [parameter(mandatory=$False,HelpMessage='Name of Storage Sync Service resource.)')]
        [string]
        $storageSyncServiceName,
        [parameter(mandatory=$False,HelpMessage='Registered Server clusterName)')]
        [string]
        $clusterName,
        [parameter(mandatory=$False,HelpMessage='Registered Server OS Version)')]
        [string]
        $serverOSVersion,
        [parameter(mandatory=$False,HelpMessage='Registered Server Agent Version)')]
        [string]
        $agentVersion,
        [parameter(mandatory=$False,HelpMessage='Registered Server serverId)')]
        [string]
        $serverId,
        [parameter(mandatory=$False,HelpMessage='Registered Server last heart beat)')]
        [string]
        $lastHeartBeat,
        [parameter(mandatory=$False,HelpMessage='Friendly Name)')]
        [string]
        $friendlyName,
        [parameter(mandatory=$False,HelpMessage='Registered Server Certificate)')]
        [string]
        $serverCertificate,
        [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:storagesync:RegisteredServer")

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

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

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

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

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

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

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

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

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

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

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