pspulumiyaml.azurenative.storagecache.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionStoragecacheGetCache
{
    param (
        [parameter(mandatory=$False,HelpMessage='Target resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Name of Cache. Length of name must not be greater than 80 and chars must be from the [-0-9a-zA-Z_] char class.)')]
        [string]
        $cacheName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagecache:getCache -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionStoragecacheGetStorageTarget
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of Storage Target.)')]
        [string]
        $storageTargetName,
        [parameter(mandatory=$False,HelpMessage='Name of Cache. Length of name must not be greater than 80 and chars must be from the [-0-9a-zA-Z_] char class.)')]
        [string]
        $cacheName,
        [parameter(mandatory=$False,HelpMessage='Target resource group.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["cacheName"] = $cacheName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["storageTargetName"] = $storageTargetName

        $functionObject = Invoke-PulumiFunction -Name azure-native:storagecache:getStorageTarget -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class KeyVaultKeyReferenceSourceVault
{
    [string] $id
}
function New-AzureNativeTypeStoragecacheKeyVaultKeyReferenceSourceVault
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource Id.)')]
        [string]
        $id
    )

    process
    {
        return $([KeyVaultKeyReferenceSourceVault]$PSBoundParameters)
    }
}
class KeyVaultKeyReference
{
    [string] $keyUrl
    [KeyVaultKeyReferenceSourceVault] $sourceVault
}
function New-AzureNativeTypeStoragecacheKeyVaultKeyReference
{
    param (
        [parameter(mandatory=$False,HelpMessage='The URL referencing a key encryption key in Key Vault.)')]
        [string]
        $keyUrl,
        [parameter(mandatory=$False,HelpMessage='Describes a resource Id to source Key Vault.)')]
        [KeyVaultKeyReferenceSourceVault]
        $sourceVault
    )

    process
    {
        return $([KeyVaultKeyReference]$PSBoundParameters)
    }
}
class CacheEncryptionSettings
{
    [KeyVaultKeyReference] $keyEncryptionKey
}
function New-AzureNativeTypeStoragecacheCacheEncryptionSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the key encryption key in Key Vault.)')]
        [KeyVaultKeyReference]
        $keyEncryptionKey
    )

    process
    {
        return $([CacheEncryptionSettings]$PSBoundParameters)
    }
}
class CacheNetworkSettings
{
    [int] $mtu
    [string] $dnsSearchDomain
    [string] $ntpServer
    [string[]] $dnsServers
}
function New-AzureNativeTypeStoragecacheCacheNetworkSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='The IPv4 maximum transmission unit configured for the subnet.)')]
        [int]
        $mtu,
        [parameter(mandatory=$False,HelpMessage='DNS search domain)')]
        [string]
        $dnsSearchDomain,
        [parameter(mandatory=$False,HelpMessage='NTP server IP Address or FQDN for the cache to use. The default is time.windows.com.)')]
        [string]
        $ntpServer,
        [parameter(mandatory=$False,HelpMessage='DNS servers for the cache to use. It will be set from the network configuration if no value is provided.)')]
        [string[]]
        $dnsServers
    )

    process
    {
        return $([CacheNetworkSettings]$PSBoundParameters)
    }
}
class CacheActiveDirectorySettingsCredentials
{
    [string] $username
    [string] $password
}
function New-AzureNativeTypeStoragecacheCacheActiveDirectorySettingsCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='Username of the Active Directory domain administrator. This value is stored encrypted and not returned on response.)')]
        [string]
        $username,
        [parameter(mandatory=$False,HelpMessage='Plain text password of the Active Directory domain administrator. This value is stored encrypted and not returned on response.)')]
        [string]
        $password
    )

    process
    {
        return $([CacheActiveDirectorySettingsCredentials]$PSBoundParameters)
    }
}
class CacheActiveDirectorySettings
{
    [string] $primaryDnsIpAddress
    [string] $domainNetBiosName
    [string] $domainName
    [string] $cacheNetBiosName
    [string] $secondaryDnsIpAddress
    [CacheActiveDirectorySettingsCredentials] $credentials
}
function New-AzureNativeTypeStoragecacheCacheActiveDirectorySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Primary DNS IP address used to resolve the Active Directory domain controller''s fully qualified domain name.)')]
        [string]
        $primaryDnsIpAddress,
        [parameter(mandatory=$False,HelpMessage='The Active Directory domain''s NetBIOS name.)')]
        [string]
        $domainNetBiosName,
        [parameter(mandatory=$False,HelpMessage='The fully qualified domain name of the Active Directory domain controller.)')]
        [string]
        $domainName,
        [parameter(mandatory=$False,HelpMessage='The NetBIOS name to assign to the HPC Cache when it joins the Active Directory domain as a server. Length must 1-15 characters from the class [-0-9a-zA-Z].)')]
        [string]
        $cacheNetBiosName,
        [parameter(mandatory=$False,HelpMessage='Secondary DNS IP address used to resolve the Active Directory domain controller''s fully qualified domain name.)')]
        [string]
        $secondaryDnsIpAddress,
        [parameter(mandatory=$False,HelpMessage='Active Directory admin credentials used to join the HPC Cache to a domain.)')]
        [CacheActiveDirectorySettingsCredentials]
        $credentials
    )

    process
    {
        return $([CacheActiveDirectorySettings]$PSBoundParameters)
    }
}
class CacheUsernameDownloadSettingsCredentials
{
    [string] $bindDn
    [string] $bindPassword
}
function New-AzureNativeTypeStoragecacheCacheUsernameDownloadSettingsCredentials
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Bind Distinguished Name identity to be used in the secure LDAP connection. This value is stored encrypted and not returned on response.)')]
        [string]
        $bindDn,
        [parameter(mandatory=$False,HelpMessage='The Bind password to be used in the secure LDAP connection. This value is stored encrypted and not returned on response.)')]
        [string]
        $bindPassword
    )

    process
    {
        return $([CacheUsernameDownloadSettingsCredentials]$PSBoundParameters)
    }
}
class CacheUsernameDownloadSettings
{
    [ArgumentCompletions('AD', 'LDAP', 'File', 'None')]
    [string] $usernameSource
    [string] $caCertificateURI
    [bool] $autoDownloadCertificate
    [bool] $extendedGroups
    [bool] $requireValidCertificate
    [string] $groupFileURI
    [CacheUsernameDownloadSettingsCredentials] $credentials
    [string] $ldapServer
    [string] $ldapBaseDN
    [bool] $encryptLdapConnection
    [string] $userFileURI
}
function New-AzureNativeTypeStoragecacheCacheUsernameDownloadSettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='This setting determines how the cache gets username and group names for clients.)')]
        [string]
        [ValidateSet('AD', 'LDAP', 'File', 'None')]
        $usernameSource,
        [parameter(mandatory=$False,HelpMessage='The URI of the CA certificate to validate the LDAP secure connection. This field must be populated when ''requireValidCertificate'' is set to true.)')]
        [string]
        $caCertificateURI,
        [parameter(mandatory=$False,HelpMessage='Determines if the certificate should be automatically downloaded. This applies to ''caCertificateURI'' only if ''requireValidCertificate'' is true.)')]
        [bool]
        $autoDownloadCertificate,
        [parameter(mandatory=$False,HelpMessage='Whether or not Extended Groups is enabled.)')]
        [bool]
        $extendedGroups,
        [parameter(mandatory=$False,HelpMessage='Determines if the certificates must be validated by a certificate authority. When true, caCertificateURI must be provided.)')]
        [bool]
        $requireValidCertificate,
        [parameter(mandatory=$False,HelpMessage='The URI of the file containing group information (in /etc/group file format). This field must be populated when ''usernameSource'' is set to ''File''.)')]
        [string]
        $groupFileURI,
        [parameter(mandatory=$False,HelpMessage='When present, these are the credentials for the secure LDAP connection.)')]
        [CacheUsernameDownloadSettingsCredentials]
        $credentials,
        [parameter(mandatory=$False,HelpMessage='The fully qualified domain name or IP address of the LDAP server to use.)')]
        [string]
        $ldapServer,
        [parameter(mandatory=$False,HelpMessage='The base distinguished name for the LDAP domain.)')]
        [string]
        $ldapBaseDN,
        [parameter(mandatory=$False,HelpMessage='Whether or not the LDAP connection should be encrypted.)')]
        [bool]
        $encryptLdapConnection,
        [parameter(mandatory=$False,HelpMessage='The URI of the file containing user information (in /etc/passwd file format). This field must be populated when ''usernameSource'' is set to ''File''.)')]
        [string]
        $userFileURI
    )

    process
    {
        return $([CacheUsernameDownloadSettings]$PSBoundParameters)
    }
}
class CacheDirectorySettings
{
    [CacheActiveDirectorySettings] $activeDirectory
    [CacheUsernameDownloadSettings] $usernameDownload
}
function New-AzureNativeTypeStoragecacheCacheDirectorySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies settings for joining the HPC Cache to an Active Directory domain.)')]
        [CacheActiveDirectorySettings]
        $activeDirectory,
        [parameter(mandatory=$False,HelpMessage='Specifies settings for Extended Groups. Extended Groups allows users to be members of more than 16 groups.)')]
        [CacheUsernameDownloadSettings]
        $usernameDownload
    )

    process
    {
        return $([CacheDirectorySettings]$PSBoundParameters)
    }
}
class CacheIdentity
{
    [ArgumentCompletions('SystemAssigned', 'None')]
    [object] $type
}
function New-AzureNativeTypeStoragecacheCacheIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The type of identity used for the cache)')]
        $type
    )

    process
    {
        return $([CacheIdentity]$PSBoundParameters)
    }
}
class CacheSku
{
    [string] $name
}
function New-AzureNativeTypeStoragecacheCacheSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='SKU name for this Cache.)')]
        [string]
        $name
    )

    process
    {
        return $([CacheSku]$PSBoundParameters)
    }
}
class NfsAccessRule
{
    [bool] $suid
    [ArgumentCompletions('default', 'network', 'host')]
    [string] $scope
    [string] $anonymousUID
    [ArgumentCompletions('no', 'ro', 'rw')]
    [string] $access
    [bool] $submountAccess
    [string] $filter
    [string] $anonymousGID
    [bool] $rootSquash
}
function New-AzureNativeTypeStoragecacheNfsAccessRule
{
    param (
        [parameter(mandatory=$False,HelpMessage='Allow SUID semantics.)')]
        [bool]
        $suid,
        [parameter(mandatory=$False,HelpMessage='Scope for this rule. The scope and filter determine which clients match the rule.)')]
        [string]
        [ValidateSet('default', 'network', 'host')]
        $scope,
        [parameter(mandatory=$False,HelpMessage='UID value that replaces 0 when rootSquash is true. 65534 will be used if not provided.)')]
        [string]
        $anonymousUID,
        [parameter(mandatory=$False,HelpMessage='Access allowed by this rule.)')]
        [string]
        [ValidateSet('no', 'ro', 'rw')]
        $access,
        [parameter(mandatory=$False,HelpMessage='For the default policy, allow access to subdirectories under the root export. If this is set to no, clients can only mount the path ''/''. If set to yes, clients can mount a deeper path, like ''/a/b''.)')]
        [bool]
        $submountAccess,
        [parameter(mandatory=$False,HelpMessage='Filter applied to the scope for this rule. The filter''s format depends on its scope. ''default'' scope matches all clients and has no filter value. ''network'' scope takes a filter in CIDR format (for example, 10.99.1.0/24). ''host'' takes an IP address or fully qualified domain name as filter. If a client does not match any filter rule and there is no default rule, access is denied.)')]
        [string]
        $filter,
        [parameter(mandatory=$False,HelpMessage='GID value that replaces 0 when rootSquash is true. This will use the value of anonymousUID if not provided.)')]
        [string]
        $anonymousGID,
        [parameter(mandatory=$False,HelpMessage='Map root accesses to anonymousUID and anonymousGID.)')]
        [bool]
        $rootSquash
    )

    process
    {
        return $([NfsAccessRule]$PSBoundParameters)
    }
}
class NfsAccessPolicy
{
    [NfsAccessRule[]] $accessRules
    [string] $name
}
function New-AzureNativeTypeStoragecacheNfsAccessPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The set of rules describing client accesses allowed under this policy.)')]
        $accessRules,
        [parameter(mandatory=$False,HelpMessage='Name identifying this policy. Access Policy names are not case sensitive.)')]
        [string]
        $name
    )

    process
    {
        return $([NfsAccessPolicy]$PSBoundParameters)
    }
}
class CacheSecuritySettings
{
    [NfsAccessPolicy[]] $accessPolicies
}
function New-AzureNativeTypeStoragecacheCacheSecuritySettings
{
    param (
        [parameter(mandatory=$False,HelpMessage='NFS access policies defined for this cache.)')]
        $accessPolicies
    )

    process
    {
        return $([CacheSecuritySettings]$PSBoundParameters)
    }
}
function New-AzureNativeStoragecacheCache
{
    [Alias('azure_native_storagecache_cache')]
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies encryption settings of the cache.)')]
        [CacheEncryptionSettings]
        $encryptionSettings,
        [parameter(mandatory=$False,HelpMessage='ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property)')]
        [string]
        [ValidateSet('Succeeded', 'Failed', 'Cancelled', 'Creating', 'Deleting', 'Updating')]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='Subnet used for the Cache.)')]
        [string]
        $subnet,
        [parameter(mandatory=$False,HelpMessage='Specifies network settings of the cache.)')]
        [CacheNetworkSettings]
        $networkSettings,
        [parameter(mandatory=$False,HelpMessage='The size of this Cache, in GB.)')]
        [int]
        $cacheSizeGB,
        [parameter(mandatory=$False,HelpMessage='Name of Cache. Length of name must not be greater than 80 and chars must be from the [-0-9a-zA-Z_] char class.)')]
        [string]
        $cacheName,
        [parameter(mandatory=$False,HelpMessage='Specifies Directory Services settings of the cache.)')]
        [CacheDirectorySettings]
        $directoryServicesSettings,
        [parameter(mandatory=$False,HelpMessage='Region name string.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The identity of the cache, if configured.)')]
        [CacheIdentity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Target resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='SKU for the Cache.)')]
        [CacheSku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Specifies security settings of the cache.)')]
        [CacheSecuritySettings]
        $securitySettings,
        [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:storagecache:Cache")

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

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

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ClfsTarget
{
    [string] $target
}
function New-AzureNativeTypeStoragecacheClfsTarget
{
    param (
        [parameter(mandatory=$False,HelpMessage='Resource ID of storage container.)')]
        [string]
        $target
    )

    process
    {
        return $([ClfsTarget]$PSBoundParameters)
    }
}
class BlobNfsTarget
{
    [string] $usageModel
    [string] $target
}
function New-AzureNativeTypeStoragecacheBlobNfsTarget
{
    param (
        [parameter(mandatory=$False,HelpMessage='Identifies the StorageCache usage model to be used for this storage target.)')]
        [string]
        $usageModel,
        [parameter(mandatory=$False,HelpMessage='Resource ID of the storage container.)')]
        [string]
        $target
    )

    process
    {
        return $([BlobNfsTarget]$PSBoundParameters)
    }
}
class UnknownTarget
{
    [object] $attributes
}
function New-AzureNativeTypeStoragecacheUnknownTarget
{
    param (
        [parameter(mandatory=$False,HelpMessage='Dictionary of string->string pairs containing information about the Storage Target.)')]
        [hashtable]
        $attributes
    )

    process
    {
        return $([UnknownTarget]$PSBoundParameters)
    }
}
class Nfs3Target
{
    [string] $usageModel
    [string] $target
}
function New-AzureNativeTypeStoragecacheNfs3Target
{
    param (
        [parameter(mandatory=$False,HelpMessage='Identifies the StorageCache usage model to be used for this storage target.)')]
        [string]
        $usageModel,
        [parameter(mandatory=$False,HelpMessage='IP address or host name of an NFSv3 host (e.g., 10.0.44.44).)')]
        [string]
        $target
    )

    process
    {
        return $([Nfs3Target]$PSBoundParameters)
    }
}
function New-AzureNativeStoragecacheStorageTarget
{
    [Alias('azure_native_storagecache_storagetarget')]
    param (
        [parameter(mandatory=$False,HelpMessage='List of Cache namespace junctions to target for namespace associations.)')]
        $junctions,
        [parameter(mandatory=$False,HelpMessage='Properties when targetType is clfs.)')]
        [ClfsTarget]
        $clfs,
        [parameter(mandatory=$False,HelpMessage='Properties when targetType is blobNfs.)')]
        [BlobNfsTarget]
        $blobNfs,
        [parameter(mandatory=$False,HelpMessage='Properties when targetType is unknown.)')]
        [UnknownTarget]
        $unknown,
        [parameter(mandatory=$False,HelpMessage='Properties when targetType is nfs3.)')]
        [Nfs3Target]
        $nfs3,
        [parameter(mandatory=$False,HelpMessage='Type of the Storage Target.)')]
        [string]
        [ValidateSet('nfs3', 'clfs', 'unknown', 'blobNfs')]
        $targetType,
        [parameter(mandatory=$False,HelpMessage='ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property)')]
        [string]
        [ValidateSet('Succeeded', 'Failed', 'Cancelled', 'Creating', 'Deleting', 'Updating')]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='Name of Storage Target.)')]
        [string]
        $storageTargetName,
        [parameter(mandatory=$False,HelpMessage='Name of Cache. Length of name must not be greater than 80 and chars must be from the [-0-9a-zA-Z_] char class.)')]
        [string]
        $cacheName,
        [parameter(mandatory=$False,HelpMessage='Target resource group.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

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

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

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

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

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

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

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

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

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