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

com.pulumi.azure.hpc.kotlin.inputs.CacheDefaultAccessPolicyAccessRuleArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azure.hpc.kotlin.inputs

import com.pulumi.azure.hpc.inputs.CacheDefaultAccessPolicyAccessRuleArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property access The access level for this rule. Possible values are: `rw`, `ro`, `no`.
 * @property anonymousGid The anonymous GID used when `root_squash_enabled` is `true`.
 * @property anonymousUid The anonymous UID used when `root_squash_enabled` is `true`.
 * @property filter The 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 CIDR format; `host` takes an IP address or fully qualified domain name. If a client does not match any filter rule and there is no default rule, access is denied.
 * @property rootSquashEnabled Whether to enable [root squash](https://docs.microsoft.com/azure/hpc-cache/access-policies#root-squash)?
 * @property scope The scope of this rule. The `scope` and (potentially) the `filter` determine which clients match the rule. Possible values are: `default`, `network`, `host`.
 * > **Note:** Each `access_rule` should set a unique `scope`.
 * @property submountAccessEnabled Whether allow access to subdirectories under the root export?
 * @property suidEnabled Whether [SUID](https://docs.microsoft.com/azure/hpc-cache/access-policies#suid) is allowed?
 */
public data class CacheDefaultAccessPolicyAccessRuleArgs(
    public val access: Output,
    public val anonymousGid: Output? = null,
    public val anonymousUid: Output? = null,
    public val filter: Output? = null,
    public val rootSquashEnabled: Output? = null,
    public val scope: Output,
    public val submountAccessEnabled: Output? = null,
    public val suidEnabled: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.hpc.inputs.CacheDefaultAccessPolicyAccessRuleArgs =
        com.pulumi.azure.hpc.inputs.CacheDefaultAccessPolicyAccessRuleArgs.builder()
            .access(access.applyValue({ args0 -> args0 }))
            .anonymousGid(anonymousGid?.applyValue({ args0 -> args0 }))
            .anonymousUid(anonymousUid?.applyValue({ args0 -> args0 }))
            .filter(filter?.applyValue({ args0 -> args0 }))
            .rootSquashEnabled(rootSquashEnabled?.applyValue({ args0 -> args0 }))
            .scope(scope.applyValue({ args0 -> args0 }))
            .submountAccessEnabled(submountAccessEnabled?.applyValue({ args0 -> args0 }))
            .suidEnabled(suidEnabled?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [CacheDefaultAccessPolicyAccessRuleArgs].
 */
@PulumiTagMarker
public class CacheDefaultAccessPolicyAccessRuleArgsBuilder internal constructor() {
    private var access: Output? = null

    private var anonymousGid: Output? = null

    private var anonymousUid: Output? = null

    private var filter: Output? = null

    private var rootSquashEnabled: Output? = null

    private var scope: Output? = null

    private var submountAccessEnabled: Output? = null

    private var suidEnabled: Output? = null

    /**
     * @param value The access level for this rule. Possible values are: `rw`, `ro`, `no`.
     */
    @JvmName("ebjhsyrnvlofjpcl")
    public suspend fun access(`value`: Output) {
        this.access = value
    }

    /**
     * @param value The anonymous GID used when `root_squash_enabled` is `true`.
     */
    @JvmName("uhdjvlegrbfrhnms")
    public suspend fun anonymousGid(`value`: Output) {
        this.anonymousGid = value
    }

    /**
     * @param value The anonymous UID used when `root_squash_enabled` is `true`.
     */
    @JvmName("jsdcpcdaopbqucja")
    public suspend fun anonymousUid(`value`: Output) {
        this.anonymousUid = value
    }

    /**
     * @param value The 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 CIDR format; `host` takes an IP address or fully qualified domain name. If a client does not match any filter rule and there is no default rule, access is denied.
     */
    @JvmName("hsrhxrvqhgwpnxlm")
    public suspend fun filter(`value`: Output) {
        this.filter = value
    }

    /**
     * @param value Whether to enable [root squash](https://docs.microsoft.com/azure/hpc-cache/access-policies#root-squash)?
     */
    @JvmName("jqxelxpiudnbajdo")
    public suspend fun rootSquashEnabled(`value`: Output) {
        this.rootSquashEnabled = value
    }

    /**
     * @param value The scope of this rule. The `scope` and (potentially) the `filter` determine which clients match the rule. Possible values are: `default`, `network`, `host`.
     * > **Note:** Each `access_rule` should set a unique `scope`.
     */
    @JvmName("rsamhrwkrwwxtvji")
    public suspend fun scope(`value`: Output) {
        this.scope = value
    }

    /**
     * @param value Whether allow access to subdirectories under the root export?
     */
    @JvmName("xgwoywkurlvickao")
    public suspend fun submountAccessEnabled(`value`: Output) {
        this.submountAccessEnabled = value
    }

    /**
     * @param value Whether [SUID](https://docs.microsoft.com/azure/hpc-cache/access-policies#suid) is allowed?
     */
    @JvmName("itvsdljmbmygiawf")
    public suspend fun suidEnabled(`value`: Output) {
        this.suidEnabled = value
    }

    /**
     * @param value The access level for this rule. Possible values are: `rw`, `ro`, `no`.
     */
    @JvmName("cdpqsfyhophgbxjd")
    public suspend fun access(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.access = mapped
    }

    /**
     * @param value The anonymous GID used when `root_squash_enabled` is `true`.
     */
    @JvmName("blagypwwdecnuhyu")
    public suspend fun anonymousGid(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.anonymousGid = mapped
    }

    /**
     * @param value The anonymous UID used when `root_squash_enabled` is `true`.
     */
    @JvmName("fjkqskwngxtqgmfp")
    public suspend fun anonymousUid(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.anonymousUid = mapped
    }

    /**
     * @param value The 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 CIDR format; `host` takes an IP address or fully qualified domain name. If a client does not match any filter rule and there is no default rule, access is denied.
     */
    @JvmName("hucgunkblfqbxjew")
    public suspend fun filter(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.filter = mapped
    }

    /**
     * @param value Whether to enable [root squash](https://docs.microsoft.com/azure/hpc-cache/access-policies#root-squash)?
     */
    @JvmName("nqhucsjcetviticw")
    public suspend fun rootSquashEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootSquashEnabled = mapped
    }

    /**
     * @param value The scope of this rule. The `scope` and (potentially) the `filter` determine which clients match the rule. Possible values are: `default`, `network`, `host`.
     * > **Note:** Each `access_rule` should set a unique `scope`.
     */
    @JvmName("qswhectbfttpysia")
    public suspend fun scope(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scope = mapped
    }

    /**
     * @param value Whether allow access to subdirectories under the root export?
     */
    @JvmName("bfpixjivwiobidut")
    public suspend fun submountAccessEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.submountAccessEnabled = mapped
    }

    /**
     * @param value Whether [SUID](https://docs.microsoft.com/azure/hpc-cache/access-policies#suid) is allowed?
     */
    @JvmName("nxpdregrithddqnx")
    public suspend fun suidEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.suidEnabled = mapped
    }

    internal fun build(): CacheDefaultAccessPolicyAccessRuleArgs =
        CacheDefaultAccessPolicyAccessRuleArgs(
            access = access ?: throw PulumiNullFieldException("access"),
            anonymousGid = anonymousGid,
            anonymousUid = anonymousUid,
            filter = filter,
            rootSquashEnabled = rootSquashEnabled,
            scope = scope ?: throw PulumiNullFieldException("scope"),
            submountAccessEnabled = submountAccessEnabled,
            suidEnabled = suidEnabled,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy