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

com.pulumi.gcp.netapp.kotlin.inputs.VolumeExportPolicyRuleArgs.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.netapp.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.netapp.inputs.VolumeExportPolicyRuleArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property accessType Defines the access type for clients matching the `allowedClients` specification.
 * Possible values are: `READ_ONLY`, `READ_WRITE`, `READ_NONE`.
 * @property allowedClients Defines the client ingress specification (allowed clients) as a comma seperated list with IPv4 CIDRs or IPv4 host addresses.
 * @property hasRootAccess If enabled, the root user (UID = 0) of the specified clients doesn't get mapped to nobody (UID = 65534). This is also known as no_root_squash.
 * @property kerberos5ReadOnly If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.
 * @property kerberos5ReadWrite If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value is ignored if this is enabled.
 * @property kerberos5iReadOnly If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.
 * @property kerberos5iReadWrite If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value is ignored if this is enabled.
 * @property kerberos5pReadOnly If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.
 * @property kerberos5pReadWrite If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value is ignored if this is enabled.
 * @property nfsv3 Enable to apply the export rule to NFSV3 clients.
 * @property nfsv4 Enable to apply the export rule to NFSV4.1 clients.
 */
public data class VolumeExportPolicyRuleArgs(
    public val accessType: Output? = null,
    public val allowedClients: Output? = null,
    public val hasRootAccess: Output? = null,
    public val kerberos5ReadOnly: Output? = null,
    public val kerberos5ReadWrite: Output? = null,
    public val kerberos5iReadOnly: Output? = null,
    public val kerberos5iReadWrite: Output? = null,
    public val kerberos5pReadOnly: Output? = null,
    public val kerberos5pReadWrite: Output? = null,
    public val nfsv3: Output? = null,
    public val nfsv4: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.netapp.inputs.VolumeExportPolicyRuleArgs =
        com.pulumi.gcp.netapp.inputs.VolumeExportPolicyRuleArgs.builder()
            .accessType(accessType?.applyValue({ args0 -> args0 }))
            .allowedClients(allowedClients?.applyValue({ args0 -> args0 }))
            .hasRootAccess(hasRootAccess?.applyValue({ args0 -> args0 }))
            .kerberos5ReadOnly(kerberos5ReadOnly?.applyValue({ args0 -> args0 }))
            .kerberos5ReadWrite(kerberos5ReadWrite?.applyValue({ args0 -> args0 }))
            .kerberos5iReadOnly(kerberos5iReadOnly?.applyValue({ args0 -> args0 }))
            .kerberos5iReadWrite(kerberos5iReadWrite?.applyValue({ args0 -> args0 }))
            .kerberos5pReadOnly(kerberos5pReadOnly?.applyValue({ args0 -> args0 }))
            .kerberos5pReadWrite(kerberos5pReadWrite?.applyValue({ args0 -> args0 }))
            .nfsv3(nfsv3?.applyValue({ args0 -> args0 }))
            .nfsv4(nfsv4?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [VolumeExportPolicyRuleArgs].
 */
@PulumiTagMarker
public class VolumeExportPolicyRuleArgsBuilder internal constructor() {
    private var accessType: Output? = null

    private var allowedClients: Output? = null

    private var hasRootAccess: Output? = null

    private var kerberos5ReadOnly: Output? = null

    private var kerberos5ReadWrite: Output? = null

    private var kerberos5iReadOnly: Output? = null

    private var kerberos5iReadWrite: Output? = null

    private var kerberos5pReadOnly: Output? = null

    private var kerberos5pReadWrite: Output? = null

    private var nfsv3: Output? = null

    private var nfsv4: Output? = null

    /**
     * @param value Defines the access type for clients matching the `allowedClients` specification.
     * Possible values are: `READ_ONLY`, `READ_WRITE`, `READ_NONE`.
     */
    @JvmName("hejpbaawgemgunbd")
    public suspend fun accessType(`value`: Output) {
        this.accessType = value
    }

    /**
     * @param value Defines the client ingress specification (allowed clients) as a comma seperated list with IPv4 CIDRs or IPv4 host addresses.
     */
    @JvmName("mqwmlfdkipqlutrg")
    public suspend fun allowedClients(`value`: Output) {
        this.allowedClients = value
    }

    /**
     * @param value If enabled, the root user (UID = 0) of the specified clients doesn't get mapped to nobody (UID = 65534). This is also known as no_root_squash.
     */
    @JvmName("hqsqnmveqtyiqokm")
    public suspend fun hasRootAccess(`value`: Output) {
        this.hasRootAccess = value
    }

    /**
     * @param value If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.
     */
    @JvmName("mtgquqpumxkvjvfl")
    public suspend fun kerberos5ReadOnly(`value`: Output) {
        this.kerberos5ReadOnly = value
    }

    /**
     * @param value If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value is ignored if this is enabled.
     */
    @JvmName("njrbkstutsdrlcrn")
    public suspend fun kerberos5ReadWrite(`value`: Output) {
        this.kerberos5ReadWrite = value
    }

    /**
     * @param value If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.
     */
    @JvmName("cakkeshdcxeqxrvx")
    public suspend fun kerberos5iReadOnly(`value`: Output) {
        this.kerberos5iReadOnly = value
    }

    /**
     * @param value If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value is ignored if this is enabled.
     */
    @JvmName("rnrsmwgvmcjdubis")
    public suspend fun kerberos5iReadWrite(`value`: Output) {
        this.kerberos5iReadWrite = value
    }

    /**
     * @param value If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.
     */
    @JvmName("ikqpdanpnavpqltd")
    public suspend fun kerberos5pReadOnly(`value`: Output) {
        this.kerberos5pReadOnly = value
    }

    /**
     * @param value If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value is ignored if this is enabled.
     */
    @JvmName("evppxeexmrxtypev")
    public suspend fun kerberos5pReadWrite(`value`: Output) {
        this.kerberos5pReadWrite = value
    }

    /**
     * @param value Enable to apply the export rule to NFSV3 clients.
     */
    @JvmName("nfjxqepfhplbchrs")
    public suspend fun nfsv3(`value`: Output) {
        this.nfsv3 = value
    }

    /**
     * @param value Enable to apply the export rule to NFSV4.1 clients.
     */
    @JvmName("capuwcdpqxolenyl")
    public suspend fun nfsv4(`value`: Output) {
        this.nfsv4 = value
    }

    /**
     * @param value Defines the access type for clients matching the `allowedClients` specification.
     * Possible values are: `READ_ONLY`, `READ_WRITE`, `READ_NONE`.
     */
    @JvmName("fahbbukntdwusatf")
    public suspend fun accessType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessType = mapped
    }

    /**
     * @param value Defines the client ingress specification (allowed clients) as a comma seperated list with IPv4 CIDRs or IPv4 host addresses.
     */
    @JvmName("dwpdmbjbtqbswmjk")
    public suspend fun allowedClients(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedClients = mapped
    }

    /**
     * @param value If enabled, the root user (UID = 0) of the specified clients doesn't get mapped to nobody (UID = 65534). This is also known as no_root_squash.
     */
    @JvmName("yyidudulayesnxtq")
    public suspend fun hasRootAccess(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hasRootAccess = mapped
    }

    /**
     * @param value If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.
     */
    @JvmName("nodxbdktyfeuwrpl")
    public suspend fun kerberos5ReadOnly(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberos5ReadOnly = mapped
    }

    /**
     * @param value If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value is ignored if this is enabled.
     */
    @JvmName("finwyopafhitnbsr")
    public suspend fun kerberos5ReadWrite(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberos5ReadWrite = mapped
    }

    /**
     * @param value If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.
     */
    @JvmName("ojhoaiutlmnljigl")
    public suspend fun kerberos5iReadOnly(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberos5iReadOnly = mapped
    }

    /**
     * @param value If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value is ignored if this is enabled.
     */
    @JvmName("bntcueiovjsaxiwr")
    public suspend fun kerberos5iReadWrite(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberos5iReadWrite = mapped
    }

    /**
     * @param value If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.
     */
    @JvmName("xndaaohrrbtmonyn")
    public suspend fun kerberos5pReadOnly(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberos5pReadOnly = mapped
    }

    /**
     * @param value If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value is ignored if this is enabled.
     */
    @JvmName("mxruelsfmsejenif")
    public suspend fun kerberos5pReadWrite(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kerberos5pReadWrite = mapped
    }

    /**
     * @param value Enable to apply the export rule to NFSV3 clients.
     */
    @JvmName("wlvjccxdqevrvoff")
    public suspend fun nfsv3(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nfsv3 = mapped
    }

    /**
     * @param value Enable to apply the export rule to NFSV4.1 clients.
     */
    @JvmName("jxckqamnykypqyqf")
    public suspend fun nfsv4(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nfsv4 = mapped
    }

    internal fun build(): VolumeExportPolicyRuleArgs = VolumeExportPolicyRuleArgs(
        accessType = accessType,
        allowedClients = allowedClients,
        hasRootAccess = hasRootAccess,
        kerberos5ReadOnly = kerberos5ReadOnly,
        kerberos5ReadWrite = kerberos5ReadWrite,
        kerberos5iReadOnly = kerberos5iReadOnly,
        kerberos5iReadWrite = kerberos5iReadWrite,
        kerberos5pReadOnly = kerberos5pReadOnly,
        kerberos5pReadWrite = kerberos5pReadWrite,
        nfsv3 = nfsv3,
        nfsv4 = nfsv4,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy