All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.hpc.kotlin.CacheBlobNfsTargetArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.hpc.kotlin

import com.pulumi.azure.hpc.CacheBlobNfsTargetArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Manages a Blob NFSv3 Target within a HPC Cache.
 * > **NOTE:**: By request of the service team the provider no longer automatically registering the `Microsoft.StorageCache` Resource Provider for this resource. To register it you can run `az provider register --namespace 'Microsoft.StorageCache'`.
 * > **NOTE:**: This resource depends on the NFSv3 enabled Storage Account, which has some prerequisites need to meet. Please checkout: .
 * ## Import
 * HPC Cache Blob NFS Targets can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:hpc/cacheBlobNfsTarget:CacheBlobNfsTarget example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageCache/caches/cache1/storageTargets/target1
 * ```
 * @property accessPolicyName The name of the access policy applied to this target. Defaults to `default`.
 * @property cacheName The name of the HPC Cache, which the HPC Cache Blob NFS Target will be added to. Changing this forces a new HPC Cache Blob NFS Target to be created.
 * @property name The name which should be used for this HPC Cache Blob NFS Target. Changing this forces a new HPC Cache Blob NFS Target to be created.
 * @property namespacePath The client-facing file path of the HPC Cache Blob NFS Target.
 * @property resourceGroupName The name of the Resource Group where the HPC Cache Blob NFS Target should exist. Changing this forces a new HPC Cache Blob NFS Target to be created.
 * @property storageContainerId The Resource Manager ID of the Storage Container used as the HPC Cache Blob NFS Target. Changing this forces a new resource to be created.
 * > **Note:** This is the Resource Manager ID of the Storage Container, rather than the regular ID - and can be accessed on the `azure.storage.Container` Data Source/Resource as `resource_manager_id`.
 * @property usageModel The type of usage of the HPC Cache Blob NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `READ_ONLY`, `READ_WRITE`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.
 * @property verificationTimerInSeconds The amount of time the cache waits before it checks the back-end storage for file updates. Possible values are between `1` and `31536000`.
 * @property writeBackTimerInSeconds The amount of time the cache waits after the last file change before it copies the changed file to back-end storage. Possible values are between `1` and `31536000`.
 */
public data class CacheBlobNfsTargetArgs(
    public val accessPolicyName: Output? = null,
    public val cacheName: Output? = null,
    public val name: Output? = null,
    public val namespacePath: Output? = null,
    public val resourceGroupName: Output? = null,
    public val storageContainerId: Output? = null,
    public val usageModel: Output? = null,
    public val verificationTimerInSeconds: Output? = null,
    public val writeBackTimerInSeconds: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.hpc.CacheBlobNfsTargetArgs =
        com.pulumi.azure.hpc.CacheBlobNfsTargetArgs.builder()
            .accessPolicyName(accessPolicyName?.applyValue({ args0 -> args0 }))
            .cacheName(cacheName?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .namespacePath(namespacePath?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .storageContainerId(storageContainerId?.applyValue({ args0 -> args0 }))
            .usageModel(usageModel?.applyValue({ args0 -> args0 }))
            .verificationTimerInSeconds(verificationTimerInSeconds?.applyValue({ args0 -> args0 }))
            .writeBackTimerInSeconds(writeBackTimerInSeconds?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [CacheBlobNfsTargetArgs].
 */
@PulumiTagMarker
public class CacheBlobNfsTargetArgsBuilder internal constructor() {
    private var accessPolicyName: Output? = null

    private var cacheName: Output? = null

    private var name: Output? = null

    private var namespacePath: Output? = null

    private var resourceGroupName: Output? = null

    private var storageContainerId: Output? = null

    private var usageModel: Output? = null

    private var verificationTimerInSeconds: Output? = null

    private var writeBackTimerInSeconds: Output? = null

    /**
     * @param value The name of the access policy applied to this target. Defaults to `default`.
     */
    @JvmName("ewyicexycuruqpmo")
    public suspend fun accessPolicyName(`value`: Output) {
        this.accessPolicyName = value
    }

    /**
     * @param value The name of the HPC Cache, which the HPC Cache Blob NFS Target will be added to. Changing this forces a new HPC Cache Blob NFS Target to be created.
     */
    @JvmName("qjixppajobqdvyxk")
    public suspend fun cacheName(`value`: Output) {
        this.cacheName = value
    }

    /**
     * @param value The name which should be used for this HPC Cache Blob NFS Target. Changing this forces a new HPC Cache Blob NFS Target to be created.
     */
    @JvmName("fsswydmhocyknolg")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The client-facing file path of the HPC Cache Blob NFS Target.
     */
    @JvmName("fecrypsuvfwvygho")
    public suspend fun namespacePath(`value`: Output) {
        this.namespacePath = value
    }

    /**
     * @param value The name of the Resource Group where the HPC Cache Blob NFS Target should exist. Changing this forces a new HPC Cache Blob NFS Target to be created.
     */
    @JvmName("bkdulvqqyiravmda")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The Resource Manager ID of the Storage Container used as the HPC Cache Blob NFS Target. Changing this forces a new resource to be created.
     * > **Note:** This is the Resource Manager ID of the Storage Container, rather than the regular ID - and can be accessed on the `azure.storage.Container` Data Source/Resource as `resource_manager_id`.
     */
    @JvmName("fpnvlygdbsmbmlgr")
    public suspend fun storageContainerId(`value`: Output) {
        this.storageContainerId = value
    }

    /**
     * @param value The type of usage of the HPC Cache Blob NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `READ_ONLY`, `READ_WRITE`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.
     */
    @JvmName("uuxfvqbiwrwkhsmf")
    public suspend fun usageModel(`value`: Output) {
        this.usageModel = value
    }

    /**
     * @param value The amount of time the cache waits before it checks the back-end storage for file updates. Possible values are between `1` and `31536000`.
     */
    @JvmName("lknqfhkguajncava")
    public suspend fun verificationTimerInSeconds(`value`: Output) {
        this.verificationTimerInSeconds = value
    }

    /**
     * @param value The amount of time the cache waits after the last file change before it copies the changed file to back-end storage. Possible values are between `1` and `31536000`.
     */
    @JvmName("bymrfvkbunuussex")
    public suspend fun writeBackTimerInSeconds(`value`: Output) {
        this.writeBackTimerInSeconds = value
    }

    /**
     * @param value The name of the access policy applied to this target. Defaults to `default`.
     */
    @JvmName("rbtbdokdrqcqjqrg")
    public suspend fun accessPolicyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessPolicyName = mapped
    }

    /**
     * @param value The name of the HPC Cache, which the HPC Cache Blob NFS Target will be added to. Changing this forces a new HPC Cache Blob NFS Target to be created.
     */
    @JvmName("uuwyasrukfvoneey")
    public suspend fun cacheName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheName = mapped
    }

    /**
     * @param value The name which should be used for this HPC Cache Blob NFS Target. Changing this forces a new HPC Cache Blob NFS Target to be created.
     */
    @JvmName("jnjpvccmrfvpibmm")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The client-facing file path of the HPC Cache Blob NFS Target.
     */
    @JvmName("tllgxkcifmpgnapm")
    public suspend fun namespacePath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespacePath = mapped
    }

    /**
     * @param value The name of the Resource Group where the HPC Cache Blob NFS Target should exist. Changing this forces a new HPC Cache Blob NFS Target to be created.
     */
    @JvmName("kmcgpisgetfuxjcr")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The Resource Manager ID of the Storage Container used as the HPC Cache Blob NFS Target. Changing this forces a new resource to be created.
     * > **Note:** This is the Resource Manager ID of the Storage Container, rather than the regular ID - and can be accessed on the `azure.storage.Container` Data Source/Resource as `resource_manager_id`.
     */
    @JvmName("sdaxidvdbykslfnd")
    public suspend fun storageContainerId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageContainerId = mapped
    }

    /**
     * @param value The type of usage of the HPC Cache Blob NFS Target. Possible values are: `READ_HEAVY_INFREQ`, `READ_HEAVY_CHECK_180`, `READ_ONLY`, `READ_WRITE`, `WRITE_WORKLOAD_15`, `WRITE_AROUND`, `WRITE_WORKLOAD_CHECK_30`, `WRITE_WORKLOAD_CHECK_60` and `WRITE_WORKLOAD_CLOUDWS`.
     */
    @JvmName("elfdxqkqoqxqpmkk")
    public suspend fun usageModel(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.usageModel = mapped
    }

    /**
     * @param value The amount of time the cache waits before it checks the back-end storage for file updates. Possible values are between `1` and `31536000`.
     */
    @JvmName("dacfskskitutjbcg")
    public suspend fun verificationTimerInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.verificationTimerInSeconds = mapped
    }

    /**
     * @param value The amount of time the cache waits after the last file change before it copies the changed file to back-end storage. Possible values are between `1` and `31536000`.
     */
    @JvmName("tdnvffhfsrgvewjk")
    public suspend fun writeBackTimerInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.writeBackTimerInSeconds = mapped
    }

    internal fun build(): CacheBlobNfsTargetArgs = CacheBlobNfsTargetArgs(
        accessPolicyName = accessPolicyName,
        cacheName = cacheName,
        name = name,
        namespacePath = namespacePath,
        resourceGroupName = resourceGroupName,
        storageContainerId = storageContainerId,
        usageModel = usageModel,
        verificationTimerInSeconds = verificationTimerInSeconds,
        writeBackTimerInSeconds = writeBackTimerInSeconds,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy