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

com.pulumi.azurenative.storagecache.kotlin.inputs.NfsAccessRuleArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.storagecache.kotlin.inputs

import com.pulumi.azurenative.storagecache.inputs.NfsAccessRuleArgs.builder
import com.pulumi.azurenative.storagecache.kotlin.enums.NfsAccessRuleAccess
import com.pulumi.azurenative.storagecache.kotlin.enums.NfsAccessRuleScope
import com.pulumi.core.Either
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.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Rule to place restrictions on portions of the cache namespace being presented to clients.
 * @property access Access allowed by this rule.
 * @property anonymousGID GID value that replaces 0 when rootSquash is true. This will use the value of anonymousUID if not provided.
 * @property anonymousUID UID value that replaces 0 when rootSquash is true. 65534 will be used if not provided.
 * @property filter 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.
 * @property rootSquash Map root accesses to anonymousUID and anonymousGID.
 * @property scope Scope for this rule. The scope and filter determine which clients match the rule.
 * @property submountAccess 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'.
 * @property suid Allow SUID semantics.
 */
public data class NfsAccessRuleArgs(
    public val access: Output>,
    public val anonymousGID: Output? = null,
    public val anonymousUID: Output? = null,
    public val filter: Output? = null,
    public val rootSquash: Output? = null,
    public val scope: Output>,
    public val submountAccess: Output? = null,
    public val suid: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.storagecache.inputs.NfsAccessRuleArgs =
        com.pulumi.azurenative.storagecache.inputs.NfsAccessRuleArgs.builder()
            .access(
                access.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .anonymousGID(anonymousGID?.applyValue({ args0 -> args0 }))
            .anonymousUID(anonymousUID?.applyValue({ args0 -> args0 }))
            .filter(filter?.applyValue({ args0 -> args0 }))
            .rootSquash(rootSquash?.applyValue({ args0 -> args0 }))
            .scope(
                scope.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .submountAccess(submountAccess?.applyValue({ args0 -> args0 }))
            .suid(suid?.applyValue({ args0 -> args0 })).build()
}

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

    private var anonymousGID: Output? = null

    private var anonymousUID: Output? = null

    private var filter: Output? = null

    private var rootSquash: Output? = null

    private var scope: Output>? = null

    private var submountAccess: Output? = null

    private var suid: Output? = null

    /**
     * @param value Access allowed by this rule.
     */
    @JvmName("hxqefdthcyauykky")
    public suspend fun access(`value`: Output>) {
        this.access = value
    }

    /**
     * @param value GID value that replaces 0 when rootSquash is true. This will use the value of anonymousUID if not provided.
     */
    @JvmName("ifnpanqhjlvihpjm")
    public suspend fun anonymousGID(`value`: Output) {
        this.anonymousGID = value
    }

    /**
     * @param value UID value that replaces 0 when rootSquash is true. 65534 will be used if not provided.
     */
    @JvmName("ufgupsjfpfstaknv")
    public suspend fun anonymousUID(`value`: Output) {
        this.anonymousUID = value
    }

    /**
     * @param value 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.
     */
    @JvmName("hoeiwvbsmfsdokhf")
    public suspend fun filter(`value`: Output) {
        this.filter = value
    }

    /**
     * @param value Map root accesses to anonymousUID and anonymousGID.
     */
    @JvmName("xlkbjldswgpyuxds")
    public suspend fun rootSquash(`value`: Output) {
        this.rootSquash = value
    }

    /**
     * @param value Scope for this rule. The scope and filter determine which clients match the rule.
     */
    @JvmName("ejmuwiikxfrhitic")
    public suspend fun scope(`value`: Output>) {
        this.scope = value
    }

    /**
     * @param value 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'.
     */
    @JvmName("mivkblprhxojkklf")
    public suspend fun submountAccess(`value`: Output) {
        this.submountAccess = value
    }

    /**
     * @param value Allow SUID semantics.
     */
    @JvmName("qwticfudmsjopsjy")
    public suspend fun suid(`value`: Output) {
        this.suid = value
    }

    /**
     * @param value Access allowed by this rule.
     */
    @JvmName("ajsjfcjvrbempfdx")
    public suspend fun access(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.access = mapped
    }

    /**
     * @param value Access allowed by this rule.
     */
    @JvmName("nwhuhnxgnqipmgfo")
    public fun access(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.access = mapped
    }

    /**
     * @param value Access allowed by this rule.
     */
    @JvmName("iliqkpffllvmotei")
    public fun access(`value`: NfsAccessRuleAccess) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.access = mapped
    }

    /**
     * @param value GID value that replaces 0 when rootSquash is true. This will use the value of anonymousUID if not provided.
     */
    @JvmName("juobhhdgwungxkir")
    public suspend fun anonymousGID(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.anonymousGID = mapped
    }

    /**
     * @param value UID value that replaces 0 when rootSquash is true. 65534 will be used if not provided.
     */
    @JvmName("ruoidqvfoixgoqkx")
    public suspend fun anonymousUID(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.anonymousUID = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("hkpdsirgtjpvvgpr")
    public suspend fun filter(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.filter = mapped
    }

    /**
     * @param value Map root accesses to anonymousUID and anonymousGID.
     */
    @JvmName("koejijnejmmyashm")
    public suspend fun rootSquash(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootSquash = mapped
    }

    /**
     * @param value Scope for this rule. The scope and filter determine which clients match the rule.
     */
    @JvmName("basuamwlelqpqvfj")
    public suspend fun scope(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scope = mapped
    }

    /**
     * @param value Scope for this rule. The scope and filter determine which clients match the rule.
     */
    @JvmName("djmlhsunqoyfaukv")
    public fun scope(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scope = mapped
    }

    /**
     * @param value Scope for this rule. The scope and filter determine which clients match the rule.
     */
    @JvmName("ofsdggadswhpkxyu")
    public fun scope(`value`: NfsAccessRuleScope) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scope = mapped
    }

    /**
     * @param value 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'.
     */
    @JvmName("bpnuowxjnsvojnft")
    public suspend fun submountAccess(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.submountAccess = mapped
    }

    /**
     * @param value Allow SUID semantics.
     */
    @JvmName("qqsdmcpdjfmaahwl")
    public suspend fun suid(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.suid = mapped
    }

    internal fun build(): NfsAccessRuleArgs = NfsAccessRuleArgs(
        access = access ?: throw PulumiNullFieldException("access"),
        anonymousGID = anonymousGID,
        anonymousUID = anonymousUID,
        filter = filter,
        rootSquash = rootSquash,
        scope = scope ?: throw PulumiNullFieldException("scope"),
        submountAccess = submountAccess,
        suid = suid,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy