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

com.pulumi.awsnative.fsx.kotlin.inputs.DataRepositoryAssociationS3Args.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.fsx.kotlin.inputs

import com.pulumi.awsnative.fsx.inputs.DataRepositoryAssociationS3Args.builder
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.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
 * @property autoExportPolicy Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.
 *  The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
 * @property autoImportPolicy Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.
 *  The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
 */
public data class DataRepositoryAssociationS3Args(
    public val autoExportPolicy: Output? = null,
    public val autoImportPolicy: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.fsx.inputs.DataRepositoryAssociationS3Args =
        com.pulumi.awsnative.fsx.inputs.DataRepositoryAssociationS3Args.builder()
            .autoExportPolicy(autoExportPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .autoImportPolicy(
                autoImportPolicy?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [DataRepositoryAssociationS3Args].
 */
@PulumiTagMarker
public class DataRepositoryAssociationS3ArgsBuilder internal constructor() {
    private var autoExportPolicy: Output? = null

    private var autoImportPolicy: Output? = null

    /**
     * @param value Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.
     *  The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
     */
    @JvmName("bumtcaqgvbrmfrdl")
    public suspend fun autoExportPolicy(`value`: Output) {
        this.autoExportPolicy = value
    }

    /**
     * @param value Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.
     *  The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
     */
    @JvmName("heklkxwueaiunkho")
    public suspend fun autoImportPolicy(`value`: Output) {
        this.autoImportPolicy = value
    }

    /**
     * @param value Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.
     *  The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
     */
    @JvmName("peqcebsrboelcupl")
    public suspend fun autoExportPolicy(`value`: DataRepositoryAssociationAutoExportPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoExportPolicy = mapped
    }

    /**
     * @param argument Describes a data repository association's automatic export policy. The ``AutoExportPolicy`` defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.
     *  The ``AutoExportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
     */
    @JvmName("oxbaujsbtrgbxhql")
    public suspend fun autoExportPolicy(argument: suspend DataRepositoryAssociationAutoExportPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = DataRepositoryAssociationAutoExportPolicyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.autoExportPolicy = mapped
    }

    /**
     * @param value Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.
     *  The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
     */
    @JvmName("kpxdiwlndkrdohug")
    public suspend fun autoImportPolicy(`value`: DataRepositoryAssociationAutoImportPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoImportPolicy = mapped
    }

    /**
     * @param argument Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.
     *  The ``AutoImportPolicy`` is only supported on Amazon FSx for Lustre file systems with a data repository association.
     */
    @JvmName("gtqniyrjmsyuxvtr")
    public suspend fun autoImportPolicy(argument: suspend DataRepositoryAssociationAutoImportPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = DataRepositoryAssociationAutoImportPolicyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.autoImportPolicy = mapped
    }

    internal fun build(): DataRepositoryAssociationS3Args = DataRepositoryAssociationS3Args(
        autoExportPolicy = autoExportPolicy,
        autoImportPolicy = autoImportPolicy,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy