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

com.pulumi.aws.storagegateway.kotlin.NfsFileShareArgs.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: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.storagegateway.kotlin

import com.pulumi.aws.storagegateway.NfsFileShareArgs.builder
import com.pulumi.aws.storagegateway.kotlin.inputs.NfsFileShareCacheAttributesArgs
import com.pulumi.aws.storagegateway.kotlin.inputs.NfsFileShareCacheAttributesArgsBuilder
import com.pulumi.aws.storagegateway.kotlin.inputs.NfsFileShareNfsFileShareDefaultsArgs
import com.pulumi.aws.storagegateway.kotlin.inputs.NfsFileShareNfsFileShareDefaultsArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Manages an AWS Storage Gateway NFS File Share.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.storagegateway.NfsFileShare("example", {
 *     clientLists: ["0.0.0.0/0"],
 *     gatewayArn: exampleAwsStoragegatewayGateway.arn,
 *     locationArn: exampleAwsS3Bucket.arn,
 *     roleArn: exampleAwsIamRole.arn,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.storagegateway.NfsFileShare("example",
 *     client_lists=["0.0.0.0/0"],
 *     gateway_arn=example_aws_storagegateway_gateway["arn"],
 *     location_arn=example_aws_s3_bucket["arn"],
 *     role_arn=example_aws_iam_role["arn"])
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.StorageGateway.NfsFileShare("example", new()
 *     {
 *         ClientLists = new[]
 *         {
 *             "0.0.0.0/0",
 *         },
 *         GatewayArn = exampleAwsStoragegatewayGateway.Arn,
 *         LocationArn = exampleAwsS3Bucket.Arn,
 *         RoleArn = exampleAwsIamRole.Arn,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/storagegateway"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := storagegateway.NewNfsFileShare(ctx, "example", &storagegateway.NfsFileShareArgs{
 * 			ClientLists: pulumi.StringArray{
 * 				pulumi.String("0.0.0.0/0"),
 * 			},
 * 			GatewayArn:  pulumi.Any(exampleAwsStoragegatewayGateway.Arn),
 * 			LocationArn: pulumi.Any(exampleAwsS3Bucket.Arn),
 * 			RoleArn:     pulumi.Any(exampleAwsIamRole.Arn),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.storagegateway.NfsFileShare;
 * import com.pulumi.aws.storagegateway.NfsFileShareArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new NfsFileShare("example", NfsFileShareArgs.builder()
 *             .clientLists("0.0.0.0/0")
 *             .gatewayArn(exampleAwsStoragegatewayGateway.arn())
 *             .locationArn(exampleAwsS3Bucket.arn())
 *             .roleArn(exampleAwsIamRole.arn())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:storagegateway:NfsFileShare
 *     properties:
 *       clientLists:
 *         - 0.0.0.0/0
 *       gatewayArn: ${exampleAwsStoragegatewayGateway.arn}
 *       locationArn: ${exampleAwsS3Bucket.arn}
 *       roleArn: ${exampleAwsIamRole.arn}
 * ```
 * 
 * ## Import
 * Using `pulumi import`, import `aws_storagegateway_nfs_file_share` using the NFS File Share Amazon Resource Name (ARN). For example:
 * ```sh
 * $ pulumi import aws:storagegateway/nfsFileShare:NfsFileShare example arn:aws:storagegateway:us-east-1:123456789012:share/share-12345678
 * ```
 * @property auditDestinationArn The Amazon Resource Name (ARN) of the storage used for audit logs.
 * @property bucketRegion The region of the S3 bucket used by the file share. Required when specifying `vpc_endpoint_dns_name`.
 * @property cacheAttributes Refresh cache information. see Cache Attributes for more details.
 * @property clientLists The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
 * @property defaultStorageClass The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
 * @property fileShareName The name of the file share. Must be set if an S3 prefix name is set in `location_arn`.
 * @property gatewayArn Amazon Resource Name (ARN) of the file gateway.
 * @property guessMimeTypeEnabled Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
 * @property kmsEncrypted Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
 * @property kmsKeyArn Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kms_encrypted` is true.
 * @property locationArn The ARN of the backed storage used for storing file data.
 * @property nfsFileShareDefaults Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
 * @property notificationPolicy The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
 * @property objectAcl Access Control List permission for S3 objects. Defaults to `private`.
 * @property readOnly Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
 * @property requesterPays Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
 * @property roleArn The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
 * @property squash Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
 * @property tags Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
 * @property vpcEndpointDnsName The DNS name of the VPC endpoint for S3 PrivateLink.
 */
public data class NfsFileShareArgs(
    public val auditDestinationArn: Output? = null,
    public val bucketRegion: Output? = null,
    public val cacheAttributes: Output? = null,
    public val clientLists: Output>? = null,
    public val defaultStorageClass: Output? = null,
    public val fileShareName: Output? = null,
    public val gatewayArn: Output? = null,
    public val guessMimeTypeEnabled: Output? = null,
    public val kmsEncrypted: Output? = null,
    public val kmsKeyArn: Output? = null,
    public val locationArn: Output? = null,
    public val nfsFileShareDefaults: Output? = null,
    public val notificationPolicy: Output? = null,
    public val objectAcl: Output? = null,
    public val readOnly: Output? = null,
    public val requesterPays: Output? = null,
    public val roleArn: Output? = null,
    public val squash: Output? = null,
    public val tags: Output>? = null,
    public val vpcEndpointDnsName: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.storagegateway.NfsFileShareArgs =
        com.pulumi.aws.storagegateway.NfsFileShareArgs.builder()
            .auditDestinationArn(auditDestinationArn?.applyValue({ args0 -> args0 }))
            .bucketRegion(bucketRegion?.applyValue({ args0 -> args0 }))
            .cacheAttributes(cacheAttributes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .clientLists(clientLists?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .defaultStorageClass(defaultStorageClass?.applyValue({ args0 -> args0 }))
            .fileShareName(fileShareName?.applyValue({ args0 -> args0 }))
            .gatewayArn(gatewayArn?.applyValue({ args0 -> args0 }))
            .guessMimeTypeEnabled(guessMimeTypeEnabled?.applyValue({ args0 -> args0 }))
            .kmsEncrypted(kmsEncrypted?.applyValue({ args0 -> args0 }))
            .kmsKeyArn(kmsKeyArn?.applyValue({ args0 -> args0 }))
            .locationArn(locationArn?.applyValue({ args0 -> args0 }))
            .nfsFileShareDefaults(
                nfsFileShareDefaults?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .notificationPolicy(notificationPolicy?.applyValue({ args0 -> args0 }))
            .objectAcl(objectAcl?.applyValue({ args0 -> args0 }))
            .readOnly(readOnly?.applyValue({ args0 -> args0 }))
            .requesterPays(requesterPays?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .squash(squash?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .vpcEndpointDnsName(vpcEndpointDnsName?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [NfsFileShareArgs].
 */
@PulumiTagMarker
public class NfsFileShareArgsBuilder internal constructor() {
    private var auditDestinationArn: Output? = null

    private var bucketRegion: Output? = null

    private var cacheAttributes: Output? = null

    private var clientLists: Output>? = null

    private var defaultStorageClass: Output? = null

    private var fileShareName: Output? = null

    private var gatewayArn: Output? = null

    private var guessMimeTypeEnabled: Output? = null

    private var kmsEncrypted: Output? = null

    private var kmsKeyArn: Output? = null

    private var locationArn: Output? = null

    private var nfsFileShareDefaults: Output? = null

    private var notificationPolicy: Output? = null

    private var objectAcl: Output? = null

    private var readOnly: Output? = null

    private var requesterPays: Output? = null

    private var roleArn: Output? = null

    private var squash: Output? = null

    private var tags: Output>? = null

    private var vpcEndpointDnsName: Output? = null

    /**
     * @param value The Amazon Resource Name (ARN) of the storage used for audit logs.
     */
    @JvmName("vbwhsksmhfbfteid")
    public suspend fun auditDestinationArn(`value`: Output) {
        this.auditDestinationArn = value
    }

    /**
     * @param value The region of the S3 bucket used by the file share. Required when specifying `vpc_endpoint_dns_name`.
     */
    @JvmName("gfnyhcwhmnbbmneb")
    public suspend fun bucketRegion(`value`: Output) {
        this.bucketRegion = value
    }

    /**
     * @param value Refresh cache information. see Cache Attributes for more details.
     */
    @JvmName("bidsxjyoefleiccb")
    public suspend fun cacheAttributes(`value`: Output) {
        this.cacheAttributes = value
    }

    /**
     * @param value The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
     */
    @JvmName("ymtbphglyyqjcejt")
    public suspend fun clientLists(`value`: Output>) {
        this.clientLists = value
    }

    @JvmName("wjrtisbtnqxiutvm")
    public suspend fun clientLists(vararg values: Output) {
        this.clientLists = Output.all(values.asList())
    }

    /**
     * @param values The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
     */
    @JvmName("jnfnmjgunhrsyaai")
    public suspend fun clientLists(values: List>) {
        this.clientLists = Output.all(values)
    }

    /**
     * @param value The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
     */
    @JvmName("qelopaxcsgihxphm")
    public suspend fun defaultStorageClass(`value`: Output) {
        this.defaultStorageClass = value
    }

    /**
     * @param value The name of the file share. Must be set if an S3 prefix name is set in `location_arn`.
     */
    @JvmName("sxqqespsvfsolcyk")
    public suspend fun fileShareName(`value`: Output) {
        this.fileShareName = value
    }

    /**
     * @param value Amazon Resource Name (ARN) of the file gateway.
     */
    @JvmName("ysjwaiexbyblorbh")
    public suspend fun gatewayArn(`value`: Output) {
        this.gatewayArn = value
    }

    /**
     * @param value Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
     */
    @JvmName("bdwlulrseiwoeeho")
    public suspend fun guessMimeTypeEnabled(`value`: Output) {
        this.guessMimeTypeEnabled = value
    }

    /**
     * @param value Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
     */
    @JvmName("vxyvyqflpreguful")
    public suspend fun kmsEncrypted(`value`: Output) {
        this.kmsEncrypted = value
    }

    /**
     * @param value Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kms_encrypted` is true.
     */
    @JvmName("baqtsrjvotnqjrvu")
    public suspend fun kmsKeyArn(`value`: Output) {
        this.kmsKeyArn = value
    }

    /**
     * @param value The ARN of the backed storage used for storing file data.
     */
    @JvmName("hjrmafbhhofrwufs")
    public suspend fun locationArn(`value`: Output) {
        this.locationArn = value
    }

    /**
     * @param value Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
     */
    @JvmName("ebpxhcfckfwjdygn")
    public suspend fun nfsFileShareDefaults(`value`: Output) {
        this.nfsFileShareDefaults = value
    }

    /**
     * @param value The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
     */
    @JvmName("msdtgplccoillmth")
    public suspend fun notificationPolicy(`value`: Output) {
        this.notificationPolicy = value
    }

    /**
     * @param value Access Control List permission for S3 objects. Defaults to `private`.
     */
    @JvmName("oimkkcrktbnabqbv")
    public suspend fun objectAcl(`value`: Output) {
        this.objectAcl = value
    }

    /**
     * @param value Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
     */
    @JvmName("gyghimxrbdcewcam")
    public suspend fun readOnly(`value`: Output) {
        this.readOnly = value
    }

    /**
     * @param value Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
     */
    @JvmName("cwvbpmhsolnmtxhl")
    public suspend fun requesterPays(`value`: Output) {
        this.requesterPays = value
    }

    /**
     * @param value The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
     */
    @JvmName("tmynyxwbbjeagjvl")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
     */
    @JvmName("kxxaufcckvebplti")
    public suspend fun squash(`value`: Output) {
        this.squash = value
    }

    /**
     * @param value Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("yaagtfymmvydfhhj")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value The DNS name of the VPC endpoint for S3 PrivateLink.
     */
    @JvmName("bexavmbwxvokxhkv")
    public suspend fun vpcEndpointDnsName(`value`: Output) {
        this.vpcEndpointDnsName = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the storage used for audit logs.
     */
    @JvmName("pbryykhincsfxlnt")
    public suspend fun auditDestinationArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.auditDestinationArn = mapped
    }

    /**
     * @param value The region of the S3 bucket used by the file share. Required when specifying `vpc_endpoint_dns_name`.
     */
    @JvmName("mfhmnpvxhnxskxss")
    public suspend fun bucketRegion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bucketRegion = mapped
    }

    /**
     * @param value Refresh cache information. see Cache Attributes for more details.
     */
    @JvmName("lpdogdjiuipujlfg")
    public suspend fun cacheAttributes(`value`: NfsFileShareCacheAttributesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheAttributes = mapped
    }

    /**
     * @param argument Refresh cache information. see Cache Attributes for more details.
     */
    @JvmName("okvrwhdogtpaidil")
    public suspend fun cacheAttributes(argument: suspend NfsFileShareCacheAttributesArgsBuilder.() -> Unit) {
        val toBeMapped = NfsFileShareCacheAttributesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cacheAttributes = mapped
    }

    /**
     * @param value The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
     */
    @JvmName("tqapoihmbidgkguk")
    public suspend fun clientLists(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientLists = mapped
    }

    /**
     * @param values The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks. Set to `["0.0.0.0/0"]` to not limit access. Minimum 1 item. Maximum 100 items.
     */
    @JvmName("hoojrmsrttjmempx")
    public suspend fun clientLists(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clientLists = mapped
    }

    /**
     * @param value The default [storage class](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-DefaultStorageClass) for objects put into an Amazon S3 bucket by the file gateway. Defaults to `S3_STANDARD`.
     */
    @JvmName("mlcfgbgbieiceuyw")
    public suspend fun defaultStorageClass(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultStorageClass = mapped
    }

    /**
     * @param value The name of the file share. Must be set if an S3 prefix name is set in `location_arn`.
     */
    @JvmName("ayrvcktrnehgpaqm")
    public suspend fun fileShareName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileShareName = mapped
    }

    /**
     * @param value Amazon Resource Name (ARN) of the file gateway.
     */
    @JvmName("xfxvfdnxruxcthwa")
    public suspend fun gatewayArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gatewayArn = mapped
    }

    /**
     * @param value Boolean value that enables guessing of the MIME type for uploaded objects based on file extensions. Defaults to `true`.
     */
    @JvmName("andlqryquffvropy")
    public suspend fun guessMimeTypeEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.guessMimeTypeEnabled = mapped
    }

    /**
     * @param value Boolean value if `true` to use Amazon S3 server side encryption with your own AWS KMS key, or `false` to use a key managed by Amazon S3. Defaults to `false`.
     */
    @JvmName("dyyoodnnwweyxfwc")
    public suspend fun kmsEncrypted(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsEncrypted = mapped
    }

    /**
     * @param value Amazon Resource Name (ARN) for KMS key used for Amazon S3 server side encryption. This value can only be set when `kms_encrypted` is true.
     */
    @JvmName("dptaxwhqvbaynjub")
    public suspend fun kmsKeyArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyArn = mapped
    }

    /**
     * @param value The ARN of the backed storage used for storing file data.
     */
    @JvmName("yffkuqayfnojtink")
    public suspend fun locationArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.locationArn = mapped
    }

    /**
     * @param value Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
     */
    @JvmName("urcemetlhauoedbc")
    public suspend fun nfsFileShareDefaults(`value`: NfsFileShareNfsFileShareDefaultsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nfsFileShareDefaults = mapped
    }

    /**
     * @param argument Nested argument with file share default values. More information below. see NFS File Share Defaults for more details.
     */
    @JvmName("qbofwlaqukxsepbv")
    public suspend fun nfsFileShareDefaults(argument: suspend NfsFileShareNfsFileShareDefaultsArgsBuilder.() -> Unit) {
        val toBeMapped = NfsFileShareNfsFileShareDefaultsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.nfsFileShareDefaults = mapped
    }

    /**
     * @param value The notification policy of the file share. For more information see the [AWS Documentation](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateNFSFileShare.html#StorageGateway-CreateNFSFileShare-request-NotificationPolicy). Default value is `{}`.
     */
    @JvmName("wjtwhmytvtlsyqkt")
    public suspend fun notificationPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.notificationPolicy = mapped
    }

    /**
     * @param value Access Control List permission for S3 objects. Defaults to `private`.
     */
    @JvmName("kyetckahapoolnvx")
    public suspend fun objectAcl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.objectAcl = mapped
    }

    /**
     * @param value Boolean to indicate write status of file share. File share does not accept writes if `true`. Defaults to `false`.
     */
    @JvmName("obesauvydwmjmypu")
    public suspend fun readOnly(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.readOnly = mapped
    }

    /**
     * @param value Boolean who pays the cost of the request and the data download from the Amazon S3 bucket. Set this value to `true` if you want the requester to pay instead of the bucket owner. Defaults to `false`.
     */
    @JvmName("bbdjqiukunmqdhen")
    public suspend fun requesterPays(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requesterPays = mapped
    }

    /**
     * @param value The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
     */
    @JvmName("xjjqchtoqiuaehwk")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value Maps a user to anonymous user. Defaults to `RootSquash`. Valid values: `RootSquash` (only root is mapped to anonymous user), `NoSquash` (no one is mapped to anonymous user), `AllSquash` (everyone is mapped to anonymous user)
     */
    @JvmName("itosdnykuxsheaik")
    public suspend fun squash(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.squash = mapped
    }

    /**
     * @param value Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("ugvyfnrwfrrhdqvj")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("cgrdsbrggjigujqj")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The DNS name of the VPC endpoint for S3 PrivateLink.
     */
    @JvmName("iwgvcufaafxrtisa")
    public suspend fun vpcEndpointDnsName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcEndpointDnsName = mapped
    }

    internal fun build(): NfsFileShareArgs = NfsFileShareArgs(
        auditDestinationArn = auditDestinationArn,
        bucketRegion = bucketRegion,
        cacheAttributes = cacheAttributes,
        clientLists = clientLists,
        defaultStorageClass = defaultStorageClass,
        fileShareName = fileShareName,
        gatewayArn = gatewayArn,
        guessMimeTypeEnabled = guessMimeTypeEnabled,
        kmsEncrypted = kmsEncrypted,
        kmsKeyArn = kmsKeyArn,
        locationArn = locationArn,
        nfsFileShareDefaults = nfsFileShareDefaults,
        notificationPolicy = notificationPolicy,
        objectAcl = objectAcl,
        readOnly = readOnly,
        requesterPays = requesterPays,
        roleArn = roleArn,
        squash = squash,
        tags = tags,
        vpcEndpointDnsName = vpcEndpointDnsName,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy