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

com.pulumi.awsnative.s3.kotlin.MultiRegionAccessPointArgs.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: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.s3.kotlin

import com.pulumi.awsnative.s3.MultiRegionAccessPointArgs.builder
import com.pulumi.awsnative.s3.kotlin.inputs.MultiRegionAccessPointPublicAccessBlockConfigurationArgs
import com.pulumi.awsnative.s3.kotlin.inputs.MultiRegionAccessPointPublicAccessBlockConfigurationArgsBuilder
import com.pulumi.awsnative.s3.kotlin.inputs.MultiRegionAccessPointRegionArgs
import com.pulumi.awsnative.s3.kotlin.inputs.MultiRegionAccessPointRegionArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * AWS::S3::MultiRegionAccessPoint is an Amazon S3 resource type that dynamically routes S3 requests to easily satisfy geographic compliance requirements based on customer-defined routing policies.
 * @property name The name you want to assign to this Multi Region Access Point.
 * @property publicAccessBlockConfiguration The PublicAccessBlock configuration that you want to apply to this Multi Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
 * @property regions The list of buckets that you want to associate this Multi Region Access Point with.
 */
public data class MultiRegionAccessPointArgs(
    public val name: Output? = null,
    public val publicAccessBlockConfiguration: Output? = null,
    public val regions: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.s3.MultiRegionAccessPointArgs =
        com.pulumi.awsnative.s3.MultiRegionAccessPointArgs.builder()
            .name(name?.applyValue({ args0 -> args0 }))
            .publicAccessBlockConfiguration(
                publicAccessBlockConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .regions(
                regions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [MultiRegionAccessPointArgs].
 */
@PulumiTagMarker
public class MultiRegionAccessPointArgsBuilder internal constructor() {
    private var name: Output? = null

    private var publicAccessBlockConfiguration:
        Output? = null

    private var regions: Output>? = null

    /**
     * @param value The name you want to assign to this Multi Region Access Point.
     */
    @JvmName("dbqhwoyyydgewoeg")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The PublicAccessBlock configuration that you want to apply to this Multi Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    @JvmName("kuvbkhrbvvqyldue")
    public suspend fun publicAccessBlockConfiguration(`value`: Output) {
        this.publicAccessBlockConfiguration = value
    }

    /**
     * @param value The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("jcygsoovddvtkrrl")
    public suspend fun regions(`value`: Output>) {
        this.regions = value
    }

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

    /**
     * @param values The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("dvdsqoenwogqorqp")
    public suspend fun regions(values: List>) {
        this.regions = Output.all(values)
    }

    /**
     * @param value The name you want to assign to this Multi Region Access Point.
     */
    @JvmName("uuecsyioqyulssnv")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The PublicAccessBlock configuration that you want to apply to this Multi Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    @JvmName("ntghxniuuikeuumk")
    public suspend fun publicAccessBlockConfiguration(`value`: MultiRegionAccessPointPublicAccessBlockConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicAccessBlockConfiguration = mapped
    }

    /**
     * @param argument The PublicAccessBlock configuration that you want to apply to this Multi Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status 'The Meaning of Public' in the Amazon Simple Storage Service Developer Guide.
     */
    @JvmName("bxcwuiostxverhnq")
    public suspend fun publicAccessBlockConfiguration(argument: suspend MultiRegionAccessPointPublicAccessBlockConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = MultiRegionAccessPointPublicAccessBlockConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.publicAccessBlockConfiguration = mapped
    }

    /**
     * @param value The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("xqolgxrqlorthrcm")
    public suspend fun regions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.regions = mapped
    }

    /**
     * @param argument The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("jbbxoyevufxfodqh")
    public suspend fun regions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            MultiRegionAccessPointRegionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.regions = mapped
    }

    /**
     * @param argument The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("bwcwsfesdvujxtwa")
    public suspend fun regions(vararg argument: suspend MultiRegionAccessPointRegionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            MultiRegionAccessPointRegionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.regions = mapped
    }

    /**
     * @param argument The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("ytjweifqpyixscdt")
    public suspend fun regions(argument: suspend MultiRegionAccessPointRegionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            MultiRegionAccessPointRegionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.regions = mapped
    }

    /**
     * @param values The list of buckets that you want to associate this Multi Region Access Point with.
     */
    @JvmName("eefmwcognkateyhi")
    public suspend fun regions(vararg values: MultiRegionAccessPointRegionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.regions = mapped
    }

    internal fun build(): MultiRegionAccessPointArgs = MultiRegionAccessPointArgs(
        name = name,
        publicAccessBlockConfiguration = publicAccessBlockConfiguration,
        regions = regions,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy